Commit 570a2f08 authored by Johann Fischer's avatar Johann Fischer Committed by Carles Cufi
Browse files

tests: modbus: add raw ADU support test



Add raw ADU support test.

Signed-off-by: default avatarJohann Fischer <johann.fischer@nordicsemi.no>
parent 63942989
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -10,4 +10,5 @@ target_sources(app PRIVATE
    src/main.c
    src/test_modbus_client.c
    src/test_modbus_server.c
    src/test_modbus_raw.c
    )
+2 −0
Original line number Diff line number Diff line
@@ -9,3 +9,5 @@ CONFIG_UART_LINE_CTRL=n
CONFIG_MODBUS_ASCII_MODE=y

CONFIG_MODBUS=y
CONFIG_MODBUS_RAW_ADU=y
CONFIG_MODBUS_NUMOF_RAW_ADU=2
+9 −0
Original line number Diff line number Diff line
@@ -44,6 +44,15 @@ void test_main(void)
			 ztest_unit_test(test_holding_reg),
			 ztest_unit_test(test_diagnostic),
			 ztest_unit_test(test_client_disable),
			 ztest_unit_test(test_server_disable),
			 ztest_unit_test(test_server_setup_raw),
			 ztest_unit_test(test_client_setup_raw),
			 ztest_unit_test(test_coil_wr_rd),
			 ztest_unit_test(test_di_rd),
			 ztest_unit_test(test_input_reg),
			 ztest_unit_test(test_holding_reg),
			 ztest_unit_test(test_diagnostic),
			 ztest_unit_test(test_client_disable),
			 ztest_unit_test(test_server_disable)
			 );
	ztest_run_test_suite(modbus_client_test);
+10 −7
Original line number Diff line number Diff line
@@ -18,28 +18,28 @@
#define MB_TEST_NODE_ADDR	0x01
#define MB_TEST_FP_OFFSET	5000

#if defined(CONFIG_BOARD_FRDM_K64F)
/*
 * Integration platform for this test is FRDM-K64F.
 * The board must be prepared accordingly:
 * UART1(PTB16)-RX <-> UART2(PTD3)-TX pins and
 * UART1(PTB17)-TX <-> UART2(PTD2)-RX pins have to be connected.
 */
#define MB_TEST_IFACE_CLIENT		0
#define MB_TEST_IFACE_SERVER		1
#else
#define MB_TEST_IFACE_CLIENT		0
#define MB_TEST_IFACE_SERVER		0
#endif

uint8_t test_get_client_iface(void);
uint8_t test_get_server_iface(void);

void test_server_setup_low_none(void);
void test_server_setup_low_odd(void);
void test_server_setup_high_even(void);
void test_server_setup_ascii(void);
void test_server_setup_raw(void);
void test_server_disable(void);

void test_client_setup_low_none(void);
void test_client_setup_low_odd(void);
void test_client_setup_high_even(void);
void test_client_setup_ascii(void);
void test_client_setup_raw(void);
void test_coil_wr_rd(void);
void test_di_rd(void);
void test_input_reg(void);
@@ -47,4 +47,7 @@ void test_holding_reg(void);
void test_diagnostic(void);
void test_client_disable(void);

int client_raw_cb(const int iface, const struct modbus_adu *adu);
int server_raw_cb(const int iface, const struct modbus_adu *adu);

#endif /* __TEST_MODBUS_H__ */
+23 −0
Original line number Diff line number Diff line
@@ -17,6 +17,11 @@ const static uint16_t fp_offset_oor = fp_offset + offset_oor;

static uint8_t client_iface;

uint8_t test_get_client_iface(void)
{
	return client_iface;
}

void test_coil_wr_rd(void)
{
	const uint8_t coil_qty = 16;
@@ -267,6 +272,19 @@ void test_client_setup_ascii(void)
	zassert_equal(err, 0, "Failed to configure RTU client");
}

void test_client_setup_raw(void)
{
	char iface_name[] = "RAW_0";
	int err;

	client_iface = modbus_iface_get_by_name(iface_name);
	client_param.mode = MODBUS_MODE_RAW;
	client_param.raw_tx_cb = client_raw_cb;

	err = modbus_init_client(client_iface, client_param);
	zassert_equal(err, 0, "Failed to configure RAW client");
}

void test_client_disable(void)
{
	int err;
@@ -326,4 +344,9 @@ void test_client_disable(void)
{
	ztest_test_skip();
}

void test_client_setup_raw(void)
{
	ztest_test_skip();
}
#endif
Loading