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

Commit 2188af4

Browse files
author
Jarkko Paso
committed
FHSS unit tests: Removed FHSS common functions from FHSS
1 parent 8f5c0bf commit 2188af4

28 files changed

+878
-555
lines changed

source/Service_Libs/fhss/fhss.c

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ fhss_structure_t *fhss_enable(fhss_api_t *fhss_api, const fhss_configuration_t *
8686

8787
if (fhss_beacon_create_tasklet(fhss_struct) < 0) {
8888
ns_dyn_mem_free(fhss_struct->bs);
89-
ns_dyn_mem_free(fhss_struct);
89+
fhss_free_instance(fhss_api);
9090
return NULL;
9191
}
9292

@@ -680,7 +680,7 @@ static int fhss_add_beacon_info(fhss_structure_t *fhss_structure, uint16_t pan_i
680680
return 0;
681681
}
682682

683-
void fhss_update_beacon_info_lifetimes(fhss_structure_t *fhss_structure, uint32_t timestamp)
683+
static void fhss_update_beacon_info_lifetimes(fhss_structure_t *fhss_structure, uint32_t timestamp)
684684
{
685685
fhss_beacon_info_t *beacon_info;
686686
beacon_info = fhss_structure->bs->fhss_beacon_info_store;
@@ -737,7 +737,7 @@ static void fhss_failed_list_free(fhss_structure_t *fhss_structure)
737737
}
738738
}
739739

740-
static void fhss_handle_state_set(const fhss_api_t *api, fhss_states fhss_state, uint16_t pan_id)
740+
static void fhss_synch_state_set_callback(const fhss_api_t *api, fhss_states fhss_state, uint16_t pan_id)
741741
{
742742
fhss_structure_t *fhss_structure = fhss_get_object_with_api(api);
743743
if (!fhss_structure) {
@@ -1008,7 +1008,7 @@ static bool fhss_check_tx_conditions_callback(const fhss_api_t *api, bool is_bro
10081008
{
10091009
fhss_structure_t *fhss_structure = fhss_get_object_with_api(api);
10101010
if (!fhss_structure) {
1011-
return false;
1011+
return true;
10121012
}
10131013
// This condition will check that message is not sent on bad channel
10141014
if (fhss_check_bad_channel(fhss_structure, handle) == false) {
@@ -1095,8 +1095,8 @@ static void fhss_beacon_build(fhss_structure_t *fhss_structure, uint8_t* dest)
10951095
static int16_t fhss_write_synch_info_callback(const fhss_api_t *api, uint8_t *ptr, uint8_t length, int frame_type, uint32_t tx_time)
10961096
{
10971097
(void) length;
1098-
fhss_structure_t *fhss_structure = fhss_get_object_with_api(api);
10991098
(void) tx_time;
1099+
fhss_structure_t *fhss_structure = fhss_get_object_with_api(api);
11001100
if (!fhss_structure || !ptr || (frame_type != FHSS_SYNCH_FRAME)) {
11011101
return -1;
11021102
}
@@ -1234,7 +1234,7 @@ static bool fhss_is_broadcast_channel_callback(const fhss_api_t *api)
12341234
{
12351235
fhss_structure_t *fhss_structure = fhss_get_object_with_api(api);
12361236
if (!fhss_structure) {
1237-
return false;
1237+
return true;
12381238
}
12391239
// FHSS is unsynchronized, broadcasts allowed
12401240
if (fhss_structure->fhss_state == FHSS_UNSYNCHRONIZED) {
@@ -1325,7 +1325,7 @@ int fhss_set_callbacks(fhss_structure_t *fhss_structure)
13251325
fhss_structure->fhss_api->receive_frame = &fhss_receive_frame_callback;
13261326
fhss_structure->fhss_api->data_tx_done = &fhss_data_tx_done_callback;
13271327
fhss_structure->fhss_api->data_tx_fail = &fhss_data_tx_fail_callback;
1328-
fhss_structure->fhss_api->synch_state_set = &fhss_handle_state_set;
1328+
fhss_structure->fhss_api->synch_state_set = &fhss_synch_state_set_callback;
13291329
fhss_structure->fhss_api->read_timestamp = &fhss_read_timestamp_cb;
13301330
fhss_structure->fhss_api->get_retry_period = &fhss_get_retry_period_callback;
13311331
fhss_structure->fhss_api->write_synch_info = &fhss_write_synch_info_callback;

source/Service_Libs/fhss/fhss.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,6 @@ struct fhss_bs
123123

124124
fhss_structure_t *fhss_enable(fhss_api_t *fhss_api, const fhss_configuration_t *fhss_configuration, const fhss_timer_t *fhss_timer, fhss_statistics_t *fhss_statistics);
125125
bool fhss_is_synch_root(fhss_structure_t *fhss_structure);
126-
void fhss_update_beacon_info_lifetimes(fhss_structure_t *fhss_structure, uint32_t timestamp);
127126
uint32_t fhss_get_tx_time(fhss_structure_t *fhss_structure, uint16_t bytes_to_send, uint8_t phy_header_length, uint8_t phy_tail_length);
128127
/**
129128
* Calculate time in microseconds to start of next superframe.

test/nanostack/unittest/mac/mac_mcps_sap/test_mac_mcps_sap.c

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -458,6 +458,7 @@ bool test_mcps_sap_trig_tx()
458458
rf_mac_setup->active_mac_events &= ~(1 << MAC_SAP_TRIG_TX);
459459

460460
// FHSS is on broadcast channel and tx conditions are fine
461+
fhss_config_stub.bool_value = true;
461462
fhss_tx_condition = true;
462463

463464
mcps_sap_trig_tx(rf_mac_setup);
@@ -1901,6 +1902,7 @@ bool test_mac_mcps_data_indication()
19011902

19021903
// Test calling FHSS receive synch request
19031904
rf_mac_setup->fhss_api = ns_fhss_create(0, 0);
1905+
int start_value = fhss_config_stub.int8_value;
19041906
mac_header_helper_functions_stub.uint8_value = MAC_BEACON_REQ;
19051907
nsdynmemlib_stub.returnCounter = 2;
19061908
buffer = mcps_sap_pre_parsed_frame_buffer_get(tx_buf, 18);
@@ -1914,6 +1916,9 @@ bool test_mac_mcps_data_indication()
19141916
test_mac_buffer_init(buffer, 7, 1, 6);
19151917
buffer->mac_class_ptr = rf_mac_setup;
19161918
mcps_sap_pd_ind(buffer);
1919+
if (start_value != (fhss_config_stub.int8_value - 1)) {
1920+
return false;
1921+
}
19171922

19181923
test_mac_rf_mac_class_free(rf_mac_setup);
19191924
return true;
@@ -2070,6 +2075,7 @@ bool test_mcps_sap_pd_req_queue_write()
20702075
// Buffer has broadcast destination and TX conditions are bad
20712076
buffer->fcf_dsn.ackRequested = false;
20722077
fhss_tx_condition = false;
2078+
fhss_config_stub.bool_value_2 = true;
20732079
mcps_sap_pd_req_queue_write(rf_mac_setup, buffer);
20742080
// Should be first in BC queue, one buffer in a bc queue
20752081
if ((rf_mac_setup->pd_data_request_bc_queue_to_go != buffer) || (rf_mac_setup->broadcast_queue_size != 1)) {
@@ -2111,6 +2117,7 @@ bool test_mcps_sap_pd_req_queue_write()
21112117
// Buffer has unicast destination and TX conditions are bad
21122118
buffer->fcf_dsn.ackRequested = true;
21132119
fhss_tx_condition = false;
2120+
fhss_config_stub.bool_value_2 = false;
21142121
mcps_sap_pd_req_queue_write(rf_mac_setup, buffer);
21152122
// Should be first in a UC queue, 1 buffer in a uc queue
21162123
if ((rf_mac_setup->pd_data_request_queue_to_go != buffer) || (rf_mac_setup->unicast_queue_size != 1)) {
@@ -2143,6 +2150,7 @@ bool test_mcps_sap_pd_req_queue_write()
21432150
// Test queueing when broadcast disable
21442151
buffer->fcf_dsn.ackRequested = false;
21452152
rf_mac_setup->macBroadcastDisabled = true;
2153+
fhss_config_stub.bool_value_2 = true;
21462154
mcps_sap_pd_req_queue_write(rf_mac_setup, buffer);
21472155
// Should be first in a BC queue, 1 buffer in a BC queue
21482156
if ((rf_mac_setup->pd_data_request_bc_queue_to_go != buffer) || (rf_mac_setup->broadcast_queue_size != 1)) {
@@ -2750,6 +2758,7 @@ bool test_mac_mcps_trig_buffer_from_queue()
27502758
rf_mac_setup->broadcast_queue_size = 1;
27512759

27522760
// FHSS is not on broadcast channel and tx conditions are fine
2761+
fhss_config_stub.bool_value = false;
27532762
fhss_tx_condition = true;
27542763
mac_mcps_trig_buffer_from_queue(rf_mac_setup);
27552764
if (!rf_mac_setup->pd_data_request_bc_queue_to_go) {
@@ -2758,6 +2767,7 @@ bool test_mac_mcps_trig_buffer_from_queue()
27582767
}
27592768

27602769
// FHSS is on broadcast channel and tx conditions are bad
2770+
fhss_config_stub.bool_value = true;
27612771
fhss_tx_condition = false;
27622772
mac_mcps_trig_buffer_from_queue(rf_mac_setup);
27632773
if (!rf_mac_setup->pd_data_request_bc_queue_to_go) {
@@ -2766,6 +2776,7 @@ bool test_mac_mcps_trig_buffer_from_queue()
27662776
}
27672777

27682778
// FHSS is on broadcast channel and tx conditions are fine
2779+
fhss_config_stub.bool_value = true;
27692780
fhss_tx_condition = true;
27702781
mac_mcps_trig_buffer_from_queue(rf_mac_setup);
27712782
if (!rf_mac_setup->active_pd_data_request || rf_mac_setup->pd_data_request_bc_queue_to_go || rf_mac_setup->broadcast_queue_size) {
@@ -2783,6 +2794,7 @@ bool test_mac_mcps_trig_buffer_from_queue()
27832794
rf_mac_setup->pd_data_request_queue_to_go = buf;
27842795
rf_mac_setup->pd_data_request_queue_to_go->next = buf2;
27852796
rf_mac_setup->unicast_queue_size = 2;
2797+
fhss_config_stub.bool_value = false;
27862798
fhss_tx_condition = true;
27872799
// Should trig second packet from queue
27882800
mac_mcps_trig_buffer_from_queue(rf_mac_setup);

test/nanostack/unittest/mac/mac_pd_sap/test_mac_pd_sap.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -551,6 +551,7 @@ bool test_mac_pd_sap_data_cb()
551551
phy_message.id = MAC15_4_PD_SAP_DATA_IND;
552552
phy_message.message.generic_data_ind.data_ptr = buffer;
553553
// Test returning timestamp
554+
fhss_config_stub.uint32_value = 1234567890;
554555
ret = mac_pd_sap_data_cb(&rf_ptr, &phy_message);
555556
if (ret != 0) {
556557
return false;

test/nanostack/unittest/mac/sw_mac/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ TEST_SRC_FILES = \
1717
../../stub/mac_pd_sap_stub.c \
1818
../../stub/mac_mcps_sap_stub.c \
1919
../../stub/fhss_callbacks_stub.c \
20+
../../stub/fhss_config_stub.c \
2021
../../stub/ns_timer_stub.c \
2122
../../stub/common_functions_stub.c \
2223

test/nanostack/unittest/mac/sw_mac/test_sw_mac.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
#include "mac_mlme_stub.h"
3333
#include "mac_security_mib_stub.h"
3434
#include "mac_mcps_sap_stub.h"
35+
#include "fhss_config_stub.h"
3536

3637
#define C_CHECK(condition) \
3738
do { if (!(condition)) { printf("ERROR: %s at file %s on line %d\n", #condition, __FILE__, __LINE__); return false; } } while(0)
@@ -802,7 +803,7 @@ bool test_ns_sw_mac_fhss_register()
802803
mac_description_storage_size_t storage_sizes;
803804
protocol_interface_rf_mac_setup_s setup;
804805
memset(&setup, 0, sizeof(protocol_interface_rf_mac_setup_s));
805-
// fhss_api.init_callbacks = &fhss_init_callbacks_cb;
806+
fhss_api.init_callbacks = &fhss_init_callbacks_cb_stub;
806807

807808
phy_device_driver_s drv;
808809
memset(&drv, 0, sizeof(phy_device_driver_s));

test/nanostack/unittest/service_libs/fhss/Makefile

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,13 @@ COMPONENT_NAME = fhss_unit
55
#This must be changed manually
66
SRC_FILES = \
77
../../../../../source/Service_Libs/fhss/fhss.c \
8-
../../../../../source/Service_Libs/fhss/fhss_common.c \
9-
108

119
TEST_SRC_FILES = \
1210
main.cpp \
1311
fhsstest.cpp \
1412
test_fhss.c \
1513
../../stub/mbed_trace_stub.c \
1614
../../stub/nsdynmemLIB_stub.c \
17-
../../stub/common_functions_stub.c \
1815
../../stub/channel_list_stub.c \
1916
../../stub/fhss_config_stub.c \
2017
../../stub/fhss_channel_stub.c \
@@ -25,6 +22,7 @@ TEST_SRC_FILES = \
2522
../../stub/randLIB_stub.c \
2623
../../stub/event_stub.c \
2724
../../stub/fhss_callbacks_stub.c \
25+
../../stub/fhss_common_stub.c \
2826
../../stub/ns_list_stub.c \
2927
../../stub/platform_stub.c \
3028

test/nanostack/unittest/service_libs/fhss/fhsstest.cpp

Lines changed: 26 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -29,73 +29,67 @@ TEST_GROUP(fhss)
2929
}
3030
};
3131

32-
TEST(fhss, test_fhss_timeout_stop)
33-
{
34-
CHECK(test_fhss_timeout_stop());
35-
}
36-
37-
TEST(fhss, test_fhss_timeout_start)
32+
TEST(fhss, test_fhss_enable)
3833
{
39-
CHECK(test_fhss_timeout_start());
34+
CHECK(test_fhss_enable());
4035
}
4136

42-
43-
TEST(fhss, test_fhss_update_synch_parent_address)
37+
TEST(fhss, test_fhss_is_broadcast_channel_callback)
4438
{
45-
CHECK(test_fhss_update_synch_parent_address());
39+
CHECK(test_fhss_is_broadcast_channel_callback());
4640
}
4741

48-
TEST(fhss, test_fhss_compare_with_synch_parent_address)
42+
TEST(fhss, test_fhss_tx_handle_callback)
4943
{
50-
CHECK(test_fhss_compare_with_synch_parent_address());
44+
CHECK(test_fhss_tx_handle_callback());
5145
}
5246

53-
TEST(fhss, test_fhss_get_parent_address)
47+
TEST(fhss, test_fhss_check_tx_conditions_callback)
5448
{
55-
CHECK(test_fhss_get_parent_address());
49+
CHECK(test_fhss_check_tx_conditions_callback());
5650
}
5751

58-
TEST(fhss, test_fhss_set_datarate)
52+
TEST(fhss, test_fhss_receive_frame_callback)
5953
{
60-
CHECK(test_fhss_set_datarate());
54+
CHECK(test_fhss_receive_frame_callback());
6155
}
6256

63-
TEST(fhss, test_fhss_set_synch_configuration)
57+
TEST(fhss, test_fhss_data_tx_done_callback)
6458
{
65-
CHECK(test_fhss_set_synch_configuration());
59+
CHECK(test_fhss_data_tx_done_callback());
6660
}
6761

68-
TEST(fhss, test_fhss_disable)
62+
TEST(fhss, test_fhss_data_tx_fail_callback)
6963
{
70-
CHECK(test_fhss_disable());
64+
CHECK(test_fhss_data_tx_fail_callback());
7165
}
7266

73-
TEST(fhss, test_fhss_enable)
67+
TEST(fhss, test_fhss_synch_state_set_callback)
7468
{
75-
CHECK(test_fhss_enable());
69+
CHECK(test_fhss_synch_state_set_callback());
7670
}
7771

78-
TEST(fhss, test_fhss_clear_active_event)
72+
TEST(fhss, test_fhss_write_synch_info_callback)
7973
{
80-
CHECK(test_fhss_clear_active_event());
74+
CHECK(test_fhss_write_synch_info_callback());
8175
}
8276

83-
TEST(fhss, test_fhss_update_beacon_info_lifetimes)
77+
TEST(fhss, test_fhss_superframe_handler)
8478
{
85-
CHECK(test_fhss_update_beacon_info_lifetimes());
79+
CHECK(test_fhss_superframe_handler());
8680
}
8781

88-
TEST(fhss, test_fhss_is_synch_root)
82+
TEST(fhss, test_fhss_get_retry_period_callback)
8983
{
90-
CHECK(test_fhss_is_synch_root());
84+
CHECK(test_fhss_get_retry_period_callback());
9185
}
9286

93-
TEST(fhss, test_fhss_tx_handle_callback)
87+
TEST(fhss, test_fhss_beacon_tasklet_func)
9488
{
95-
CHECK(test_fhss_tx_handle_callback());
89+
CHECK(test_fhss_beacon_tasklet_func());
9690
}
9791

98-
TEST(fhss, test_fhss_check_tx_conditions_callback)
92+
TEST(fhss, test_fhss_set_synch_configuration)
9993
{
100-
CHECK(test_fhss_check_tx_conditions_callback());
94+
CHECK(test_fhss_set_synch_configuration());
10195
}

0 commit comments

Comments
 (0)