Skip to content

Commit 2b749ed

Browse files
kderdarlubos
authored andcommitted
tests: subsys: net: openthread: add SRP client tests
Add new test cases for the latest changes. Signed-off-by: Konrad Derda <[email protected]>
1 parent 4a62c7b commit 2b749ed

File tree

2 files changed

+152
-0
lines changed

2 files changed

+152
-0
lines changed

tests/subsys/net/openthread/rpc/client/src/srp_client_suite.c

Lines changed: 150 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,21 @@
3030
#define SERVICE_LEASE UINT32_MAX
3131
#define SERVICE_KEY_LEASE (UINT32_MAX - 1)
3232

33+
#define _SERVER_IPV6_START 0x20, 0x01, 0x0D, 0xB8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
34+
0x00, 0x00, 0x00
35+
36+
#define SERVER_IPV6_ADDR1_BYTES _SERVER_IPV6_START, 0x1
37+
#define SERVER_IPV6_ADDR2_BYTES _SERVER_IPV6_START, 0x2
38+
#define SERVER_IPV6_ADDR3_BYTES _SERVER_IPV6_START, 0x3
39+
#define SERVER_IPV6_ADDR4_BYTES _SERVER_IPV6_START, 0x4
40+
41+
#define CBOR_SERVER_IPV6_ADDR1 0x50, SERVER_IPV6_ADDR1_BYTES
42+
#define CBOR_SERVER_IPV6_ADDR2 0x50, SERVER_IPV6_ADDR2_BYTES
43+
#define CBOR_SERVER_IPV6_ADDR3 0x50, SERVER_IPV6_ADDR3_BYTES
44+
#define CBOR_SERVER_IPV6_ADDR4 0x50, SERVER_IPV6_ADDR4_BYTES
45+
46+
#define SERVER_PORT 12345
47+
3348
/*
3449
* NOTE:
3550
* The following service encoding is correct assuming that zcbor encodes arrays and maps
@@ -38,6 +53,16 @@
3853

3954
/* clang-format off */
4055
#define CBOR_SERVICE \
56+
/* Subtypes num: */ \
57+
0x2, \
58+
/* TXT entry count: */ \
59+
0x2, \
60+
/* String buffer size (service + instance): */ \
61+
0xb, \
62+
/* Subtypes' buffer size: */ \
63+
0xa, \
64+
/* TXT buffer size: */ \
65+
0x14, \
4166
/* Service type: */ \
4267
0x65, SERVICE_TYPE, \
4368
/* Service instance: */ \
@@ -387,4 +412,129 @@ ZTEST(ot_rpc_srp_client, test_otSrpClientSetTtl)
387412
mock_nrf_rpc_tr_expect_done();
388413
}
389414

415+
/* Test serialization of otSrpClientStart() */
416+
ZTEST(ot_rpc_srp_client, test_otSrpClientStart)
417+
{
418+
otError error;
419+
otSockAddr sock_addr = {
420+
.mAddress = {{{ SERVER_IPV6_ADDR1_BYTES }}},
421+
.mPort = SERVER_PORT,
422+
};
423+
424+
mock_nrf_rpc_tr_expect_add(RPC_CMD(OT_RPC_CMD_SRP_CLIENT_START, CBOR_SERVER_IPV6_ADDR1,
425+
CBOR_UINT16(SERVER_PORT)), RPC_RSP(OT_ERROR_NONE));
426+
error = otSrpClientStart(NULL, &sock_addr);
427+
mock_nrf_rpc_tr_expect_done();
428+
429+
zassert_equal(error, OT_ERROR_NONE);
430+
}
431+
432+
/* Test serialization of otSrpClientStop() */
433+
ZTEST(ot_rpc_srp_client, test_otSrpClientStop)
434+
{
435+
mock_nrf_rpc_tr_expect_add(RPC_CMD(OT_RPC_CMD_SRP_CLIENT_STOP), RPC_RSP());
436+
otSrpClientStop(NULL);
437+
mock_nrf_rpc_tr_expect_done();
438+
}
439+
440+
/* Test serialization of otSrpClientIsRunning() */
441+
ZTEST(ot_rpc_srp_client, test_otSrpClientIsRunning)
442+
{
443+
bool err_1st;
444+
bool err_2nd;
445+
446+
mock_nrf_rpc_tr_expect_add(RPC_CMD(OT_RPC_CMD_SRP_CLIENT_IS_RUNNING), RPC_RSP(CBOR_FALSE));
447+
mock_nrf_rpc_tr_expect_add(RPC_CMD(OT_RPC_CMD_SRP_CLIENT_IS_RUNNING), RPC_RSP(CBOR_TRUE));
448+
449+
err_1st = otSrpClientIsRunning(NULL);
450+
err_2nd = otSrpClientIsRunning(NULL);
451+
452+
mock_nrf_rpc_tr_expect_done();
453+
454+
zassert_false(err_1st);
455+
zassert_true(err_2nd);
456+
}
457+
458+
/* Test serialization of otSrpClientGetServerAddress() */
459+
ZTEST(ot_rpc_srp_client, test_otSrpClientGetServerAddress)
460+
{
461+
const otSockAddr *sock_addr;
462+
463+
otIp6Address expected_addr = {{{ SERVER_IPV6_ADDR1_BYTES }}};
464+
465+
mock_nrf_rpc_tr_expect_add(RPC_CMD(OT_RPC_CMD_SRP_CLIENT_GET_SERVER_ADDRESS),
466+
RPC_RSP(CBOR_SERVER_IPV6_ADDR1, CBOR_UINT16(SERVER_PORT)));
467+
468+
sock_addr = otSrpClientGetServerAddress(NULL);
469+
470+
mock_nrf_rpc_tr_expect_done();
471+
472+
zassert_mem_equal(&sock_addr->mAddress, &expected_addr, OT_IP6_ADDRESS_SIZE);
473+
zassert_equal(sock_addr->mPort, SERVER_PORT);
474+
}
475+
476+
/* Test serialization of otSrpClientSetHostAddresses() */
477+
ZTEST(ot_rpc_srp_client, test_otSrpClientSetHostAddresses)
478+
{
479+
otError error;
480+
481+
otIp6Address addrs[] = { {{{ SERVER_IPV6_ADDR1_BYTES }}}, {{{ SERVER_IPV6_ADDR2_BYTES }}},
482+
{{{ SERVER_IPV6_ADDR3_BYTES }}}, {{{ SERVER_IPV6_ADDR4_BYTES }}} };
483+
484+
mock_nrf_rpc_tr_expect_add(RPC_CMD(OT_RPC_CMD_SRP_CLIENT_SET_HOST_ADDRESSES, 4,
485+
CBOR_LIST(CBOR_SERVER_IPV6_ADDR1, CBOR_SERVER_IPV6_ADDR2,
486+
CBOR_SERVER_IPV6_ADDR3, CBOR_SERVER_IPV6_ADDR4)),
487+
RPC_RSP(OT_ERROR_NONE));
488+
error = otSrpClientSetHostAddresses(NULL, addrs, 4);
489+
mock_nrf_rpc_tr_expect_done();
490+
491+
zassert_equal(error, OT_ERROR_NONE);
492+
}
493+
494+
/* Test serialization of otSrpClientIsAutoStartModeEnabled() */
495+
ZTEST(ot_rpc_srp_client, test_otSrpClientIsAutoStartModeEnabled)
496+
{
497+
bool err1;
498+
bool err2;
499+
500+
mock_nrf_rpc_tr_expect_add(RPC_CMD(OT_RPC_CMD_SRP_CLIENT_IS_AUTO_START_MODE_ENABLED),
501+
RPC_RSP(CBOR_FALSE));
502+
mock_nrf_rpc_tr_expect_add(RPC_CMD(OT_RPC_CMD_SRP_CLIENT_IS_AUTO_START_MODE_ENABLED),
503+
RPC_RSP(CBOR_TRUE));
504+
505+
err1 = otSrpClientIsAutoStartModeEnabled(NULL);
506+
err2 = otSrpClientIsAutoStartModeEnabled(NULL);
507+
508+
mock_nrf_rpc_tr_expect_done();
509+
510+
zassert_false(err1);
511+
zassert_true(err2);
512+
}
513+
514+
/* Test serialization of otSrpClientGetLeaseInterval() */
515+
ZTEST(ot_rpc_srp_client, test_otSrpClientGetLeaseInterval)
516+
{
517+
uint32_t interval;
518+
519+
mock_nrf_rpc_tr_expect_add(RPC_CMD(OT_RPC_CMD_SRP_CLIENT_GET_LEASE_INTERVAL),
520+
RPC_RSP(CBOR_UINT32(100000)));
521+
interval = otSrpClientGetLeaseInterval(NULL);
522+
mock_nrf_rpc_tr_expect_done();
523+
524+
zassert_equal(interval, 100000);
525+
}
526+
527+
/* Test serialization of otSrpClientGetTtl() */
528+
ZTEST(ot_rpc_srp_client, test_otSrpClientGetTtl)
529+
{
530+
uint32_t ttl;
531+
532+
mock_nrf_rpc_tr_expect_add(RPC_CMD(OT_RPC_CMD_SRP_CLIENT_GET_TTL),
533+
RPC_RSP(CBOR_UINT8(120)));
534+
ttl = otSrpClientGetTtl(NULL);
535+
mock_nrf_rpc_tr_expect_done();
536+
537+
zassert_equal(ttl, 120);
538+
}
539+
390540
ZTEST_SUITE(ot_rpc_srp_client, NULL, tc_setup, NULL, tc_after, NULL);

tests/subsys/net/openthread/rpc/common/test_rpc_env.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@
2020
/* for value bigger than 0x17 */
2121
#define CBOR_UINT8(value) 0x18, (value)
2222

23+
#define CBOR_LIST(...) 0x9F, __VA_ARGS__, 0xFF
24+
2325
/* Macros for constructing nRF RPC packets for the OpenThread command group. */
2426

2527
#define RPC_PKT(bytes...) \

0 commit comments

Comments
 (0)