@@ -54,6 +54,11 @@ static int32_t app_channel_function(const fhss_api_t *api, uint16_t slot, uint8_
54
54
return VENDOR_CHANNEL ;
55
55
}
56
56
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
+
57
62
static fhss_ws_neighbor_timing_info_t * app_get_neighbor_info (const fhss_api_t * api , uint8_t eui64 [8 ])
58
63
{
59
64
return & neighbor_info ;
@@ -85,6 +90,10 @@ static fhss_api_t *test_generate_fhss_api(void)
85
90
memset (& ws , 0 , sizeof (fhss_ws_t ));
86
91
memset (& fhss_callbacks_stub , 0 , sizeof (fhss_callbacks_stub_def ));
87
92
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 ;
88
97
fhss_common_stub .fhss_struct .fhss_api = & fhss_api ;
89
98
fhss_common_stub .fhss_struct .ws = & ws ;
90
99
fhss_common_stub .fhss_struct .ws -> fhss_configuration .fhss_uc_dwell_interval = 200 ;
@@ -170,8 +179,14 @@ bool test_fhss_ws_tx_handle_callback()
170
179
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 ) {
171
180
return false;
172
181
}
173
- // Test fixed channel
182
+ // Test when no neighbor info found
174
183
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 ;
175
190
fhss_common_stub .fhss_struct .ws -> fhss_configuration .ws_channel_function = WS_FIXED_CHANNEL ;
176
191
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 ) {
177
192
return false;
@@ -181,6 +196,8 @@ bool test_fhss_ws_tx_handle_callback()
181
196
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 ) {
182
197
return false;
183
198
}
199
+ // For more coverage, set neighbor info NULL
200
+ memset (& neighbor_info , 0 , sizeof (fhss_ws_neighbor_timing_info_t ));
184
201
// Test direct hash channel function
185
202
fhss_common_stub .fhss_struct .ws -> fhss_configuration .ws_channel_function = WS_DH1CF ;
186
203
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()
457
474
}
458
475
return true;
459
476
}
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
+ }
0 commit comments