Skip to content

Commit d5cc85a

Browse files
author
Jarkko Paso
committed
FHSS unit tests: Test removing parent info and get neighbor info
1 parent 2d01008 commit d5cc85a

File tree

6 files changed

+69
-1
lines changed

6 files changed

+69
-1
lines changed

test/nanostack/unittest/service_libs/fhss_config/fhssconfigtest.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,3 +53,8 @@ TEST(fhss_config, test_ns_fhss_ws_set_parent)
5353
{
5454
CHECK(test_ns_fhss_ws_set_parent());
5555
}
56+
57+
TEST(fhss_config, test_ns_fhss_ws_remove_parent)
58+
{
59+
CHECK(test_ns_fhss_ws_remove_parent());
60+
}

test/nanostack/unittest/service_libs/fhss_config/test_fhss_config.c

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,7 @@ bool test_ns_fhss_ws_set_parent()
125125
uint8_t dest_address[8] = {1,2,3,4,5,6,7,8};
126126
broadcast_timing_info_t bc_timing_info;
127127
// Test without api
128+
fhss_common_stub.bool_value = false;
128129
if (-1 != ns_fhss_ws_set_parent(NULL, dest_address, &bc_timing_info)) {
129130
return false;
130131
}
@@ -135,3 +136,20 @@ bool test_ns_fhss_ws_set_parent()
135136
}
136137
return true;
137138
}
139+
140+
bool test_ns_fhss_ws_remove_parent()
141+
{
142+
fhss_api_t api;
143+
uint8_t dest_address[8] = {1,2,3,4,5,6,7,8};
144+
// Test without api
145+
fhss_common_stub.bool_value = false;
146+
if (-1 != ns_fhss_ws_remove_parent(NULL, dest_address)) {
147+
return false;
148+
}
149+
// Test success
150+
fhss_common_stub.bool_value = true;
151+
if (0 != ns_fhss_ws_remove_parent(&api, dest_address)) {
152+
return false;
153+
}
154+
return true;
155+
}

test/nanostack/unittest/service_libs/fhss_config/test_fhss_config.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@ bool test_ns_fhss_delete();
3333
bool test_ns_fhss_configuration_set();
3434
// Test setting WS parent
3535
bool test_ns_fhss_ws_set_parent();
36+
// Test removing WS parent
37+
bool test_ns_fhss_ws_remove_parent();
3638

3739

3840
#ifdef __cplusplus

test/nanostack/unittest/service_libs/fhss_ws/fhsswstest.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,3 +93,8 @@ TEST(fhssws, test_fhss_ws_set_parent)
9393
{
9494
CHECK(test_fhss_ws_set_parent());
9595
}
96+
97+
TEST(fhssws, test_fhss_ws_remove_parent)
98+
{
99+
CHECK(test_fhss_ws_remove_parent());
100+
}

test/nanostack/unittest/service_libs/fhss_ws/test_fhss_ws.c

Lines changed: 38 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,11 @@ static int32_t app_channel_function(const fhss_api_t *api, uint16_t slot, uint8_
5454
return VENDOR_CHANNEL;
5555
}
5656

57+
static fhss_ws_neighbor_timing_info_t *app_no_neighbor_info(const fhss_api_t *api, uint8_t eui64[8])
58+
{
59+
return NULL;
60+
}
61+
5762
static fhss_ws_neighbor_timing_info_t *app_get_neighbor_info(const fhss_api_t *api, uint8_t eui64[8])
5863
{
5964
return &neighbor_info;
@@ -85,6 +90,10 @@ static fhss_api_t *test_generate_fhss_api(void)
8590
memset(&ws, 0, sizeof(fhss_ws_t));
8691
memset(&fhss_callbacks_stub, 0, sizeof(fhss_callbacks_stub_def));
8792
memset(&fhss_common_stub, 0, sizeof(fhss_common_stub_def));
93+
neighbor_info.uc_timing_info.ufsi = 1000;
94+
neighbor_info.uc_timing_info.unicast_channel_function = WS_TR51CF;
95+
neighbor_info.uc_timing_info.unicast_dwell_interval = 200;
96+
neighbor_info.uc_timing_info.utt_rx_timestamp = 100000;
8897
fhss_common_stub.fhss_struct.fhss_api = &fhss_api;
8998
fhss_common_stub.fhss_struct.ws = &ws;
9099
fhss_common_stub.fhss_struct.ws->fhss_configuration.fhss_uc_dwell_interval = 200;
@@ -170,8 +179,14 @@ bool test_fhss_ws_tx_handle_callback()
170179
if (fhss_common_stub.fhss_struct.fhss_api->tx_handle(api, true, dest_address, DEFAULT_FRAME_TYPE, DEFAULT_FRAME_LENGTH, DEFAULT_PHY_HEAD_LENGTH, DEFAULT_PHY_TAIL_LENGTH, DEFAULT_TX_TIME) != 0) {
171180
return false;
172181
}
173-
// Test fixed channel
182+
// Test when no neighbor info found
174183
fhss_common_stub.fhss_struct.fhss_state = DEFAULT_FHSS_STATE;
184+
fhss_common_stub.fhss_struct.ws->fhss_configuration.get_neighbor_info = &app_no_neighbor_info;
185+
if (fhss_common_stub.fhss_struct.fhss_api->tx_handle(api, DEFAULT_IS_BC_DEST, dest_address, DEFAULT_FRAME_TYPE, DEFAULT_FRAME_LENGTH, DEFAULT_PHY_HEAD_LENGTH, DEFAULT_PHY_TAIL_LENGTH, DEFAULT_TX_TIME) != -1) {
186+
return false;
187+
}
188+
// Test fixed channel
189+
fhss_common_stub.fhss_struct.ws->fhss_configuration.get_neighbor_info = &app_get_neighbor_info;
175190
fhss_common_stub.fhss_struct.ws->fhss_configuration.ws_channel_function = WS_FIXED_CHANNEL;
176191
if (fhss_common_stub.fhss_struct.fhss_api->tx_handle(api, DEFAULT_IS_BC_DEST, dest_address, DEFAULT_FRAME_TYPE, DEFAULT_FRAME_LENGTH, DEFAULT_PHY_HEAD_LENGTH, DEFAULT_PHY_TAIL_LENGTH, DEFAULT_TX_TIME) != -1) {
177192
return false;
@@ -181,6 +196,8 @@ bool test_fhss_ws_tx_handle_callback()
181196
if (fhss_common_stub.fhss_struct.fhss_api->tx_handle(api, DEFAULT_IS_BC_DEST, dest_address, DEFAULT_FRAME_TYPE, DEFAULT_FRAME_LENGTH, DEFAULT_PHY_HEAD_LENGTH, DEFAULT_PHY_TAIL_LENGTH, DEFAULT_TX_TIME) != 0) {
182197
return false;
183198
}
199+
// For more coverage, set neighbor info NULL
200+
memset(&neighbor_info, 0, sizeof(fhss_ws_neighbor_timing_info_t));
184201
// Test direct hash channel function
185202
fhss_common_stub.fhss_struct.ws->fhss_configuration.ws_channel_function = WS_DH1CF;
186203
if (fhss_common_stub.fhss_struct.fhss_api->tx_handle(api, DEFAULT_IS_BC_DEST, dest_address, DEFAULT_FRAME_TYPE, DEFAULT_FRAME_LENGTH, DEFAULT_PHY_HEAD_LENGTH, DEFAULT_PHY_TAIL_LENGTH, DEFAULT_TX_TIME) != 0) {
@@ -457,3 +474,23 @@ bool test_fhss_ws_set_parent()
457474
}
458475
return true;
459476
}
477+
478+
bool test_fhss_ws_remove_parent()
479+
{
480+
uint8_t dest_address[8] = {1,2,3,4,5,6,7,8};
481+
fhss_api_t *api = test_generate_fhss_api();
482+
broadcast_timing_info_t bc_timing_info;
483+
fhss_common_stub.fhss_struct.ws->parent_bc_info = &bc_timing_info;
484+
485+
// Test without WS enabled FHSS
486+
fhss_structure_t fake_fhss_structure;
487+
memset(&fake_fhss_structure, 0, sizeof(fhss_structure_t));
488+
if (-1 != fhss_ws_remove_parent(&fake_fhss_structure, dest_address)) {
489+
return false;
490+
}
491+
// Test success
492+
if ((0 != fhss_ws_remove_parent(&fhss_common_stub.fhss_struct, dest_address)) || (fhss_common_stub.fhss_struct.ws->parent_bc_info != NULL)) {
493+
return false;
494+
}
495+
return true;
496+
}

test/nanostack/unittest/service_libs/fhss_ws/test_fhss_ws.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ bool test_fhss_broadcast_handler();
3636
bool test_fhss_ws_update_uc_channel_callback();
3737
bool test_fhss_unicast_handler();
3838
bool test_fhss_ws_set_parent();
39+
bool test_fhss_ws_remove_parent();
3940

4041
#ifdef __cplusplus
4142
}

0 commit comments

Comments
 (0)