summaryrefslogtreecommitdiff
path: root/cesar/cp
diff options
context:
space:
mode:
authorNélio Laranjeiro2011-08-30 17:22:35 +0200
committerNélio Laranjeiro2011-08-31 17:26:38 +0200
commit6fb1fedbca2a3bc5d0ca8452a5c4fa6f215c7214 (patch)
treeea05dc818b78efca7fed8e31029614c880d6c1c8 /cesar/cp
parent95b30d8740512fdfd44ade6b4df729233efd4245 (diff)
cesar/cp/beacon: initialise RND lib in tests, closes #2694
Diffstat (limited to 'cesar/cp')
-rw-r--r--cesar/cp/beacon/test/src/beacon.c987
1 files changed, 403 insertions, 584 deletions
diff --git a/cesar/cp/beacon/test/src/beacon.c b/cesar/cp/beacon/test/src/beacon.c
index 1716547d1d..0e4b83c116 100644
--- a/cesar/cp/beacon/test/src/beacon.c
+++ b/cesar/cp/beacon/test/src/beacon.c
@@ -35,7 +35,47 @@ cp_beacon_receive (cp_t *ctx, bsu_beacon_t *beacon);
void
cp_beacon_sta_compute_schedules (cp_t *ctx, bsu_beacon_t *beacon_data);
-static cp_t cp;
+struct test_beacon_t
+{
+ cp_t cp;
+ mac_config_t mac_config;
+ cl_t cl;
+ sar_t sar;
+ bsu_aclf_t aclf;
+ uint ca;
+};
+typedef struct test_beacon_t test_beacon_t;
+
+void
+test_beacon_init (test_beacon_t *ctx)
+{
+ memset (ctx, 0, sizeof (test_beacon_t));
+ lib_rnd_init (&ctx->cp.rnd, 0x1234);
+ ctx->cp.mac_config = &ctx->mac_config;
+ ctx->cp.sar = &ctx->sar;
+ ctx->cp.cl = &ctx->cl;
+ ctx->cp.bsu_aclf = &ctx->aclf;
+ *((bsu_aclf_frequency_t*) &ctx->aclf.frequency) = BSU_ACLF_FREQ_50HZ;
+ *((bsu_aclf_bp_t*) &ctx->aclf.beacon_period_theo_tck) =
+ BSU_ACLF_BP_50HZ_TCK;
+ ctx->aclf.beacon_period_tck = ctx->aclf.beacon_period_theo_tck;
+ ctx->cp.mac_store = mac_store_init();
+ ctx->cp.ca = (ca_t*) &ctx->ca;
+ cp_sta_mgr_init (&ctx->cp);
+ cp_cco_bw_init (&ctx->cp);
+ cp_cco_region_init (&ctx->cp);
+ cp_beacon_init (&ctx->cp);
+}
+
+void
+test_beacon_uninit (test_beacon_t *ctx)
+{
+ cp_beacon_uninit (&ctx->cp);
+ cp_cco_bw_uninit (&ctx->cp);
+ cp_cco_region_uninit (&ctx->cp);
+ cp_sta_mgr_uninit (&ctx->cp);
+ mac_store_uninit (ctx->cp.mac_store);
+}
bsu_beacon_t*
test_new_beacon (void)
@@ -75,21 +115,6 @@ test_new_beacon (void)
return beacon;
}
-
-/** Initialise
- *
- * At the end of this test, all the variables present in the beacon context
- * shall be equal to zero or null for the pointers.
- */
-void
-test_case_beacon_init (test_t test)
-{
-
- cp_beacon_init (&cp);
-
- test_case_begin (test, "beacon init");
-}
-
/** Uninitialise
* \param test the test object.
*
@@ -118,8 +143,8 @@ test_case_beacon_uninit (test_t test)
test_case_begin (test, "Beacon uninit");
test_begin (test, "remove beacons received")
{
- cp_beacon_init (&cp);
- cp.mac_store = mac_store_init ();
+ test_beacon_t ctx;
+ test_beacon_init (&ctx);
bsu_beacon_t *b;
uint i;
for (i = 0; i < 2; i++)
@@ -127,10 +152,10 @@ test_case_beacon_uninit (test_t test)
b = blk_alloc ();
b->next = NULL;
b->params.direction = BSU_BEACON_DIRECTION_FROM_PLC;
- cp_beacon_receive (&cp, b);
+ cp_beacon_receive (&ctx.cp, b);
}
- cp_beacon_uninit (&cp);
- test_fail_unless (slist_empty (cp.beacon.list., bare));
+ test_beacon_uninit (&ctx);
+ test_fail_unless (slist_empty (ctx.cp.beacon.list., bare));
}
test_end;
}
@@ -139,35 +164,25 @@ void
test_case_beacon__deactivate (test_t test)
{
test_case_begin (test, "Deactivate");
-
test_begin (test, "Deactivate beacon module")
{
+ test_beacon_t ctx;
uint nb_beacons = 2;
- mac_store_t *mac_store = mac_store_init();
- uint ca;
-
- /* Configure the test. */
- memset (&cp, 0, sizeof (cp_t));
- cp.mac_store = mac_store;
- cp.ca = (ca_t *) &ca;
-
- cp_beacon_init (&cp);
-
+ test_beacon_init (&ctx);
/* Still configuring the test... */
- cp.beacon.leon_timer.status = true;
-
+ ctx.cp.beacon.leon_timer.status = true;
/* Allocate some beacons. */
uint i;
for (i = 0; i < nb_beacons; i++)
{
bsu_beacon_t *beacon = blk_alloc ();
beacon->next = NULL;
- slist_push_back (cp.beacon.list., beacon, bare);
+ slist_push_back (ctx.cp.beacon.list., beacon, bare);
}
/* test. */
- cp_beacon_deactivate (&cp);
- test_fail_unless (slist_empty (cp.beacon.list., bare));
- mac_store_uninit (mac_store);
+ cp_beacon_deactivate (&ctx.cp);
+ test_fail_unless (slist_empty (ctx.cp.beacon.list., bare));
+ test_beacon_uninit (&ctx);
test_fail_if (blk_check_memory () != true, "Memory leaks");
}
test_end;
@@ -287,30 +302,9 @@ test_beacon_bentries (test_t test, bsu_beacon_t *beacon,
void
test_suite_beacon__beacon_generation (test_t test)
{
+ test_beacon_t ctx;
bsu_beacon_t beacon;
-
- mac_config_t mac_config;
- cl_t cl;
- sar_t sar;
- bsu_aclf_t aclf;
-
- /* Configure the context. */
- memset (&mac_config, 0, sizeof (mac_config_t));
- memset (&cl, 0, sizeof (cl_t));
- memset (&sar, 0, sizeof (sar_t));
- memset (&aclf, 0, sizeof (bsu_aclf_t));
-
- cp.mac_config = &mac_config;
- cp.cl = &cl;
- cp.sar = &sar;
- cp.bsu_aclf = &aclf;
- aclf.beacon_period_tck = BSU_ACLF_BP_50HZ_TCK;
-
- cp_sta_mgr_init (&cp);
- cp_beacon_init (&cp);
- cp_cco_bw_init (&cp);
- cp_cco_region_init (&cp);
- cp.mac_store = mac_store_init();
+ test_beacon_init (&ctx);
/* Data set one */
const cp_nid_t nid_1 = 0x001456789ABCDEF0ull;
@@ -331,39 +325,39 @@ test_suite_beacon__beacon_generation (test_t test)
const u8 snid_cd = 0xA;
const cp_snid_t new_snid = 0xF;
- cp_net_t *net_1 = cp_sta_mgr_add_avln (&cp, snid_1, nid_1);
- cp_sta_own_data_set_tei (&cp, tei_1);
- cp_net_set_slot_id_and_usage (&cp, net_1, slot_id_1, 0);
- cp_sta_mgr_set_our_avln (&cp, net_1);
- cp_beacon_handover_hoipflag (&cp, hoip_flag_1);
- cp_sta_own_data_set_cco_status (&cp, cco_flag_1);
- cp_sta_own_data_set_pco_status (&cp, pco_flag_1);
- cp_sta_own_data_set_authenticated_status (&cp, authen_1);
- cp.beacon.discover.discover_interval_bp = 10;
- ((cp_sta_own_data_t *)&cp.sta_mgr.sta_own_data)->hybrid_mode = hm_1;
-
- cp_beacon_change_hm (&cp, new_hm);
- cp.beacon.eks.kccd = kc_cd;
- cp.beacon.eks.kbc = kbc;
- cp.beacon.eks.new_eks = eks;
- cp.beacon.hoip.hoipcd = hoip_cd;
- cp.beacon.hoip.cco = hoip_tei;
- cp.beacon.snids.snidcd = snid_cd;
- cp.beacon.snids.snid = new_snid;
- cp.beacon.discover.countdown_bp = 0; // so that the flag is true
+ cp_net_t *net_1 = cp_sta_mgr_add_avln (&ctx.cp, snid_1, nid_1);
+ cp_sta_own_data_set_tei (&ctx.cp, tei_1);
+ cp_net_set_slot_id_and_usage (&ctx.cp, net_1, slot_id_1, 0);
+ cp_sta_mgr_set_our_avln (&ctx.cp, net_1);
+ cp_beacon_handover_hoipflag (&ctx.cp, hoip_flag_1);
+ cp_sta_own_data_set_cco_status (&ctx.cp, cco_flag_1);
+ cp_sta_own_data_set_pco_status (&ctx.cp, pco_flag_1);
+ cp_sta_own_data_set_authenticated_status (&ctx.cp, authen_1);
+ ctx.cp.beacon.discover.discover_interval_bp = 10;
+ ((cp_sta_own_data_t *)&ctx.cp.sta_mgr.sta_own_data)->hybrid_mode = hm_1;
+
+ cp_beacon_change_hm (&ctx.cp, new_hm);
+ ctx.cp.beacon.eks.kccd = kc_cd;
+ ctx.cp.beacon.eks.kbc = kbc;
+ ctx.cp.beacon.eks.new_eks = eks;
+ ctx.cp.beacon.hoip.hoipcd = hoip_cd;
+ ctx.cp.beacon.hoip.cco = hoip_tei;
+ ctx.cp.beacon.snids.snidcd = snid_cd;
+ ctx.cp.beacon.snids.snid = new_snid;
+ ctx.cp.beacon.discover.countdown_bp = 0; // so that the flag is true
/* Regions. */
cp_cco_region_alloc_t *region;
uint end_time_atu = 3907;
- region = cp_cco_region_alloc_init (&cp);
+ region = cp_cco_region_alloc_init (&ctx.cp);
region->type = CP_BEACON_REGION_TYPE_SHARED_CSMA;
region->end_time_atu = end_time_atu;
- cp_cco_region_alloc_add (&cp, &cp.region.region_list, region);
+ cp_cco_region_alloc_add (&ctx.cp, &ctx.cp.region.region_list, region);
slab_release (region);
/* Fill the beacon data share memory */
- cp_beacon_fill (&cp, &beacon);
+ cp_beacon_fill (&ctx.cp, &beacon);
test_suite_begin (test, "Beacon generation");
test_case_begin (test, "fill share memory");
@@ -412,32 +406,32 @@ test_suite_beacon__beacon_generation (test_t test)
const bool authen_2 = false;
const mac_coexistence_mode_t hm_2 = MAC_COEXISTENCE_NB - 1;
- cp_net_t *net_2 = cp_sta_mgr_add_avln (&cp, snid_2, nid_2);
- cp_sta_own_data_set_tei (&cp, tei_2);
- cp_net_set_slot_id_and_usage (&cp, net_2, slot_id_2, 0);
- cp_sta_mgr_set_our_avln (&cp, net_2);
- cp_beacon_handover_hoipflag (&cp, hoip_flag_2);
- cp_sta_own_data_set_cco_status (&cp, cco_flag_2);
- cp_sta_own_data_set_pco_status (&cp, pco_flag_2);
- cp_sta_own_data_set_authenticated_status (&cp, authen_2);
- ((cp_sta_own_data_t *)&cp.sta_mgr.sta_own_data)->hybrid_mode = hm_2;
-
- cp.beacon.eks.kccd = 0;
- cp.beacon.hoip.hoipcd = 0;
- cp.beacon.snids.snidcd = 0;
- cp.beacon.hm.hmcd = 0;
+ cp_net_t *net_2 = cp_sta_mgr_add_avln (&ctx.cp, snid_2, nid_2);
+ cp_sta_own_data_set_tei (&ctx.cp, tei_2);
+ cp_net_set_slot_id_and_usage (&ctx.cp, net_2, slot_id_2, 0);
+ cp_sta_mgr_set_our_avln (&ctx.cp, net_2);
+ cp_beacon_handover_hoipflag (&ctx.cp, hoip_flag_2);
+ cp_sta_own_data_set_cco_status (&ctx.cp, cco_flag_2);
+ cp_sta_own_data_set_pco_status (&ctx.cp, pco_flag_2);
+ cp_sta_own_data_set_authenticated_status (&ctx.cp, authen_2);
+ ((cp_sta_own_data_t *)&ctx.cp.sta_mgr.sta_own_data)->hybrid_mode = hm_2;
+
+ ctx.cp.beacon.eks.kccd = 0;
+ ctx.cp.beacon.hoip.hoipcd = 0;
+ ctx.cp.beacon.snids.snidcd = 0;
+ ctx.cp.beacon.hm.hmcd = 0;
/* Regions. */
- region = cp_cco_region_alloc_init (&cp);
+ region = cp_cco_region_alloc_init (&ctx.cp);
region->type = CP_BEACON_REGION_TYPE_BEACON;
region->end_time_atu = end_time_atu - 10;
- cp_cco_region_alloc_add (&cp, &cp.region.region_list, region);
+ cp_cco_region_alloc_add (&ctx.cp, &ctx.cp.region.region_list, region);
slab_release (region);
- region = cp_cco_region_alloc_init (&cp);
+ region = cp_cco_region_alloc_init (&ctx.cp);
region->type = CP_BEACON_REGION_TYPE_STAYOUT;
region->end_time_atu = end_time_atu + 10;
- cp_cco_region_alloc_add (&cp, &cp.region.region_list, region);
+ cp_cco_region_alloc_add (&ctx.cp, &ctx.cp.region.region_list, region);
slab_release (region);
/* Schedules. */
@@ -449,7 +443,7 @@ test_suite_beacon__beacon_generation (test_t test)
{
for (ns=0; ns < 2; ns++)
{
- sched = cp_cco_bw_alloc_init (&cp);
+ sched = cp_cco_bw_alloc_init (&ctx.cp);
sched->persistence = CP_CCO_BW_ALLOC_PERSISTENCE_PERSISTENT;
sched->pscd = i;
sched->cscd = i;
@@ -457,14 +451,14 @@ test_suite_beacon__beacon_generation (test_t test)
sched->glid = 0x55 + nb;
sched->end_time_atu = end_time_atu + nb * 10 + ns * 5;
sched->start_time_atu = end_time_atu + nb * 10 + ns * 5 -4;
- cp_cco_bw_alloc_add (&cp, &cp.bw.alloc_list, sched);
+ cp_cco_bw_alloc_add (&ctx.cp, &ctx.cp.bw.alloc_list, sched);
slab_release (sched);
}
}
for (ns = 0; ns < BSU_BEACON_BMIS_SCHEDULES_SAI_MAX; ns++)
{
- sched = cp_cco_bw_alloc_init (&cp);
+ sched = cp_cco_bw_alloc_init (&ctx.cp);
sched->persistence = CP_CCO_BW_ALLOC_PERSISTENCE_NOT_PERSISTENT;
sched->pscd = ns;
sched->cscd = ns;
@@ -472,12 +466,12 @@ test_suite_beacon__beacon_generation (test_t test)
sched->glid = 0x45 + ns;
sched->start_time_atu = end_time_atu - 10 * (ns + 1) -9;
sched->end_time_atu = end_time_atu - 10 * (ns + 1);
- cp_cco_bw_alloc_add (&cp, &cp.bw.alloc_list, sched);
+ cp_cco_bw_alloc_add (&ctx.cp, &ctx.cp.bw.alloc_list, sched);
slab_release (sched);
}
/* Fill the beacon data share memory */
- cp_beacon_fill (&cp, &beacon);
+ cp_beacon_fill (&ctx.cp, &beacon);
test_suite_begin (test, "Beacon generation 2");
test_case_begin (test, "fill share memory 2");
@@ -554,9 +548,7 @@ test_suite_beacon__beacon_generation (test_t test)
test_fail_unless (beacon.bmis.nps.ns == ns);
}
test_end;
-
- cp_cco_bw_uninit (&cp);
- cp_cco_region_uninit (&cp);
+ test_beacon_uninit (&ctx);
}
void
@@ -564,53 +556,32 @@ test_case_beacon_snid_change_cco (test_t test)
{
uint snid;
cp_net_t *net;
- mac_config_t mac_config;
- cl_t cl;
- sar_t sar;
- bsu_aclf_t aclf;
+ test_beacon_t ctx;
test_case_begin (test, "CCo");
+ test_beacon_init (&ctx);
+ ctx.cp.beacon.countdown_limit_date = BSU_ACLF_BP_60HZ_TCK;
+ ctx.cp.beacon.last_countdown_date = 0;
- /* Configure the test. */
- memset (&cp, 0, sizeof (cp_t));
- memset (&mac_config, 0, sizeof (mac_config_t));
- memset (&cl, 0, sizeof (cl_t));
- memset (&sar, 0, sizeof (sar_t));
-
- *((bsu_aclf_frequency_t*) &aclf.frequency) = BSU_ACLF_FREQ_50HZ;
- *((bsu_aclf_bp_t*) &aclf.beacon_period_theo_tck) = BSU_ACLF_BP_50HZ_TCK;
- aclf.beacon_period_tck = aclf.beacon_period_theo_tck;
- cp.bsu_aclf = &aclf;
-
- cp_sta_mgr_init (&cp);
- cp_beacon_init (&cp);
-
- cp.mac_config = &mac_config;
- cp.cl = &cl;
- cp.sar = &sar;
- cp.mac_store = mac_store_init();
- cp.beacon.countdown_limit_date = BSU_ACLF_BP_60HZ_TCK;
- cp.beacon.last_countdown_date = 0;
-
- net = cp_sta_mgr_add_avln (&cp, 0xA, 1);
- cp_sta_own_data_set_snid (&cp, 0xA);
- cp_sta_own_data_set_tei (&cp, 1);
- cp_sta_mgr_set_our_avln (&cp, net);
- cp_sta_own_data_set_cco_status (&cp, true);
- cp_sta_own_data_set_mac_address (&cp, 0x123456789ABCull);
+ net = cp_sta_mgr_add_avln (&ctx.cp, 0xA, 1);
+ cp_sta_own_data_set_snid (&ctx.cp, 0xA);
+ cp_sta_own_data_set_tei (&ctx.cp, 1);
+ cp_sta_mgr_set_our_avln (&ctx.cp, net);
+ cp_sta_own_data_set_cco_status (&ctx.cp, true);
+ cp_sta_own_data_set_mac_address (&ctx.cp, 0x123456789ABCull);
test_begin (test, "Change SNID")
{
/* Process the test. */
- test_fail_unless (cp.beacon.snids.snid == 0);
- test_fail_unless (cp.beacon.snids.snidcd == 0);
+ test_fail_unless (ctx.cp.beacon.snids.snid == 0);
+ test_fail_unless (ctx.cp.beacon.snids.snidcd == 0);
snid = 1;
- cp_beacon_change_snid (&cp, snid);
+ cp_beacon_change_snid (&ctx.cp, snid);
- test_fail_unless (cp.beacon.snids.snid == snid);
- test_fail_unless (cp.beacon.snids.snidcd == CP_BEACON_COUNTDOWN_SNID);
+ test_fail_unless (ctx.cp.beacon.snids.snid == snid);
+ test_fail_unless (ctx.cp.beacon.snids.snidcd == CP_BEACON_COUNTDOWN_SNID);
}
test_end;
@@ -624,53 +595,51 @@ test_case_beacon_snid_change_cco (test_t test)
set_init (&set_schedules, cp_cco_bw_alloc_less);
set_init (&set_regions, cp_cco_region_alloc_less);
- cp_cco_region_init (&cp);
- cp_cco_bw_init (&cp);
+ cp_cco_region_init (&ctx.cp);
+ cp_cco_bw_init (&ctx.cp);
/* Regions. */
- region = cp_cco_region_alloc_init (&cp);
+ region = cp_cco_region_alloc_init (&ctx.cp);
region->type = CP_BEACON_REGION_TYPE_SHARED_CSMA;
region->end_time_atu = 3907;
- cp_cco_region_alloc_add (&cp, &cp.region.region_list, region);
+ cp_cco_region_alloc_add (&ctx.cp, &ctx.cp.region.region_list, region);
slab_release (region);
/* Schedules. */
- alloc = cp_cco_bw_alloc_init (&cp);
+ alloc = cp_cco_bw_alloc_init (&ctx.cp);
alloc->pscd = 7;
alloc->cscd = 7;
alloc->stpf = false;
alloc->glid = 0x45;
alloc->end_time_atu = 3907;
alloc->persistence = CP_CCO_BW_ALLOC_PERSISTENCE_PERSISTENT;
- cp_cco_bw_alloc_add (&cp, &cp.bw.alloc_list, alloc);
+ cp_cco_bw_alloc_add (&ctx.cp, &ctx.cp.bw.alloc_list, alloc);
slab_release (alloc);
- cp_beacon_fill (&cp, &beacon);
+ cp_beacon_fill (&ctx.cp, &beacon);
test_fail_unless (beacon.bmis.change_snid.present == true);
- test_fail_unless (beacon.bmis.change_snid.snidccd == cp.beacon.snids.snidcd);
- test_fail_unless (beacon.bmis.change_snid.new_snid == cp.beacon.snids.snid);
+ test_fail_unless (beacon.bmis.change_snid.snidccd == ctx.cp.beacon.snids.snidcd);
+ test_fail_unless (beacon.bmis.change_snid.new_snid == ctx.cp.beacon.snids.snid);
- cp_cco_bw_alloc_clean (&cp, &set_schedules);
- cp_cco_region_alloc_clean (&cp, &set_regions);
+ cp_cco_bw_alloc_clean (&ctx.cp, &set_schedules);
+ cp_cco_region_alloc_clean (&ctx.cp, &set_regions);
- cp_beacon_sta_compute_schedules (&cp, &beacon);
- alloc = cp_cco_bw_alloc_get_first (&cp, &cp.bw.alloc_list);
+ cp_beacon_sta_compute_schedules (&ctx.cp, &beacon);
+ alloc = cp_cco_bw_alloc_get_first (&ctx.cp, &ctx.cp.bw.alloc_list);
test_fail_unless (alloc->persistence ==
CP_CCO_BW_ALLOC_PERSISTENCE_PERSISTENT);
- alloc = cp_cco_bw_alloc_get_next (&cp, &cp.bw.alloc_list, alloc);
+ alloc = cp_cco_bw_alloc_get_next (&ctx.cp, &ctx.cp.bw.alloc_list, alloc);
test_fail_unless (!alloc);
- cp_cco_region_alloc_clean (&cp, &set_regions);
- cp_cco_bw_alloc_clean (&cp, &set_schedules);
- cp_cco_bw_uninit (&cp);
- cp_cco_region_uninit (&cp);
+ cp_cco_region_alloc_clean (&ctx.cp, &set_regions);
+ cp_cco_bw_alloc_clean (&ctx.cp, &set_schedules);
+ cp_cco_bw_uninit (&ctx.cp);
+ cp_cco_region_uninit (&ctx.cp);
}
test_end;
/* Uninit all the data. */
- cp_beacon_uninit (&cp);
- cp_sta_mgr_uninit (&cp);
- mac_store_uninit (cp.mac_store);
+ test_beacon_uninit (&ctx);
}
@@ -682,172 +651,137 @@ test_case_beacon_snid_change_sta (test_t test)
test_begin (test, "Beacon reception")
{
bsu_beacon_t *beacon;
- mac_config_t mac_config;
- cl_t cl;
- sar_t sar;
cp_net_t *net;
- bsu_aclf_t aclf;
cp_sta_own_data_t *own;
- uint phy = 0;
+ test_beacon_t ctx;
+ test_beacon_init (&ctx);
/** Init the context. */
- memset (&mac_config, 0, sizeof (mac_config_t));
- memset (&cl, 0, sizeof (cl_t));
- memset (&sar, 0, sizeof (sar_t));
- cp.mac_config = &mac_config;
- cp.cl = &cl;
- cp.sar = &sar;
- cp.phy = (phy_t *) &phy;
- cp.bsu_aclf = &aclf;
- cp.mac_store = mac_store_init ();
- cp_sta_mgr_init (&cp);
- cp_beacon_init (&cp);
- cp_cco_bw_init (&cp);
- cp_cco_region_init (&cp);
- cp.bsu_aclf->beacon_period_tck = BSU_ACLF_BP_60HZ_TCK;
- cp.beacon.countdown_limit_date = BSU_ACLF_BP_60HZ_TCK;
- cp.beacon.last_countdown_date = 0;
+ ctx.cp.bsu_aclf->beacon_period_tck = BSU_ACLF_BP_60HZ_TCK;
+ ctx.cp.beacon.countdown_limit_date = BSU_ACLF_BP_60HZ_TCK;
+ ctx.cp.beacon.last_countdown_date = 0;
/* Configure station own data. */
- net = cp_sta_mgr_add_avln (&cp, 0, 1);
- cp_sta_own_data_set_tei (&cp, 2);
- cp_sta_own_data_set_mac_address (&cp, 0x23456789abcull);
- cp_sta_mgr_set_our_avln (&cp, net);
- own = cp_sta_mgr_get_sta_own_data (&cp);
+ net = cp_sta_mgr_add_avln (&ctx.cp, 0, 1);
+ cp_sta_own_data_set_tei (&ctx.cp, 2);
+ cp_sta_own_data_set_mac_address (&ctx.cp, 0x23456789abcull);
+ cp_sta_mgr_set_our_avln (&ctx.cp, net);
+ own = cp_sta_mgr_get_sta_own_data (&ctx.cp);
own->nid_track = 1;
own->tei_track = 1;
/** Check snid default values. */
- test_fail_unless (cp.beacon.snids.snid == 0);
- test_fail_unless (cp.beacon.snids.snidcd == 0);
- test_fail_unless (cp_net_get_snid (&cp, net) == 0x0);
- test_fail_unless (cp_sta_own_data_get_snid (&cp) == 0x0);
+ test_fail_unless (ctx.cp.beacon.snids.snid == 0);
+ test_fail_unless (ctx.cp.beacon.snids.snidcd == 0);
+ test_fail_unless (cp_net_get_snid (&ctx.cp, net) == 0x0);
+ test_fail_unless (cp_sta_own_data_get_snid (&ctx.cp) == 0x0);
/** Create a central beacon. */
beacon = test_new_beacon ();
beacon->bmis.change_snid.present = true;
beacon->bmis.change_snid.new_snid = 0xC;
beacon->bmis.change_snid.snidccd = 3;
- cp_beacon_receive (&cp, beacon);
- cp_beacon_get_and_process_beacon (&cp);
+ cp_beacon_receive (&ctx.cp, beacon);
+ cp_beacon_get_and_process_beacon (&ctx.cp);
/** Check snid values are taken. */
- test_fail_unless (cp.beacon.snids.snid == 0xC);
- test_fail_unless (cp.beacon.snids.snidcd == 3);
- test_fail_unless (cp_net_get_snid (&cp, net) == 0x0);
- test_fail_unless (cp_sta_own_data_get_snid (&cp) == 0x0);
+ test_fail_unless (ctx.cp.beacon.snids.snid == 0xC);
+ test_fail_unless (ctx.cp.beacon.snids.snidcd == 3);
+ test_fail_unless (cp_net_get_snid (&ctx.cp, net) == 0x0);
+ test_fail_unless (cp_sta_own_data_get_snid (&ctx.cp) == 0x0);
/** Create the next beacon (countdown decreased). */
beacon = test_new_beacon ();
beacon->bmis.change_snid.snidccd = 2;
- cp.beacon.countdown_limit_date = BSU_ACLF_BP_60HZ_TCK;
- cp.beacon.last_countdown_date = 0;
+ ctx.cp.beacon.countdown_limit_date = BSU_ACLF_BP_60HZ_TCK;
+ ctx.cp.beacon.last_countdown_date = 0;
/** launch the test. */
- cp_beacon_receive (&cp, beacon);
- cp_beacon_get_and_process_beacon (&cp);
+ cp_beacon_receive (&ctx.cp, beacon);
+ cp_beacon_get_and_process_beacon (&ctx.cp);
/** Check countdown. */
- test_fail_unless (cp.beacon.snids.snid == 0xC);
- test_fail_unless (cp.beacon.snids.snidcd == 2);
- test_fail_unless (cp_net_get_snid (&cp, net) == 0x0);
- test_fail_unless (cp_sta_own_data_get_snid (&cp) == 0x0);
+ test_fail_unless (ctx.cp.beacon.snids.snid == 0xC);
+ test_fail_unless (ctx.cp.beacon.snids.snidcd == 2);
+ test_fail_unless (cp_net_get_snid (&ctx.cp, net) == 0x0);
+ test_fail_unless (cp_sta_own_data_get_snid (&ctx.cp) == 0x0);
/** Create the next beacon (countdown decreased). */
beacon = test_new_beacon ();
beacon->bmis.change_snid.snidccd = 1;
- cp.beacon.countdown_limit_date = BSU_ACLF_BP_60HZ_TCK;
- cp.beacon.last_countdown_date = 0;
+ ctx.cp.beacon.countdown_limit_date = BSU_ACLF_BP_60HZ_TCK;
+ ctx.cp.beacon.last_countdown_date = 0;
/** launch the test. */
- cp_beacon_receive (&cp, beacon);
- cp_beacon_get_and_process_beacon (&cp);
+ cp_beacon_receive (&ctx.cp, beacon);
+ cp_beacon_get_and_process_beacon (&ctx.cp);
/** Check countdown. */
- test_fail_unless (cp.beacon.snids.snid == 0xC);
- test_fail_unless (cp.beacon.snids.snidcd == 1);
- test_fail_unless (cp_net_get_snid (&cp, net) == 0x0);
- test_fail_unless (cp_sta_own_data_get_snid (&cp) == 0x0);
+ test_fail_unless (ctx.cp.beacon.snids.snid == 0xC);
+ test_fail_unless (ctx.cp.beacon.snids.snidcd == 1);
+ test_fail_unless (cp_net_get_snid (&ctx.cp, net) == 0x0);
+ test_fail_unless (cp_sta_own_data_get_snid (&ctx.cp) == 0x0);
/* Create the beacon. */
beacon = test_new_beacon ();
beacon->bmis.change_snid.present = false;
beacon->bmis.nbe--;
beacon->params.rx_parameters.snid = 0xC;
- cp.beacon.countdown_limit_date = BSU_ACLF_BP_60HZ_TCK;
- cp.beacon.last_countdown_date = 0;
+ ctx.cp.beacon.countdown_limit_date = BSU_ACLF_BP_60HZ_TCK;
+ ctx.cp.beacon.last_countdown_date = 0;
/* launch the test. */
- cp_beacon_receive (&cp, beacon);
- cp_beacon_get_and_process_beacon (&cp);
+ cp_beacon_receive (&ctx.cp, beacon);
+ cp_beacon_get_and_process_beacon (&ctx.cp);
/** Check new snid is 0xC. */
- test_fail_unless (cp.beacon.snids.snid == 0xC);
- test_fail_unless (cp.beacon.snids.snidcd == 0);
- test_fail_unless (cp_net_get_snid (&cp, net) == 0xC);
- test_fail_unless (cp_sta_own_data_get_snid (&cp) == 0xC);
+ test_fail_unless (ctx.cp.beacon.snids.snid == 0xC);
+ test_fail_unless (ctx.cp.beacon.snids.snidcd == 0);
+ test_fail_unless (cp_net_get_snid (&ctx.cp, net) == 0xC);
+ test_fail_unless (cp_sta_own_data_get_snid (&ctx.cp) == 0xC);
- cp_beacon_uninit (&cp);
- cp_sta_mgr_uninit (&cp);
- cp_cco_bw_uninit (&cp);
- cp_cco_region_uninit (&cp);
- dbg_check (mac_store_sta_remove (cp.mac_store, 1));
- mac_store_uninit (cp.mac_store);
+ dbg_check (mac_store_sta_remove (ctx.cp.mac_store, 1));
+ test_beacon_uninit (&ctx);
}
test_end;
test_begin (test, "Beacon missed")
{
- mac_config_t mac_config;
- cl_t cl;
- sar_t sar;
+ test_beacon_t ctx;
cp_net_t *net;
cp_cco_region_alloc_t *region;
cp_cco_bw_alloc_t *alloc;
-
- memset (&mac_config, 0, sizeof (mac_config_t));
- memset (&cl, 0, sizeof (cl_t));
- memset (&sar, 0, sizeof (sar_t));
-
- cp_cco_region_init (&cp);
- cp_cco_bw_init (&cp);
-
+ test_beacon_init (&ctx);
/* Regions. */
- region = cp_cco_region_alloc_init (&cp);
+ region = cp_cco_region_alloc_init (&ctx.cp);
region->type = CP_BEACON_REGION_TYPE_SHARED_CSMA;
region->end_time_atu = 3907;
- cp_cco_region_alloc_add (&cp, &cp.region.region_list, region);
+ cp_cco_region_alloc_add (&ctx.cp, &ctx.cp.region.region_list, region);
slab_release (region);
/* Schedules. */
- alloc = cp_cco_bw_alloc_init (&cp);
+ alloc = cp_cco_bw_alloc_init (&ctx.cp);
alloc->stpf = false;
alloc->glid = 0x45;
alloc->end_time_atu = 3907;
alloc->persistence = CP_CCO_BW_ALLOC_PERSISTENCE_NOT_PERSISTENT;
- cp_cco_bw_alloc_add (&cp, &cp.bw.alloc_list, alloc);
+ cp_cco_bw_alloc_add (&ctx.cp, &ctx.cp.bw.alloc_list, alloc);
slab_release (alloc);
- cp_sta_mgr_init (&cp);
- cp_beacon_init (&cp);
-
/* Configure station own data. */
- net = cp_sta_mgr_add_avln (&cp, 1, 1);
- cp_sta_own_data_set_tei (&cp, 2);
- cp_sta_own_data_set_mac_address (&cp, 0x23456789abcull);
- cp_sta_mgr_set_our_avln (&cp, net);
- cp.beacon.countdown_limit_date = BSU_ACLF_BP_60HZ_TCK;
- cp.beacon.last_countdown_date = 0;
+ net = cp_sta_mgr_add_avln (&ctx.cp, 1, 1);
+ cp_sta_own_data_set_tei (&ctx.cp, 2);
+ cp_sta_own_data_set_mac_address (&ctx.cp, 0x23456789abcull);
+ cp_sta_mgr_set_our_avln (&ctx.cp, net);
+ ctx.cp.beacon.countdown_limit_date = BSU_ACLF_BP_60HZ_TCK;
+ ctx.cp.beacon.last_countdown_date = 0;
/* Configure the test. */
- cp.beacon.snids.snidcd = 2;
- cp.beacon.snids.snid = 0xc;
+ ctx.cp.beacon.snids.snidcd = 2;
+ ctx.cp.beacon.snids.snid = 0xc;
- cp_beacon_beacon_not_received (&cp);
+ cp_beacon_beacon_not_received (&ctx.cp);
- test_fail_unless (cp.beacon.snids.snidcd == 1);
- test_fail_unless (cp.beacon.snids.snid == 0xc);
+ test_fail_unless (ctx.cp.beacon.snids.snidcd == 1);
+ test_fail_unless (ctx.cp.beacon.snids.snid == 0xc);
- cp.beacon.countdown_limit_date = BSU_ACLF_BP_60HZ_TCK;
- cp.beacon.last_countdown_date = 0;
+ ctx.cp.beacon.countdown_limit_date = BSU_ACLF_BP_60HZ_TCK;
+ ctx.cp.beacon.last_countdown_date = 0;
- cp_beacon_beacon_not_received (&cp);
+ cp_beacon_beacon_not_received (&ctx.cp);
- test_fail_unless (cp.beacon.snids.snidcd == 0);
- test_fail_unless (cp.beacon.snids.snid == 0xc);
- test_fail_unless (cp_net_get_snid (&cp, net) == 0xC);
- test_fail_unless (cp_sta_own_data_get_snid (&cp) == 0xC);
+ test_fail_unless (ctx.cp.beacon.snids.snidcd == 0);
+ test_fail_unless (ctx.cp.beacon.snids.snid == 0xc);
+ test_fail_unless (cp_net_get_snid (&ctx.cp, net) == 0xC);
+ test_fail_unless (cp_sta_own_data_get_snid (&ctx.cp) == 0xC);
- cp_beacon_uninit (&cp);
- cp_sta_mgr_uninit (&cp);
- cp_cco_region_uninit (&cp);
- cp_cco_bw_uninit (&cp);
+ test_beacon_uninit (&ctx);
}
test_end;
}
@@ -868,38 +802,22 @@ test_case_beacon_hm_change_sta (test_t test)
test_begin (test, "Beacon reception")
{
+ test_beacon_t ctx;
bsu_beacon_t *beacon;
- mac_config_t mac_config;
- cl_t cl;
- sar_t sar;
cp_net_t *net;
- uint phy = 0;
- bsu_aclf_t aclf;
cp_sta_own_data_t *own;
/** Init the context. */
- memset (&mac_config, 0, sizeof (mac_config_t));
- memset (&cl, 0, sizeof (cl_t));
- memset (&sar, 0, sizeof (sar_t));
- cp.mac_config = &mac_config;
- cp.cl = &cl;
- cp.sar = &sar;
- cp.phy = (phy_t *) &phy;
- cp.mac_store = mac_store_init ();
- cp.bsu_aclf = &aclf;
- cp_sta_mgr_init (&cp);
- cp_beacon_init (&cp);
- cp_cco_bw_init (&cp);
- cp_cco_region_init (&cp);
- cp.beacon.countdown_limit_date = BSU_ACLF_BP_60HZ_TCK;
- cp.bsu_aclf->beacon_period_tck = BSU_ACLF_BP_60HZ_TCK;
- cp.beacon.last_countdown_date = 0;
+ test_beacon_init (&ctx);
+ ctx.cp.beacon.countdown_limit_date = BSU_ACLF_BP_60HZ_TCK;
+ ctx.cp.bsu_aclf->beacon_period_tck = BSU_ACLF_BP_60HZ_TCK;
+ ctx.cp.beacon.last_countdown_date = 0;
/** Configure station own data. */
- own = cp_sta_mgr_get_sta_own_data (&cp);
- net = cp_sta_mgr_add_avln (&cp, 0, 1);
- cp_sta_own_data_set_tei (&cp, 2);
- cp_sta_own_data_set_mac_address (&cp, 0x23456789abcull);
- cp_sta_mgr_set_our_avln (&cp, net);
- own = cp_sta_mgr_get_sta_own_data (&cp);
+ own = cp_sta_mgr_get_sta_own_data (&ctx.cp);
+ net = cp_sta_mgr_add_avln (&ctx.cp, 0, 1);
+ cp_sta_own_data_set_tei (&ctx.cp, 2);
+ cp_sta_own_data_set_mac_address (&ctx.cp, 0x23456789abcull);
+ cp_sta_mgr_set_our_avln (&ctx.cp, net);
+ own = cp_sta_mgr_get_sta_own_data (&ctx.cp);
own->nid_track = 1;
own->tei_track = 1;
own->hybrid_mode = 0;
@@ -910,126 +828,110 @@ test_case_beacon_hm_change_sta (test_t test)
beacon->bmis.change_hm.hmccd = 3;
beacon->bmis.nbe = 4;
/** Check default values. */
- test_fail_unless (cp.beacon.hm.hm == 0);
- test_fail_unless (cp.beacon.hm.hmcd == 0);
+ test_fail_unless (ctx.cp.beacon.hm.hm == 0);
+ test_fail_unless (ctx.cp.beacon.hm.hmcd == 0);
test_fail_unless (own->hybrid_mode == 0);
/* launch the test. */
- cp_beacon_receive (&cp, beacon);
- cp_beacon_get_and_process_beacon (&cp);
+ cp_beacon_receive (&ctx.cp, beacon);
+ cp_beacon_get_and_process_beacon (&ctx.cp);
/** Check values are taken. */
- test_fail_unless (cp.beacon.hm.hm == 0x1);
- test_fail_unless (cp.beacon.hm.hmcd == 3);
+ test_fail_unless (ctx.cp.beacon.hm.hm == 0x1);
+ test_fail_unless (ctx.cp.beacon.hm.hmcd == 3);
test_fail_unless (own->hybrid_mode == 0);
/** Create the new beacon. */
beacon = test_new_beacon ();
beacon->bmis.change_hm.hmccd = 2;
- cp.beacon.countdown_limit_date = BSU_ACLF_BP_60HZ_TCK;
- cp.beacon.last_countdown_date = 0;
+ ctx.cp.beacon.countdown_limit_date = BSU_ACLF_BP_60HZ_TCK;
+ ctx.cp.beacon.last_countdown_date = 0;
/** launch the test. */
- cp_beacon_receive (&cp, beacon);
- cp_beacon_get_and_process_beacon (&cp);
+ cp_beacon_receive (&ctx.cp, beacon);
+ cp_beacon_get_and_process_beacon (&ctx.cp);
/** Check values are taken. */
- test_fail_unless (cp.beacon.hm.hm == 0x1);
- test_fail_unless (cp.beacon.hm.hmcd == 2);
+ test_fail_unless (ctx.cp.beacon.hm.hm == 0x1);
+ test_fail_unless (ctx.cp.beacon.hm.hmcd == 2);
test_fail_unless (own->hybrid_mode == 0);
/** Create the new beacon. */
beacon = test_new_beacon ();
beacon->bmis.change_hm.hmccd = 1;
- cp.beacon.countdown_limit_date = BSU_ACLF_BP_60HZ_TCK;
- cp.beacon.last_countdown_date = 0;
+ ctx.cp.beacon.countdown_limit_date = BSU_ACLF_BP_60HZ_TCK;
+ ctx.cp.beacon.last_countdown_date = 0;
/* launch the test. */
- cp_beacon_receive (&cp, beacon);
- cp_beacon_get_and_process_beacon (&cp);
- test_fail_unless (cp.beacon.hm.hm == 0x1);
- test_fail_unless (cp.beacon.hm.hmcd == 1);
+ cp_beacon_receive (&ctx.cp, beacon);
+ cp_beacon_get_and_process_beacon (&ctx.cp);
+ test_fail_unless (ctx.cp.beacon.hm.hm == 0x1);
+ test_fail_unless (ctx.cp.beacon.hm.hmcd == 1);
test_fail_unless (own->hybrid_mode == 0);
/* Create the beacon. */
beacon = test_new_beacon ();
beacon->bmis.change_hm.present = false;
beacon->bmis.nbe = 3;
- cp.beacon.countdown_limit_date = BSU_ACLF_BP_60HZ_TCK;
- cp.beacon.last_countdown_date = 0;
+ ctx.cp.beacon.countdown_limit_date = BSU_ACLF_BP_60HZ_TCK;
+ ctx.cp.beacon.last_countdown_date = 0;
/* launch the test. */
- cp_beacon_receive (&cp, beacon);
- cp_beacon_get_and_process_beacon (&cp);
- test_fail_unless (cp.beacon.hm.hm == 0x1);
- test_fail_unless (cp.beacon.hm.hmcd == 0);
+ cp_beacon_receive (&ctx.cp, beacon);
+ cp_beacon_get_and_process_beacon (&ctx.cp);
+ test_fail_unless (ctx.cp.beacon.hm.hm == 0x1);
+ test_fail_unless (ctx.cp.beacon.hm.hmcd == 0);
test_fail_unless (own->hybrid_mode == 0x1);
- cp_beacon_uninit (&cp);
- cp_sta_mgr_uninit (&cp);
- cp_cco_bw_uninit (&cp);
- cp_cco_region_uninit (&cp);
- dbg_check (mac_store_sta_remove (cp.mac_store, 1));
- mac_store_uninit (cp.mac_store);
+ dbg_check (mac_store_sta_remove (ctx.cp.mac_store, 1));
+ test_beacon_uninit (&ctx);
}
test_end;
test_begin (test, "Beacon missed")
{
- mac_config_t mac_config;
- cl_t cl;
- sar_t sar;
+ test_beacon_t ctx;
cp_net_t *net;
cp_cco_region_alloc_t *region;
cp_cco_bw_alloc_t *alloc;
cp_sta_own_data_t *own;
-
- memset (&mac_config, 0, sizeof (mac_config_t));
- memset (&cl, 0, sizeof (cl_t));
- memset (&sar, 0, sizeof (sar_t));
-
- cp_cco_region_init (&cp);
- cp_cco_bw_init (&cp);
-
+ test_beacon_init (&ctx);
/* Regions. */
- region = cp_cco_region_alloc_init (&cp);
+ region = cp_cco_region_alloc_init (&ctx.cp);
region->type = CP_BEACON_REGION_TYPE_SHARED_CSMA;
region->end_time_atu = 3907;
- cp_cco_region_alloc_add (&cp, &cp.region.region_list, region);
+ cp_cco_region_alloc_add (&ctx.cp, &ctx.cp.region.region_list, region);
slab_release (region);
/* Schedules. */
- alloc = cp_cco_bw_alloc_init (&cp);
+ alloc = cp_cco_bw_alloc_init (&ctx.cp);
alloc->stpf = false;
alloc->glid = 0x45;
alloc->end_time_atu = 3907;
alloc->persistence = CP_CCO_BW_ALLOC_PERSISTENCE_NOT_PERSISTENT;
- cp_cco_bw_alloc_add (&cp, &cp.bw.alloc_list, alloc);
+ cp_cco_bw_alloc_add (&ctx.cp, &ctx.cp.bw.alloc_list, alloc);
slab_release (alloc);
- cp_sta_mgr_init (&cp);
- cp_beacon_init (&cp);
+ cp_sta_mgr_init (&ctx.cp);
+ cp_beacon_init (&ctx.cp);
/* Configure station own data. */
- own = cp_sta_mgr_get_sta_own_data (&cp);
- net = cp_sta_mgr_add_avln (&cp, 0, 1);
- cp_sta_own_data_set_tei (&cp, 2);
- cp_sta_own_data_set_mac_address (&cp, 0x23456789abcull);
- cp_sta_mgr_set_our_avln (&cp, net);
- cp.beacon.countdown_limit_date = BSU_ACLF_BP_60HZ_TCK;
- cp.beacon.last_countdown_date = 0;
+ own = cp_sta_mgr_get_sta_own_data (&ctx.cp);
+ net = cp_sta_mgr_add_avln (&ctx.cp, 0, 1);
+ cp_sta_own_data_set_tei (&ctx.cp, 2);
+ cp_sta_own_data_set_mac_address (&ctx.cp, 0x23456789abcull);
+ cp_sta_mgr_set_our_avln (&ctx.cp, net);
+ ctx.cp.beacon.countdown_limit_date = BSU_ACLF_BP_60HZ_TCK;
+ ctx.cp.beacon.last_countdown_date = 0;
/* Configure the test. */
- cp.beacon.hm.hmcd = 2;
- cp.beacon.hm.hm = 0x1;
+ ctx.cp.beacon.hm.hmcd = 2;
+ ctx.cp.beacon.hm.hm = 0x1;
- cp_beacon_beacon_not_received (&cp);
+ cp_beacon_beacon_not_received (&ctx.cp);
- test_fail_unless (cp.beacon.hm.hmcd == 1);
- test_fail_unless (cp.beacon.hm.hm == 0x1);
- cp.beacon.countdown_limit_date = BSU_ACLF_BP_60HZ_TCK;
- cp.beacon.last_countdown_date = 0;
+ test_fail_unless (ctx.cp.beacon.hm.hmcd == 1);
+ test_fail_unless (ctx.cp.beacon.hm.hm == 0x1);
+ ctx.cp.beacon.countdown_limit_date = BSU_ACLF_BP_60HZ_TCK;
+ ctx.cp.beacon.last_countdown_date = 0;
- cp_beacon_beacon_not_received (&cp);
+ cp_beacon_beacon_not_received (&ctx.cp);
- test_fail_unless (cp.beacon.hm.hmcd == 0);
- test_fail_unless (cp.beacon.hm.hm == 0x1);
+ test_fail_unless (ctx.cp.beacon.hm.hmcd == 0);
+ test_fail_unless (ctx.cp.beacon.hm.hm == 0x1);
test_fail_unless (own->hybrid_mode == 0x1);
- cp_beacon_uninit (&cp);
- cp_sta_mgr_uninit (&cp);
- cp_cco_region_uninit (&cp);
- cp_cco_bw_uninit (&cp);
+ test_beacon_uninit (&ctx);
}
test_end;
}
@@ -1047,58 +949,43 @@ test_case_beacon_eks_change_cco (test_t test)
{
cp_key_t nek;
cp_net_t *net;
- mac_config_t mac_config;
- cl_t cl;
- sar_t sar;
-
+ test_beacon_t ctx;
test_case_begin (test, "CCo");
/** Configure the context. */
- memset (&mac_config, 0, sizeof (mac_config_t));
- memset (&cl, 0, sizeof (cl_t));
- memset (&sar, 0, sizeof (sar_t));
-
- cp_sta_mgr_init (&cp);
- cp_beacon_init (&cp);
-
- cp.mac_config = &mac_config;
- cp.cl = &cl;
- cp.sar = &sar;
- cp.mac_store = mac_store_init();
- cp.beacon.countdown_limit_date = BSU_ACLF_BP_60HZ_TCK;
- cp.beacon.last_countdown_date = 0;
+ test_beacon_init (&ctx);
+ ctx.cp.beacon.countdown_limit_date = BSU_ACLF_BP_60HZ_TCK;
+ ctx.cp.beacon.last_countdown_date = 0;
/** Configure our station. */
- net = cp_sta_mgr_add_avln (&cp, 0xA, 1);
- cp_sta_own_data_set_tei (&cp, 1);
- cp_sta_mgr_set_our_avln (&cp, net);
- cp_sta_own_data_set_cco_status (&cp, true);
- cp_sta_own_data_set_mac_address (&cp, 0x123456789ABCull);
+ net = cp_sta_mgr_add_avln (&ctx.cp, 0xA, 1);
+ cp_sta_own_data_set_tei (&ctx.cp, 1);
+ cp_sta_mgr_set_our_avln (&ctx.cp, net);
+ cp_sta_own_data_set_cco_status (&ctx.cp, true);
+ cp_sta_own_data_set_mac_address (&ctx.cp, 0x123456789ABCull);
test_begin (test, "Change EKS")
{
uint i;
/** Check default values. */
- test_fail_unless (cp.beacon.eks.kccd == 0);
- test_fail_unless (cp.beacon.eks.kbc == BSU_BEACON_EKS_KBC_NEK);
- test_fail_unless (cp.beacon.eks.new_eks == 0);
+ test_fail_unless (ctx.cp.beacon.eks.kccd == 0);
+ test_fail_unless (ctx.cp.beacon.eks.kbc == BSU_BEACON_EKS_KBC_NEK);
+ test_fail_unless (ctx.cp.beacon.eks.new_eks == 0);
/** Change nek. */
for (i = 0; i < COUNT (nek.key); i++)
nek.key[i] = i;
- cp_beacon_change_nek (&cp, MAC_EKS_MIN, nek, false /* not now*/);
+ cp_beacon_change_nek (&ctx.cp, MAC_EKS_MIN, nek, false /* not now*/);
/** Check new values. */
- test_fail_unless (cp.beacon.eks.new_eks == MAC_EKS_MIN);
- test_fail_unless (cp.beacon.eks.kbc == BSU_BEACON_EKS_KBC_NEK);
- test_fail_unless (cp.beacon.eks.kccd == CP_BEACON_COUNTDOWN_EKS);
+ test_fail_unless (ctx.cp.beacon.eks.new_eks == MAC_EKS_MIN);
+ test_fail_unless (ctx.cp.beacon.eks.kbc == BSU_BEACON_EKS_KBC_NEK);
+ test_fail_unless (ctx.cp.beacon.eks.kccd == CP_BEACON_COUNTDOWN_EKS);
}
test_end;
/* Uninit all the data. */
- cp_beacon_uninit (&cp);
- cp_sta_mgr_uninit (&cp);
- mac_store_uninit (cp.mac_store);
+ test_beacon_uninit (&ctx);
}
void
@@ -1109,37 +996,18 @@ test_case_beacon_eks_change_sta (test_t test)
test_begin (test, "Beacon reception")
{
bsu_beacon_t *beacon;
- mac_config_t mac_config;
- cl_t cl;
- sar_t sar;
cp_net_t *net;
- uint phy = 0;
- bsu_aclf_t aclf;
cp_sta_own_data_t *own;
+ test_beacon_t ctx;
/** Init the context. */
- memset (&mac_config, 0, sizeof (mac_config_t));
- memset (&cl, 0, sizeof (cl_t));
- memset (&sar, 0, sizeof (sar_t));
- cp.mac_config = &mac_config;
- cp.cl = &cl;
- cp.sar = &sar;
- cp.phy = (phy_t *) &phy;
- cp.bsu_aclf = &aclf;
- cp.mac_store = mac_store_init ();
- cp.beacon.countdown_limit_date = BSU_ACLF_BP_60HZ_TCK;
- cp.bsu_aclf->beacon_period_tck = BSU_ACLF_BP_60HZ_TCK;
- cp.beacon.last_countdown_date = 0;
- cp_sta_mgr_init (&cp);
- cp_beacon_init (&cp);
- cp_cco_bw_init (&cp);
- cp_cco_region_init (&cp);
+ test_beacon_init (&ctx);
/** Configure station own data. */
- own = cp_sta_mgr_get_sta_own_data (&cp);
- net = cp_sta_mgr_add_avln (&cp, 0, 1);
- cp_sta_own_data_set_tei (&cp, 2);
- cp_sta_own_data_set_mac_address (&cp, 0x23456789abcull);
- cp_sta_mgr_set_our_avln (&cp, net);
- own = cp_sta_mgr_get_sta_own_data (&cp);
+ own = cp_sta_mgr_get_sta_own_data (&ctx.cp);
+ net = cp_sta_mgr_add_avln (&ctx.cp, 0, 1);
+ cp_sta_own_data_set_tei (&ctx.cp, 2);
+ cp_sta_own_data_set_mac_address (&ctx.cp, 0x23456789abcull);
+ cp_sta_mgr_set_our_avln (&ctx.cp, net);
+ own = cp_sta_mgr_get_sta_own_data (&ctx.cp);
own->nid_track = 1;
own->tei_track = 1;
/** Create a central beacon. */
@@ -1150,134 +1018,118 @@ test_case_beacon_eks_change_sta (test_t test)
beacon->bmis.eks.new_eks = MAC_EKS_MIN + 1;
mac_eks_t ref_eks_current = MAC_EKS_MIN + 2;
mac_eks_t ref_eks_next = MAC_EKS_MIN + 3;
- mac_config.nek[bsu_nek_index_current (INVALID_PTR)].eks =
+ ctx.mac_config.nek[bsu_nek_index_current (INVALID_PTR)].eks =
ref_eks_current;
- mac_config.nek[bsu_nek_index_next (INVALID_PTR)].eks = ref_eks_next;
+ ctx.mac_config.nek[bsu_nek_index_next (INVALID_PTR)].eks = ref_eks_next;
/** Check default values. */
- test_fail_unless (cp.beacon.eks.kccd == 0);
- test_fail_unless (cp.beacon.eks.kbc == BSU_BEACON_EKS_KBC_NEK);
- test_fail_unless (cp.beacon.eks.new_eks == MAC_EKS_MIN);
+ test_fail_unless (ctx.cp.beacon.eks.kccd == 0);
+ test_fail_unless (ctx.cp.beacon.eks.kbc == BSU_BEACON_EKS_KBC_NEK);
+ test_fail_unless (ctx.cp.beacon.eks.new_eks == MAC_EKS_MIN);
/* launch the test. */
- cp_beacon_receive (&cp, beacon);
- cp_beacon_get_and_process_beacon (&cp);
- test_fail_unless (cp.beacon.eks.kccd == 2);
- test_fail_unless (cp.beacon.eks.kbc == BSU_BEACON_EKS_KBC_NEK);
- test_fail_unless (cp.beacon.eks.new_eks == MAC_EKS_MIN + 1);
+ cp_beacon_receive (&ctx.cp, beacon);
+ cp_beacon_get_and_process_beacon (&ctx.cp);
+ test_fail_unless (ctx.cp.beacon.eks.kccd == 2);
+ test_fail_unless (ctx.cp.beacon.eks.kbc == BSU_BEACON_EKS_KBC_NEK);
+ test_fail_unless (ctx.cp.beacon.eks.new_eks == MAC_EKS_MIN + 1);
test_fail_unless (
- mac_config.nek[bsu_nek_index_current (INVALID_PTR)].eks ==
+ ctx.mac_config.nek[bsu_nek_index_current (INVALID_PTR)].eks ==
ref_eks_current);
- test_fail_unless (mac_config.nek[bsu_nek_index_next (INVALID_PTR)].eks ==
+ test_fail_unless (ctx.mac_config.nek[bsu_nek_index_next (INVALID_PTR)].eks ==
ref_eks_next);
/* Create the beacon. */
beacon = test_new_beacon ();
beacon->bmis.eks.kccd = 1;
- cp.beacon.countdown_limit_date = BSU_ACLF_BP_60HZ_TCK;
- cp.beacon.last_countdown_date = 0;
+ ctx.cp.beacon.countdown_limit_date = BSU_ACLF_BP_60HZ_TCK;
+ ctx.cp.beacon.last_countdown_date = 0;
/* launch the test. */
- cp_beacon_receive (&cp, beacon);
- cp_beacon_get_and_process_beacon (&cp);
- test_fail_unless (cp.beacon.eks.kccd == 1);
- test_fail_unless (cp.beacon.eks.kbc == BSU_BEACON_EKS_KBC_NEK);
- test_fail_unless (cp.beacon.eks.new_eks == MAC_EKS_MIN + 1);
+ cp_beacon_receive (&ctx.cp, beacon);
+ cp_beacon_get_and_process_beacon (&ctx.cp);
+ test_fail_unless (ctx.cp.beacon.eks.kccd == 1);
+ test_fail_unless (ctx.cp.beacon.eks.kbc == BSU_BEACON_EKS_KBC_NEK);
+ test_fail_unless (ctx.cp.beacon.eks.new_eks == MAC_EKS_MIN + 1);
test_fail_unless (
- mac_config.nek[bsu_nek_index_current (INVALID_PTR)].eks ==
+ ctx.mac_config.nek[bsu_nek_index_current (INVALID_PTR)].eks ==
ref_eks_current);
- test_fail_unless (mac_config.nek[bsu_nek_index_next (INVALID_PTR)].eks ==
+ test_fail_unless (ctx.mac_config.nek[bsu_nek_index_next (INVALID_PTR)].eks ==
ref_eks_next);
/* Create the beacon. */
beacon = test_new_beacon ();
beacon->bmis.eks.present = false;
beacon->bmis.nbe--;
- cp.beacon.countdown_limit_date = BSU_ACLF_BP_60HZ_TCK;
- cp.beacon.last_countdown_date = 0;
+ ctx.cp.beacon.countdown_limit_date = BSU_ACLF_BP_60HZ_TCK;
+ ctx.cp.beacon.last_countdown_date = 0;
/* launch the test. */
- cp_beacon_receive (&cp, beacon);
- cp_beacon_get_and_process_beacon (&cp);
- test_fail_unless (cp.beacon.eks.kccd == 0);
- test_fail_unless (cp.beacon.eks.kbc == BSU_BEACON_EKS_KBC_NB);
- test_fail_unless (cp.beacon.eks.new_eks == MAC_EKS_MIN + 1);
+ cp_beacon_receive (&ctx.cp, beacon);
+ cp_beacon_get_and_process_beacon (&ctx.cp);
+ test_fail_unless (ctx.cp.beacon.eks.kccd == 0);
+ test_fail_unless (ctx.cp.beacon.eks.kbc == BSU_BEACON_EKS_KBC_NB);
+ test_fail_unless (ctx.cp.beacon.eks.new_eks == MAC_EKS_MIN + 1);
test_fail_unless (
- mac_config.nek[bsu_nek_index_current (INVALID_PTR)].eks ==
+ ctx.mac_config.nek[bsu_nek_index_current (INVALID_PTR)].eks ==
ref_eks_current);
- test_fail_unless (mac_config.nek[bsu_nek_index_next (INVALID_PTR)].eks ==
+ test_fail_unless (ctx.mac_config.nek[bsu_nek_index_next (INVALID_PTR)].eks ==
MAC_EKS_CLEAR);
- cp_beacon_uninit (&cp);
- cp_sta_mgr_uninit (&cp);
- dbg_check (mac_store_sta_remove (cp.mac_store, 1));
- mac_store_uninit (cp.mac_store);
- cp_cco_region_uninit (&cp);
- cp_cco_bw_uninit (&cp);
+ dbg_check (mac_store_sta_remove (ctx.cp.mac_store, 1));
+ test_beacon_uninit (&ctx);
}
test_end;
test_begin (test, "Beacon missed")
{
- mac_config_t mac_config;
- cl_t cl;
- sar_t sar;
cp_net_t *net;
cp_cco_region_alloc_t *region;
cp_cco_bw_alloc_t *alloc;
cp_sta_own_data_t *own;
-
- memset (&mac_config, 0, sizeof (mac_config_t));
- memset (&cl, 0, sizeof (cl_t));
- memset (&sar, 0, sizeof (sar_t));
-
- cp_cco_region_init (&cp);
- cp_cco_bw_init (&cp);
-
+ test_beacon_t ctx;
+ test_beacon_init (&ctx);
/* Regions. */
- region = cp_cco_region_alloc_init (&cp);
+ region = cp_cco_region_alloc_init (&ctx.cp);
region->type = CP_BEACON_REGION_TYPE_SHARED_CSMA;
region->end_time_atu = 3907;
- cp_cco_region_alloc_add (&cp, &cp.region.region_list, region);
+ cp_cco_region_alloc_add (&ctx.cp, &ctx.cp.region.region_list, region);
slab_release (region);
/* Schedules. */
- alloc = cp_cco_bw_alloc_init (&cp);
+ alloc = cp_cco_bw_alloc_init (&ctx.cp);
alloc->stpf = false;
alloc->glid = 0x45;
alloc->end_time_atu = 3907;
alloc->persistence = CP_CCO_BW_ALLOC_PERSISTENCE_NOT_PERSISTENT;
- cp_cco_bw_alloc_add (&cp, &cp.bw.alloc_list, alloc);
+ cp_cco_bw_alloc_add (&ctx.cp, &ctx.cp.bw.alloc_list, alloc);
slab_release (alloc);
- cp_sta_mgr_init (&cp);
- cp_beacon_init (&cp);
+ cp_sta_mgr_init (&ctx.cp);
+ cp_beacon_init (&ctx.cp);
/* Configure station own data. */
- own = cp_sta_mgr_get_sta_own_data (&cp);
- net = cp_sta_mgr_add_avln (&cp, 0, 1);
- cp_sta_own_data_set_tei (&cp, 2);
- cp_sta_own_data_set_mac_address (&cp, 0x23456789abcull);
- cp_sta_mgr_set_our_avln (&cp, net);
- cp.beacon.countdown_limit_date = BSU_ACLF_BP_60HZ_TCK;
- cp.beacon.last_countdown_date = 0;
+ own = cp_sta_mgr_get_sta_own_data (&ctx.cp);
+ net = cp_sta_mgr_add_avln (&ctx.cp, 0, 1);
+ cp_sta_own_data_set_tei (&ctx.cp, 2);
+ cp_sta_own_data_set_mac_address (&ctx.cp, 0x23456789abcull);
+ cp_sta_mgr_set_our_avln (&ctx.cp, net);
+ ctx.cp.beacon.countdown_limit_date = BSU_ACLF_BP_60HZ_TCK;
+ ctx.cp.beacon.last_countdown_date = 0;
/* Configure the test. */
- cp.beacon.eks.kccd = 2;
- cp.beacon.eks.kbc = BSU_BEACON_EKS_KBC_NEK;
- cp.beacon.eks.new_eks = MAC_EKS_MIN + 1;
+ ctx.cp.beacon.eks.kccd = 2;
+ ctx.cp.beacon.eks.kbc = BSU_BEACON_EKS_KBC_NEK;
+ ctx.cp.beacon.eks.new_eks = MAC_EKS_MIN + 1;
- cp_beacon_beacon_not_received (&cp);
+ cp_beacon_beacon_not_received (&ctx.cp);
- test_fail_unless (cp.beacon.eks.kccd == 1);
- test_fail_unless (cp.beacon.eks.kbc == BSU_BEACON_EKS_KBC_NEK);
- test_fail_unless (cp.beacon.eks.new_eks == MAC_EKS_MIN + 1);
- cp.beacon.countdown_limit_date = BSU_ACLF_BP_60HZ_TCK;
- cp.beacon.last_countdown_date = 0;
+ test_fail_unless (ctx.cp.beacon.eks.kccd == 1);
+ test_fail_unless (ctx.cp.beacon.eks.kbc == BSU_BEACON_EKS_KBC_NEK);
+ test_fail_unless (ctx.cp.beacon.eks.new_eks == MAC_EKS_MIN + 1);
+ ctx.cp.beacon.countdown_limit_date = BSU_ACLF_BP_60HZ_TCK;
+ ctx.cp.beacon.last_countdown_date = 0;
- cp_beacon_beacon_not_received (&cp);
+ cp_beacon_beacon_not_received (&ctx.cp);
- test_fail_unless (cp.beacon.eks.kccd == 0);
- test_fail_unless (cp.beacon.eks.kbc == BSU_BEACON_EKS_KBC_NB);
- test_fail_unless (cp.beacon.eks.new_eks == MAC_EKS_MIN + 1);
+ test_fail_unless (ctx.cp.beacon.eks.kccd == 0);
+ test_fail_unless (ctx.cp.beacon.eks.kbc == BSU_BEACON_EKS_KBC_NB);
+ test_fail_unless (ctx.cp.beacon.eks.new_eks == MAC_EKS_MIN + 1);
- cp_beacon_uninit (&cp);
- cp_sta_mgr_uninit (&cp);
- cp_cco_region_uninit (&cp);
- cp_cco_bw_uninit (&cp);
+ test_beacon_uninit (&ctx);
}
test_end;
}
@@ -1300,38 +1152,17 @@ test_suite_beacon_mac_address_bentry (test_t test)
test_begin (test, "Beacon reception")
{
bsu_beacon_t *beacon;
- mac_config_t mac_config;
- cl_t cl;
- sar_t sar;
cp_net_t *net;
- uint phy = 0;
- bsu_aclf_t aclf;
cp_sta_own_data_t *own;
+ test_beacon_t ctx;
/** Init the context. */
- memset (&mac_config, 0, sizeof (mac_config_t));
- memset (&cl, 0, sizeof (cl_t));
- memset (&sar, 0, sizeof (sar_t));
-
- cp.mac_config = &mac_config;
- cp.cl = &cl;
- cp.sar = &sar;
- cp.phy = (phy_t *) &phy;
- cp.bsu_aclf = &aclf;
- cp.mac_store = mac_store_init ();
- cp.beacon.countdown_limit_date = BSU_ACLF_BP_60HZ_TCK;
- cp.bsu_aclf->beacon_period_tck = BSU_ACLF_BP_60HZ_TCK;
- cp.beacon.last_countdown_date = 0;
- cp_sta_mgr_init (&cp);
- cp_beacon_init (&cp);
- cp_cco_bw_init (&cp);
- cp_cco_region_init (&cp);
-
+ test_beacon_init (&ctx);
/** Configure station own data. */
- own = cp_sta_mgr_get_sta_own_data (&cp);
- net = cp_sta_mgr_add_avln (&cp, 0, 1);
- cp_sta_own_data_set_tei (&cp, 2);
- cp_sta_own_data_set_mac_address (&cp, 0x23456789abcull);
- cp_sta_mgr_set_our_avln (&cp, net);
+ own = cp_sta_mgr_get_sta_own_data (&ctx.cp);
+ net = cp_sta_mgr_add_avln (&ctx.cp, 0, 1);
+ cp_sta_own_data_set_tei (&ctx.cp, 2);
+ cp_sta_own_data_set_mac_address (&ctx.cp, 0x23456789abcull);
+ cp_sta_mgr_set_our_avln (&ctx.cp, net);
own->nid_track = 1;
own->tei_track = 1;
own->cco_mac_addr_track = MAC_ZERO;
@@ -1339,9 +1170,9 @@ test_suite_beacon_mac_address_bentry (test_t test)
beacon = test_new_beacon ();
beacon->bmis.mac_address.present = false;
/* launch the test. */
- cp_beacon_receive (&cp, beacon);
- cp_beacon_get_and_process_beacon (&cp);
- cp_sta_t *cco = cp_net_get_cco (&cp, net);
+ cp_beacon_receive (&ctx.cp, beacon);
+ cp_beacon_get_and_process_beacon (&ctx.cp);
+ cp_sta_t *cco = cp_net_get_cco (&ctx.cp, net);
test_fail_unless (cco);
test_fail_unless (cp_sta_get_mac_address (cco) == MAC_BROADCAST);
test_fail_unless (cp_sta_get_cco_status (cco) == true);
@@ -1351,9 +1182,9 @@ test_suite_beacon_mac_address_bentry (test_t test)
beacon = test_new_beacon ();
beacon->bmis.mac_address.present = true;
beacon->bmis.mac_address.mac_address = 0x12345678abcull;
- cp_beacon_receive (&cp, beacon);
- cp_beacon_get_and_process_beacon (&cp);
- cco = cp_net_get_cco (&cp, net);
+ cp_beacon_receive (&ctx.cp, beacon);
+ cp_beacon_get_and_process_beacon (&ctx.cp);
+ cco = cp_net_get_cco (&ctx.cp, net);
test_fail_unless (cco);
/* The beacon is not processed. */
test_fail_unless (cp_sta_get_mac_address (cco)
@@ -1364,9 +1195,9 @@ test_suite_beacon_mac_address_bentry (test_t test)
beacon = test_new_beacon ();
beacon->bmis.mac_address.present = true;
beacon->bmis.mac_address.mac_address = 0x0013d7000001ull;
- cp_beacon_receive (&cp, beacon);
- cp_beacon_get_and_process_beacon (&cp);
- cco = cp_net_get_cco (&cp, net);
+ cp_beacon_receive (&ctx.cp, beacon);
+ cp_beacon_get_and_process_beacon (&ctx.cp);
+ cco = cp_net_get_cco (&ctx.cp, net);
test_fail_unless (cco);
test_fail_unless (cp_sta_get_mac_address (cco)
!= beacon->bmis.mac_address.mac_address);
@@ -1378,9 +1209,9 @@ test_suite_beacon_mac_address_bentry (test_t test)
beacon = test_new_beacon ();
beacon->bmis.mac_address.present = true;
beacon->bmis.mac_address.mac_address = 0x0013d7000001ull;
- cp_beacon_receive (&cp, beacon);
- cp_beacon_get_and_process_beacon (&cp);
- cco = cp_net_get_cco (&cp, net);
+ cp_beacon_receive (&ctx.cp, beacon);
+ cp_beacon_get_and_process_beacon (&ctx.cp);
+ cco = cp_net_get_cco (&ctx.cp, net);
test_fail_unless (cco);
test_fail_unless (cp_sta_get_mac_address (cco)
== beacon->bmis.mac_address.mac_address);
@@ -1391,23 +1222,17 @@ test_suite_beacon_mac_address_bentry (test_t test)
beacon = test_new_beacon ();
beacon->bmis.mac_address.present = true;
beacon->bmis.mac_address.mac_address = 0x12345678abcull;
- cp_beacon_receive (&cp, beacon);
- cp_beacon_get_and_process_beacon (&cp);
- cco = cp_net_get_cco (&cp, net);
+ cp_beacon_receive (&ctx.cp, beacon);
+ cp_beacon_get_and_process_beacon (&ctx.cp);
+ cco = cp_net_get_cco (&ctx.cp, net);
test_fail_unless (cco);
test_fail_unless (cp_sta_get_mac_address (cco) == 0x0013d7000001ull);
test_fail_unless (cp_sta_get_cco_status (cco) == true);
slab_release (cco);
- cp_beacon_uninit (&cp);
- cp_sta_mgr_uninit (&cp);
- dbg_check (mac_store_sta_remove (cp.mac_store, 1));
- mac_store_uninit (cp.mac_store);
-
- cp_cco_region_uninit (&cp);
- cp_cco_bw_uninit (&cp);
+ dbg_check (mac_store_sta_remove (ctx.cp.mac_store, 1));
+ test_beacon_uninit (&ctx);
}
test_end;
-
}
void
@@ -1466,53 +1291,48 @@ test_suite_beacon_no_net (test_t t)
void
test_suite_beacon_spoc_update (test_t test)
{
- cp_t cp;
- mac_config_t mc;
- cp.mac_config = &mc;
- mac_config_init (cp.mac_config);
- cp_beacon_init (&cp);
- cp_sta_mgr_init (&cp);
- cp_cco_region_init (&cp);
- cp_cco_bw_init (&cp);
+ test_beacon_t ctx;
+ test_beacon_init (&ctx);
test_suite_begin (test, "SPOC update");
test_case_begin (test, "Frequency error invalid and valid");
test_begin (test, "SPOC only updated if F.E. is valid")
{
- cp_sta_own_data_t *own = cp_sta_mgr_get_sta_own_data (&cp);
- cp.beacon.spoc_update_interval_ms = 1;
+ cp_sta_own_data_t *own = cp_sta_mgr_get_sta_own_data (&ctx.cp);
+ ctx.cp.beacon.spoc_update_interval_ms = 1;
bsu_beacon_t *beacon = test_new_beacon ();
- cp_sta_mgr_add_avln (&cp, beacon->params.rx_parameters.snid,
+ cp_sta_mgr_add_avln (&ctx.cp, beacon->params.rx_parameters.snid,
beacon->vf.nid);
- cp.beacon.spoc_update_date = phy_date () - 1;
- cp_sta_own_data_set_nid (&cp, beacon->vf.nid);
+ ctx.cp.beacon.spoc_update_date = phy_date () - 1;
+ cp_sta_own_data_set_nid (&ctx.cp, beacon->vf.nid);
own->nid_track = beacon->vf.nid;
own->tei_track = beacon->vf.stei;
+ beacon->params.rx_parameters.snid =
+ cp_sta_own_data_get_snid (&ctx.cp);
/* Process a received beacon with a frequency error invalid. */
- cp_beacon_receive (&cp, beacon);
- cp_beacon_get_and_process_beacon (&cp);
- test_fail_unless (!cp.beacon.spoc_updated);
+ cp_beacon_receive (&ctx.cp, beacon);
+ cp_beacon_get_and_process_beacon (&ctx.cp);
+ test_fail_unless (!ctx.cp.beacon.spoc_updated);
/* This received beacon has a valid frequency error, SPOC should be
* updated. */
beacon = test_new_beacon ();
beacon->params.frequency_error_valid = true;
- cp.beacon.spoc_update_date = phy_date () - 1;
- cp_beacon_receive (&cp, beacon);
- cp_beacon_get_and_process_beacon (&cp);
- test_fail_unless (cp.beacon.spoc_updated);
+ beacon->params.rx_parameters.snid =
+ cp_sta_own_data_get_snid (&ctx.cp);
+ ctx.cp.beacon.spoc_update_date = phy_date () - 1;
+ cp_beacon_receive (&ctx.cp, beacon);
+ cp_beacon_get_and_process_beacon (&ctx.cp);
+ test_fail_unless (ctx.cp.beacon.spoc_updated);
/* This received beacon has a invalid frequency error. SPOC updated
* flag stay at true. */
beacon = test_new_beacon ();
beacon->params.frequency_error_valid = false;
- cp.beacon.spoc_update_date = phy_date () - 1;
- cp_beacon_receive (&cp, beacon);
- cp_beacon_get_and_process_beacon (&cp);
- test_fail_unless (cp.beacon.spoc_updated);
+ ctx.cp.beacon.spoc_update_date = phy_date () - 1;
+ cp_beacon_receive (&ctx.cp, beacon);
+ cp_beacon_get_and_process_beacon (&ctx.cp);
+ test_fail_unless (ctx.cp.beacon.spoc_updated);
}
test_end;
- cp_cco_region_uninit (&cp);
- cp_cco_bw_uninit (&cp);
- cp_sta_mgr_uninit (&cp);
- cp_beacon_uninit (&cp);
+ test_beacon_uninit (&ctx);
}
int
@@ -1521,7 +1341,6 @@ main (void)
test_t test;
test_init (test, 0, NULL);
- test_case_beacon_init (test);
test_case_beacon_uninit (test);
test_case_beacon__deactivate (test);
test_suite_beacon__beacon_generation (test);