@@ -138,6 +138,7 @@ static fhss_api_t *test_generate_fhss_api(void)
138
138
fhss_common_stub .fhss_struct .number_of_channels = 50 ;
139
139
fhss_common_stub .fhss_struct .rx_channel = DEFAULT_CHANNEL ;
140
140
fhss_common_stub .fhss_struct .fhss_state = FHSS_UNSYNCHRONIZED ;
141
+ fhss_common_stub .fhss_struct .own_hop = 0xff ;
141
142
fhss_common_stub .fhss_struct .ws -> is_on_bc_channel = false;
142
143
fhss_common_stub .fhss_struct .callbacks .change_channel = & mac_set_channel ;
143
144
fhss_common_stub .fhss_struct .callbacks .read_mac_address = & mac_read_64bit_mac_address ;
@@ -320,7 +321,45 @@ bool test_fhss_ws_check_tx_conditions_callback()
320
321
if (fhss_common_stub .fhss_struct .fhss_api -> check_tx_conditions (api , DEFAULT_IS_BC_DEST , DEFAULT_HANDLE , DEFAULT_FRAME_TYPE , DEFAULT_FRAME_LENGTH , DEFAULT_PHY_HEAD_LENGTH , DEFAULT_PHY_TAIL_LENGTH ) != false) {
321
322
return false;
322
323
}
323
-
324
+ // Test TX allowed for 0 hop
325
+ fhss_common_stub .fhss_struct .ws -> is_on_bc_channel = false;
326
+ fhss_common_stub .fhss_failed_tx .handle = DEFAULT_HANDLE + 1 ;
327
+ fhss_common_stub .fhss_struct .own_hop = 0 ;
328
+ fhss_common_stub .fhss_struct .ws -> fhss_configuration .fhss_broadcast_interval = 800 ;
329
+ fhss_common_stub .fhss_struct .ws -> fhss_configuration .fhss_bc_dwell_interval = 200 ;
330
+ fhss_platform_stub .remaining_slots_value = 500000 ;
331
+ if (fhss_common_stub .fhss_struct .fhss_api -> check_tx_conditions (api , DEFAULT_IS_BC_DEST , DEFAULT_HANDLE , DEFAULT_FRAME_TYPE , DEFAULT_FRAME_LENGTH , DEFAULT_PHY_HEAD_LENGTH , DEFAULT_PHY_TAIL_LENGTH ) != true) {
332
+ return false;
333
+ }
334
+ // Test TX not allowed for 0 hop
335
+ fhss_platform_stub .remaining_slots_value = 400000 ;
336
+ if (fhss_common_stub .fhss_struct .fhss_api -> check_tx_conditions (api , DEFAULT_IS_BC_DEST , DEFAULT_HANDLE , DEFAULT_FRAME_TYPE , DEFAULT_FRAME_LENGTH , DEFAULT_PHY_HEAD_LENGTH , DEFAULT_PHY_TAIL_LENGTH ) != false) {
337
+ return false;
338
+ }
339
+ // Test TX allowed for 1st hop
340
+ fhss_common_stub .fhss_struct .own_hop = 1 ;
341
+ fhss_platform_stub .remaining_slots_value = 100000 ;
342
+ if (fhss_common_stub .fhss_struct .fhss_api -> check_tx_conditions (api , DEFAULT_IS_BC_DEST , DEFAULT_HANDLE , DEFAULT_FRAME_TYPE , DEFAULT_FRAME_LENGTH , DEFAULT_PHY_HEAD_LENGTH , DEFAULT_PHY_TAIL_LENGTH ) != true) {
343
+ return false;
344
+ }
345
+ // Test TX not allowed for 1st hop
346
+ fhss_platform_stub .remaining_slots_value = 200000 ;
347
+ if (fhss_common_stub .fhss_struct .fhss_api -> check_tx_conditions (api , DEFAULT_IS_BC_DEST , DEFAULT_HANDLE , DEFAULT_FRAME_TYPE , DEFAULT_FRAME_LENGTH , DEFAULT_PHY_HEAD_LENGTH , DEFAULT_PHY_TAIL_LENGTH ) != false) {
348
+ return false;
349
+ }
350
+ // Test TX allowed for 2nd hop with different broadcast configuration
351
+ fhss_common_stub .fhss_struct .own_hop = 2 ;
352
+ fhss_common_stub .fhss_struct .ws -> fhss_configuration .fhss_broadcast_interval = 1000 ;
353
+ fhss_common_stub .fhss_struct .ws -> fhss_configuration .fhss_bc_dwell_interval = 250 ;
354
+ fhss_platform_stub .remaining_slots_value = 700000 ;
355
+ if (fhss_common_stub .fhss_struct .fhss_api -> check_tx_conditions (api , DEFAULT_IS_BC_DEST , DEFAULT_HANDLE , DEFAULT_FRAME_TYPE , DEFAULT_FRAME_LENGTH , DEFAULT_PHY_HEAD_LENGTH , DEFAULT_PHY_TAIL_LENGTH ) != true) {
356
+ return false;
357
+ }
358
+ // Test TX not allowed for 2nd hop
359
+ fhss_platform_stub .remaining_slots_value = 400000 ;
360
+ if (fhss_common_stub .fhss_struct .fhss_api -> check_tx_conditions (api , DEFAULT_IS_BC_DEST , DEFAULT_HANDLE , DEFAULT_FRAME_TYPE , DEFAULT_FRAME_LENGTH , DEFAULT_PHY_HEAD_LENGTH , DEFAULT_PHY_TAIL_LENGTH ) != false) {
361
+ return false;
362
+ }
324
363
return true;
325
364
}
326
365
0 commit comments