Skip to content
This repository was archived by the owner on May 23, 2023. It is now read-only.

Commit 490384f

Browse files
author
Jarkko Paso
committed
FHSS unit tests: Test TX/RX slots
1 parent 4fdbc09 commit 490384f

File tree

1 file changed

+40
-1
lines changed

1 file changed

+40
-1
lines changed

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

Lines changed: 40 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,7 @@ static fhss_api_t *test_generate_fhss_api(void)
138138
fhss_common_stub.fhss_struct.number_of_channels = 50;
139139
fhss_common_stub.fhss_struct.rx_channel = DEFAULT_CHANNEL;
140140
fhss_common_stub.fhss_struct.fhss_state = FHSS_UNSYNCHRONIZED;
141+
fhss_common_stub.fhss_struct.own_hop = 0xff;
141142
fhss_common_stub.fhss_struct.ws->is_on_bc_channel = false;
142143
fhss_common_stub.fhss_struct.callbacks.change_channel = &mac_set_channel;
143144
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()
320321
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) {
321322
return false;
322323
}
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+
}
324363
return true;
325364
}
326365

0 commit comments

Comments
 (0)