Skip to content

Commit d877c9e

Browse files
author
Arto Kinnunen
committed
Review corrections
-Add unit tests -Ignore extra debugs -Move unused parameter voiding to right place
1 parent 135c48d commit d877c9e

File tree

5 files changed

+216
-23
lines changed

5 files changed

+216
-23
lines changed

source/6LoWPAN/Thread/thread_management_if.c

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1378,11 +1378,6 @@ int8_t thread_management_get_request_full_nwk_data(int8_t interface_id, bool *fu
13781378

13791379
int thread_management_device_certificate_set(int8_t interface_id, const unsigned char *device_certificate_ptr, uint16_t device_certificate_len, const unsigned char *priv_key_ptr, uint16_t priv_key_len)
13801380
{
1381-
(void) interface_id;
1382-
(void) device_certificate_ptr;
1383-
(void) device_certificate_len;
1384-
(void) priv_key_ptr;
1385-
(void) priv_key_len;
13861381
#ifdef HAVE_THREAD
13871382
protocol_interface_info_entry_t *cur;
13881383

@@ -1395,16 +1390,16 @@ int thread_management_device_certificate_set(int8_t interface_id, const unsigned
13951390
return thread_extension_bootstrap_device_certificate_set(cur, device_certificate_ptr, device_certificate_len, priv_key_ptr, priv_key_len);
13961391

13971392
#else
1393+
(void) interface_id;
1394+
(void) device_certificate_ptr;
1395+
(void) device_certificate_len;
1396+
(void) priv_key_ptr;
1397+
(void) priv_key_len;
13981398
return -1;
13991399
#endif
14001400
}
14011401
int thread_management_network_certificate_set(int8_t interface_id, const unsigned char *network_certificate_ptr, uint16_t network_certificate_len, const unsigned char *priv_key_ptr, uint16_t priv_key_len)
14021402
{
1403-
(void) interface_id;
1404-
(void) network_certificate_ptr;
1405-
(void) network_certificate_len;
1406-
(void) priv_key_ptr;
1407-
(void) priv_key_len;
14081403
#ifdef HAVE_THREAD
14091404
protocol_interface_info_entry_t *cur;
14101405

@@ -1420,14 +1415,17 @@ int thread_management_network_certificate_set(int8_t interface_id, const unsigne
14201415

14211416
return thread_extension_bootstrap_network_private_key_set(cur, priv_key_ptr, priv_key_len);
14221417
#else
1418+
(void) interface_id;
1419+
(void) network_certificate_ptr;
1420+
(void) network_certificate_len;
1421+
(void) priv_key_ptr;
1422+
(void) priv_key_len;
14231423
return -1;
14241424
#endif
14251425
}
14261426

14271427
int thread_management_partition_weighting_set(int8_t interface_id, uint8_t partition_weighting)
14281428
{
1429-
(void) interface_id;
1430-
(void) partition_weighting;
14311429
#ifdef HAVE_THREAD
14321430
protocol_interface_info_entry_t *cur;
14331431

@@ -1449,15 +1447,14 @@ int thread_management_partition_weighting_set(int8_t interface_id, uint8_t parti
14491447

14501448
return 0;
14511449
#else
1450+
(void) interface_id;
1451+
(void) partition_weighting;
14521452
return -1;
14531453
#endif
14541454
}
14551455

14561456
int thread_management_sed_parent_buffer_size_set(int8_t interface_id, uint16_t small_packets_per_child_count, uint16_t big_packets_total_count)
14571457
{
1458-
(void) interface_id;
1459-
(void) small_packets_per_child_count;
1460-
(void) big_packets_total_count;
14611458
#ifdef HAVE_THREAD
14621459
protocol_interface_info_entry_t *cur;
14631460

@@ -1473,6 +1470,9 @@ int thread_management_sed_parent_buffer_size_set(int8_t interface_id, uint16_t s
14731470
small_packets_per_child_count);
14741471

14751472
#else
1473+
(void) interface_id;
1474+
(void) small_packets_per_child_count;
1475+
(void) big_packets_total_count;
14761476
return -1;
14771477
#endif
14781478
}

source/6LoWPAN/adaptation_interface.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@
4545

4646
#define TRACE_GROUP "6lAd"
4747

48-
#define EXTRA_DEBUG_EXTRA
48+
// #define EXTRA_DEBUG_EXTRA
4949
#ifdef EXTRA_DEBUG_EXTRA
5050
#define tr_debug_extra(...) tr_debug(__VA_ARGS__)
5151
#else

test/nanostack/unittest/6LoWPAN/adaptation_interface/adaptation_interfacetest.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,11 @@ TEST(adaptation_interface, test_lowpan_adaptation_interface_tx)
6060
CHECK(test_lowpan_adaptation_interface_tx());
6161
}
6262

63+
TEST(adaptation_interface, test_lowpan_adaptation_interface_indirect_tx)
64+
{
65+
CHECK(test_lowpan_adaptation_interface_indirect_tx());
66+
}
67+
6368
TEST(adaptation_interface, test_lowpan_adaptation_interface_tx_confirm)
6469
{
6570
CHECK(test_lowpan_adaptation_interface_tx_confirm());

test/nanostack/unittest/6LoWPAN/adaptation_interface/test_adaptation_interface.c

Lines changed: 193 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,20 @@
3636
#include "buffer_dyn_stub.h"
3737
#include "common_functions_stub.h"
3838

39+
static int mcps_data_req_cnt = 0;
40+
static int mcps_purge_req_cnt = 0;
41+
3942
static void mcps_data_req_cb(const mac_api_t* api, const mcps_data_req_t *data)
4043
{
44+
mcps_data_req_cnt++;
45+
}
4146

47+
static void tester_mcps_purge_request(const mac_api_t* api,
48+
const mcps_purge_t *data)
49+
{
50+
(void) api;
51+
(void) data;
52+
mcps_purge_req_cnt++;
4253
}
4354

4455
bool test_lowpan_adaptation_interface_init()
@@ -235,13 +246,6 @@ bool test_lowpan_adapatation_data_process_tx_preprocess()
235246
return true;
236247
}
237248

238-
static void tester_mcps_purge_request(const mac_api_t* api,
239-
const mcps_purge_t *data)
240-
{
241-
(void) api;
242-
(void) data;
243-
}
244-
245249
bool test_lowpan_adaptation_indirect_purge()
246250
{
247251
mac_api_t api;
@@ -552,6 +556,188 @@ bool test_lowpan_adaptation_interface_tx()
552556
return true;
553557
}
554558

559+
bool test_lowpan_adaptation_interface_indirect_tx()
560+
{
561+
mac_api_t api;
562+
protocol_interface_info_entry_t entry;
563+
arm_15_4_mac_parameters_t params;
564+
int data_request_count = mcps_data_req_cnt;
565+
int data_purge_count = mcps_purge_req_cnt;
566+
567+
params.mac_next_key_index = 1;
568+
params.mac_channel = 11;
569+
570+
entry.mac_parameters = &params;
571+
entry.mac_api = &api;
572+
entry.id = 0;
573+
574+
api.mcps_data_req = &mcps_data_req_cb;
575+
api.mcps_purge_req = &tester_mcps_purge_request;
576+
577+
buffer_t *test_buf = malloc(sizeof(buffer_t) + 2100);
578+
memset(test_buf, 0, sizeof(buffer_t) + 2100);
579+
580+
test_buf->dst_sa.addr_type = ADDR_802_15_4_SHORT;
581+
test_buf->dst_sa.address[0] = 1;
582+
test_buf->buf_ptr = 10;
583+
test_buf->buf_end = 210;
584+
test_buf->link_specific.ieee802_15_4.indirectTxProcess = true;
585+
buffer_dyn_stub.buffer_ptr = test_buf;
586+
587+
protocol_core_stub.entry_ptr = &entry;
588+
mle_stub.mle_neigh_table_entry_ptr = NULL;
589+
590+
nsdynmemlib_stub.returnCounter = 1000;
591+
592+
socket_stub.buffer_ptr = NULL;
593+
594+
entry.mac_api = &api;
595+
api.mcps_data_req = NULL;
596+
socket_stub.buffer_ptr = NULL;
597+
598+
entry.id = 0;
599+
api.mcps_data_req = &mcps_data_req_cb;
600+
601+
lowpan_adaptation_interface_init(0, 127);
602+
603+
// Set small and big buffer size to 2
604+
if (0 != lowpan_adaptation_indirect_queue_params_set(&entry, 106, 2, 2)) {
605+
return false;
606+
}
607+
608+
/*
609+
* Test#1,
610+
* Send 3 big packets to one destination and 3 big packets to another
611+
* destination:
612+
* Verify that packets are delivered to mac and purging works.
613+
*/
614+
615+
// first packet will be sent to mac
616+
if (0 != lowpan_adaptation_interface_tx(&entry, test_buf)) {
617+
return false;
618+
} else if (++data_request_count != mcps_data_req_cnt) {
619+
// error, no mac request sent
620+
return false;
621+
}
622+
623+
// 2nd packet will be cached (no sending/purge)
624+
if (0 != lowpan_adaptation_interface_tx(&entry, test_buf)) {
625+
return false;
626+
} else if (data_request_count != mcps_data_req_cnt) {
627+
// error, mac data request sent as it should have been cached
628+
return false;
629+
}
630+
631+
// 3rd packet will purge 1st, will sent 2nd packet
632+
if (0 != lowpan_adaptation_interface_tx(&entry, test_buf)) {
633+
return false;
634+
} else if ((++data_request_count != mcps_data_req_cnt) ||
635+
(++data_purge_count != mcps_purge_req_cnt)) {
636+
// error, either mac request was not sent or purge did not happen
637+
return false;
638+
}
639+
640+
// Create buffer for different destination
641+
buffer_t *test_buf2 = malloc(sizeof(buffer_t) + 2100);
642+
memset(test_buf2, 0, sizeof(buffer_t) + 2100);
643+
644+
test_buf2->dst_sa.addr_type = ADDR_802_15_4_SHORT;
645+
test_buf2->dst_sa.address[0] = 2;
646+
647+
test_buf2->link_specific.ieee802_15_4.requestAck = true;
648+
test_buf2->buf_end = 200;
649+
test_buf2->link_specific.ieee802_15_4.indirectTxProcess = true;
650+
651+
if (0 != lowpan_adaptation_interface_tx(&entry, test_buf2)) {
652+
return false;
653+
} else if ((++data_request_count != mcps_data_req_cnt) ||
654+
(++data_purge_count != mcps_purge_req_cnt)) {
655+
// error if no previous data purge or no mac request made
656+
return false;
657+
}
658+
659+
if (0 != lowpan_adaptation_interface_tx(&entry, test_buf2)) {
660+
return false;
661+
} else if ((data_request_count != mcps_data_req_cnt) ||
662+
(++data_purge_count != mcps_purge_req_cnt)) {
663+
// error if mac data request sent or no purging
664+
return false;
665+
}
666+
667+
if (0 != lowpan_adaptation_interface_tx(&entry, test_buf2)) {
668+
return false;
669+
} else if ((++data_request_count != mcps_data_req_cnt) ||
670+
(++data_purge_count != mcps_purge_req_cnt)) {
671+
// error if no mac request and no purge
672+
return false;
673+
}
674+
675+
/*
676+
* Test#2,
677+
* Send 3 small packets to previous destination
678+
* Verify that big packets are purged and small packets sent
679+
*/
680+
test_buf2->buf_end = 20;
681+
mle_neigh_table_entry_t mle;
682+
mle_stub.mle_neigh_table_entry_ptr = &mle;
683+
// first packet will be sent to mac
684+
if (0 != lowpan_adaptation_interface_tx(&entry, test_buf2)) {
685+
return false;
686+
} else if ((++data_request_count != mcps_data_req_cnt) &&
687+
(++data_purge_count != mcps_purge_req_cnt)) {
688+
// error if no data request not made or purging didn't happen
689+
return false;
690+
}
691+
692+
// 2nd packet will be cached (no sending/purge)
693+
if (0 != lowpan_adaptation_interface_tx(&entry, test_buf2)) {
694+
return false;
695+
} else if ((++data_request_count != mcps_data_req_cnt) &&
696+
(++data_purge_count != mcps_purge_req_cnt)) {
697+
// error if no data request not made or purging didn't happen
698+
return false;
699+
}
700+
701+
// 3rd packet will purge 1st, will sent 2nd packet
702+
if (0 != lowpan_adaptation_interface_tx(&entry, test_buf2)) {
703+
return false;
704+
} else if ((++data_request_count != mcps_data_req_cnt) &&
705+
(++data_purge_count != mcps_purge_req_cnt)) {
706+
// error if no data request not made or purging didn't happen
707+
return false;
708+
}
709+
710+
/*
711+
* Test #3,
712+
* Confirm data request
713+
*/
714+
mcps_data_conf_t data_confirm;
715+
data_confirm.msduHandle = test_buf2->seq;
716+
data_confirm.status = MLME_SUCCESS;
717+
if (0 != lowpan_adaptation_interface_tx_confirm(&entry, &data_confirm)) {
718+
return false;
719+
} else if ((++data_request_count != mcps_data_req_cnt) &&
720+
(++data_purge_count != mcps_purge_req_cnt)) {
721+
// error if no data request not made or purging didn't happen
722+
return false;
723+
}
724+
725+
data_confirm.status = MLME_SUCCESS;
726+
if (0 != lowpan_adaptation_interface_tx_confirm(&entry, &data_confirm)) {
727+
return false;
728+
} else if ((data_request_count != mcps_data_req_cnt) &&
729+
(data_purge_count != mcps_purge_req_cnt)) {
730+
// error if no data request is made or purge happens
731+
return false;
732+
}
733+
734+
lowpan_adaptation_interface_free(0);
735+
nsdynmemlib_stub.returnCounter = 0;
736+
free(test_buf);
737+
free(test_buf2);
738+
return true;
739+
}
740+
555741
bool test_lowpan_adaptation_interface_tx_confirm()
556742
{
557743
mac_api_t api;

test/nanostack/unittest/6LoWPAN/adaptation_interface/test_adaptation_interface.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@ bool test_lowpan_adapatation_data_process_tx_preprocess();
3333

3434
bool test_lowpan_adaptation_interface_tx();
3535

36+
bool test_lowpan_adaptation_interface_indirect_tx();
37+
3638
bool test_lowpan_adaptation_interface_tx_confirm();
3739

3840
bool test_lowpan_adaptation_tx_active();

0 commit comments

Comments
 (0)