summaryrefslogtreecommitdiff
path: root/cesar/cp
diff options
context:
space:
mode:
authorDavid Mercadie2011-03-31 17:07:03 +0200
committerDavid Mercadie2011-04-06 16:21:04 +0200
commitd30cb188bf2b7f05fa30acf4247516de9f968667 (patch)
tree2b2f06c9dfc5a43cb8f199df031e55261f272723 /cesar/cp
parentb709bb7d12bd1b6fd0223aba696588725926429d (diff)
cesar/cp/beacon/test: fix the unit test
Diffstat (limited to 'cesar/cp')
-rw-r--r--cesar/cp/beacon/test/src/beacon_scenario.c59
-rw-r--r--cesar/cp/beacon/test/src/bsu_beacon_stub.c9
-rw-r--r--cesar/cp/beacon/test/src/fsm_stub.c6
-rw-r--r--cesar/cp/beacon/test/src/sta_mgr_stub.c21
4 files changed, 67 insertions, 28 deletions
diff --git a/cesar/cp/beacon/test/src/beacon_scenario.c b/cesar/cp/beacon/test/src/beacon_scenario.c
index dce602da64..c45687fbca 100644
--- a/cesar/cp/beacon/test/src/beacon_scenario.c
+++ b/cesar/cp/beacon/test/src/beacon_scenario.c
@@ -15,12 +15,13 @@
bsu_beacon_t beacon_data;
void
-cp_beacon_receive (cp_t *ctx, pb_beacon_t *beacon, bsu_params_t *params);
+cp_beacon_receive (void *ul, bsu_beacon_t *beacon);
void
beacon_test_case (test_t test)
{
cp_t cp;
+ bsu_beacon_t *beacon;
scenario_globals_t globals = { .cp = &cp, };
/** Init the context. */
@@ -36,20 +37,20 @@ beacon_test_case (test_t test)
mac_config.nek[bsu_nek_index_current ()].eks = ref_eks_current;
mac_config.nek[bsu_nek_index_next ()].eks = ref_eks_next;
- cp_snid_t our_snid = 1;
- pb_beacon_t *beacon = (pb_beacon_t *) blk_alloc_desc ();
- bsu_params_t *bsu_params =
- &((cp_beacon_payload_t*)beacon->data)->bsu_params;
- bsu_params->rx_parameters.snid = our_snid;
-
test_case_begin (test, "get_and_process_beacon");
/** Test with eks from the beacon different than the local next eks
* we check a nek_request event is sent. */
+ beacon = (bsu_beacon_t *) blk_alloc ();
+ beacon->bmis.eks.present = true;
+ beacon->bmis.eks.kbc = BSU_BEACON_EKS_KBC_NEK;
+ beacon->bmis.eks.new_eks = ref_eks_next + 1;
+ beacon->vf.stei = 1;
+ beacon->vf.nid = 1;
+ beacon->params.rx_parameters.snid = 1;
+ beacon->bmis.mac_address.mac_address = 0;
slist_push_back (cp.beacon.list., beacon, bare);
- beacon_data.bmis.eks.present = true;
- beacon_data.bmis.eks.kbc = BSU_BEACON_EKS_KBC_NEK;
- beacon_data.bmis.eks.new_eks = ref_eks_next + 1;
+ cp.beacon.countdown_limit_date = 0;
test_begin (test, "different eks")
{
@@ -66,10 +67,16 @@ beacon_test_case (test_t test)
/** Test with matching eks
* we check that no event is sent. */
+ beacon = (bsu_beacon_t *) blk_alloc ();
+ beacon->bmis.eks.present = true;
+ beacon->bmis.eks.kbc = BSU_BEACON_EKS_KBC_NEK;
+ beacon->bmis.eks.new_eks = ref_eks_next;
+ beacon->vf.stei = 1;
+ beacon->vf.nid = 1;
+ beacon->params.rx_parameters.snid = 1;
+ beacon->bmis.mac_address.mac_address = 0;
slist_push_back (cp.beacon.list., beacon, bare);
- beacon_data.bmis.eks.present = true;
- beacon_data.bmis.eks.kbc = BSU_BEACON_EKS_KBC_NEK;
- beacon_data.bmis.eks.new_eks = ref_eks_next;
+ cp.beacon.countdown_limit_date = 0;
test_begin (test, "same eks")
{
@@ -84,10 +91,16 @@ beacon_test_case (test_t test)
/* Test with different eks but the it's not a NEK key type
* we check that no event is sent. */
+ beacon = (bsu_beacon_t *) blk_alloc ();
+ beacon->bmis.eks.present = true;
+ beacon->bmis.eks.kbc = BSU_BEACON_EKS_KBC_NMK;
+ beacon->bmis.eks.new_eks = ref_eks_next + 1;
+ beacon->vf.stei = 1;
+ beacon->vf.nid = 1;
+ beacon->params.rx_parameters.snid = 1;
+ beacon->bmis.mac_address.mac_address = 0;
slist_push_back (cp.beacon.list., beacon, bare);
- beacon_data.bmis.eks.present = true;
- beacon_data.bmis.eks.kbc = BSU_BEACON_EKS_KBC_NMK;
- beacon_data.bmis.eks.new_eks = ref_eks_next + 1;
+ cp.beacon.countdown_limit_date = 0;
test_begin (test, "different eks but not the NEK")
{
@@ -102,11 +115,18 @@ beacon_test_case (test_t test)
/* Test with everything ok, but the local next eks is invalid
* we check that a nek_request event is sent. */
+ beacon = (bsu_beacon_t *) blk_alloc ();
+ beacon->bmis.eks.present = true;
+ beacon->bmis.eks.kbc = BSU_BEACON_EKS_KBC_NEK;
+ beacon->bmis.eks.kccd = 1;
+ beacon->bmis.eks.new_eks = ref_eks_next;
+ beacon->vf.stei = 1;
+ beacon->vf.nid = 1;
+ beacon->params.rx_parameters.snid = 1;
+ beacon->bmis.mac_address.mac_address = 0;
slist_push_back (cp.beacon.list., beacon, bare);
- beacon_data.bmis.eks.present = true;
- beacon_data.bmis.eks.kbc = BSU_BEACON_EKS_KBC_NEK;
- beacon_data.bmis.eks.new_eks = ref_eks_next;
mac_config.nek[bsu_nek_index_next ()].eks = MAC_EKS_CLEAR;
+ cp.beacon.countdown_limit_date = 0;
test_begin (test, "next eks is invalid")
{
@@ -120,7 +140,6 @@ beacon_test_case (test_t test)
scenario_run (test, entries, &globals);
}
test_end;
-
}
int
diff --git a/cesar/cp/beacon/test/src/bsu_beacon_stub.c b/cesar/cp/beacon/test/src/bsu_beacon_stub.c
index 2a45ab534b..36f1eb11bc 100644
--- a/cesar/cp/beacon/test/src/bsu_beacon_stub.c
+++ b/cesar/cp/beacon/test/src/bsu_beacon_stub.c
@@ -49,13 +49,12 @@ bsu_beacon_read_bmi_header (bitstream_t *bitstream, uint *header,
}
bool
-bsu_beacon_read (pb_beacon_t *pbbeacon, bsu_beacon_t *beacon,
- bsu_beacon_type_t *type, u8 *tei, mac_t *mac_address)
+bsu_beacon_read (pb_beacon_t *pbbeacon, bsu_beacon_t *beacon)
{
- *type = BSU_BEACON_TYPE_CENTRAL;
beacon->vf.nid = 1;
- *tei = 1;
- *mac_address = 0x123456789ABCull;
+ beacon->vf.stei = 1;
+ beacon->vf.bt = BSU_BEACON_TYPE_CENTRAL;
+ beacon->bmis.mac_address.mac_address = 0x123456789ABCull;
beacon->bmis.eks.present = beacon_data.bmis.eks.present;
beacon->bmis.eks.kbc = beacon_data.bmis.eks.kbc;
beacon->bmis.eks.new_eks = beacon_data.bmis.eks.new_eks;
diff --git a/cesar/cp/beacon/test/src/fsm_stub.c b/cesar/cp/beacon/test/src/fsm_stub.c
index 2c0883dc97..4432c97679 100644
--- a/cesar/cp/beacon/test/src/fsm_stub.c
+++ b/cesar/cp/beacon/test/src/fsm_stub.c
@@ -21,7 +21,7 @@ cp_fsm_event_bare_new (cp_t *ctx, cp_fsm_event_type_t type)
dbg_assert (ctx);
switch (type)
{
- case CP_FSM_EVENT_TYPE_snid_conflict:
+ case CP_FSM_EVENT_TYPE_cco__snid_conflict:
case CP_FSM_EVENT_TYPE_net_list_empty:
case CP_FSM_EVENT_TYPE_ustt_timeout:
case CP_FSM_EVENT_TYPE_btt_timeout:
@@ -29,8 +29,8 @@ cp_fsm_event_bare_new (cp_t *ctx, cp_fsm_event_type_t type)
case CP_FSM_EVENT_TYPE_assoc_timeout:
case CP_FSM_EVENT_TYPE_renew:
case CP_FSM_EVENT_TYPE_sta_status_changed:
- case CP_FSM_EVENT_TYPE_all_sta_leaved:
- case CP_FSM_EVENT_TYPE_become_cco:
+ case CP_FSM_EVENT_TYPE_cco__all_sta_leaved:
+ case CP_FSM_EVENT_TYPE_assoc_become_cco:
/* Ignore. */
return INVALID_PTR;
default:
diff --git a/cesar/cp/beacon/test/src/sta_mgr_stub.c b/cesar/cp/beacon/test/src/sta_mgr_stub.c
index dc4b05e16e..86341d4722 100644
--- a/cesar/cp/beacon/test/src/sta_mgr_stub.c
+++ b/cesar/cp/beacon/test/src/sta_mgr_stub.c
@@ -31,6 +31,7 @@ cp_sta_mgr_init (cp_t *ctx)
own_data.nid_track = 1;
own_data.tei_track = 1;
+ own_data.cco_mac_addr_track = 0;
memset (&ctx->sta_mgr, 0, sizeof (cp_sta_mgr_t));
@@ -191,3 +192,23 @@ cp_net_sta_get_next (cp_t *ctx, cp_net_t *net, cp_sta_t *prev_sta)
{
return NULL;
}
+
+mac_t
+cp_sta_own_data_get_mac_address (cp_t *ctx)
+{
+ return 0;
+}
+
+cp_sta_t *
+cp_sta_mgr_sta_get_from_mac (cp_t *ctx, mac_t mac_addr)
+{
+ return NULL;
+}
+
+cp_snid_t
+cp_net_get_snid (cp_t *ctx, cp_net_t *net)
+{
+ dbg_assert (net);
+
+ return net->snid;
+}