summaryrefslogtreecommitdiff
path: root/cesar/cp2/fsm
diff options
context:
space:
mode:
authorschodet2008-06-13 09:10:45 +0000
committerschodet2008-06-13 09:10:45 +0000
commit98ef18870053183ad5ccd0ce56edf9951ea59734 (patch)
tree4385d7f6f8f75f80881577631121be4245e180b5 /cesar/cp2/fsm
parentbffc43be7e6183eb6227ed481b1d8c25a3ae698c (diff)
* cp2/fsm/test/utest:
- added mme and beacon tests. git-svn-id: svn+ssh://pessac/svn/cesar/trunk@2316 017c9cb6-072f-447c-8318-d5b54f68fe89
Diffstat (limited to 'cesar/cp2/fsm')
-rw-r--r--cesar/cp2/fsm/test/utest/inc/scenario_defs.h12
-rw-r--r--cesar/cp2/fsm/test/utest/override/cp2/fsm/src/fsm/cp.fsm4
-rw-r--r--cesar/cp2/fsm/test/utest/src/fsm_stub.c24
-rw-r--r--cesar/cp2/fsm/test/utest/src/test_fsm.c32
4 files changed, 72 insertions, 0 deletions
diff --git a/cesar/cp2/fsm/test/utest/inc/scenario_defs.h b/cesar/cp2/fsm/test/utest/inc/scenario_defs.h
index d83996530b..1eb732f358 100644
--- a/cesar/cp2/fsm/test/utest/inc/scenario_defs.h
+++ b/cesar/cp2/fsm/test/utest/inc/scenario_defs.h
@@ -42,6 +42,8 @@ scenario_action_post_and_process_cb (scenario_globals_t *globals,
#define SCENARIO_DEFS_EVENTS \
cp_fsm__STATE1__event1, \
cp_fsm__STATE1__event2, \
+ cp_fsm__STATE1__event_mme, \
+ cp_fsm__STATE1__event_beacon, \
cp_fsm__STATE2__event3, \
cp_fsm__STATE3__event1, \
cp_fsm__STATE3__event2, \
@@ -54,6 +56,16 @@ typedef struct
typedef scenario_empty_t scenario_event_cp_fsm__STATE1__event1_t;
typedef scenario_empty_t scenario_event_cp_fsm__STATE1__event2_t;
+typedef struct
+{
+ cp_mme_rx_t *mme;
+} scenario_event_cp_fsm__STATE1__event_mme_t;
+typedef struct
+{
+ cp_beacon_desc_t *beacon;
+ cp_net_t *net;
+ cp_sta_t *sta;
+} scenario_event_cp_fsm__STATE1__event_beacon_t;
typedef scenario_event_transition_with_branch_t
scenario_event_cp_fsm__STATE2__event3_t;
typedef scenario_event_transition_with_branch_t
diff --git a/cesar/cp2/fsm/test/utest/override/cp2/fsm/src/fsm/cp.fsm b/cesar/cp2/fsm/test/utest/override/cp2/fsm/src/fsm/cp.fsm
index d298d8a3ab..16f686f5fa 100644
--- a/cesar/cp2/fsm/test/utest/override/cp2/fsm/src/fsm/cp.fsm
+++ b/cesar/cp2/fsm/test/utest/override/cp2/fsm/src/fsm/cp.fsm
@@ -18,6 +18,8 @@ Events:
test error conditions: branch not for this event
error_event_dup_branch
test error conditions: branch selected two times
+ event_mme
+ event_beacon
STATE1:
event1 -> .
@@ -28,6 +30,8 @@ STATE1:
error_event_bad_branch: branch2 -> .
error_event_dup_branch: branch1 -> .
error_event_dup_branch: branch2 -> .
+ event_mme -> .
+ event_beacon -> .
STATE2:
event3: branch1 -> STATE3
diff --git a/cesar/cp2/fsm/test/utest/src/fsm_stub.c b/cesar/cp2/fsm/test/utest/src/fsm_stub.c
index 36615719c2..39fec11140 100644
--- a/cesar/cp2/fsm/test/utest/src/fsm_stub.c
+++ b/cesar/cp2/fsm/test/utest/src/fsm_stub.c
@@ -33,6 +33,13 @@ void
cp_fsm__STATE1__error_event_dup_branch (cp_t *ctx);
void
+cp_fsm__STATE1__event_mme (cp_t *ctx, cp_mme_rx_t *mme);
+
+void
+cp_fsm__STATE1__event_beacon (cp_t *ctx, cp_beacon_desc_t *beacon,
+ cp_net_t *net, cp_sta_t *sta);
+
+void
cp_fsm__STATE2__event3 (cp_t *ctx);
void
@@ -81,6 +88,23 @@ cp_fsm__STATE1__error_event_dup_branch (cp_t *ctx)
}
void
+cp_fsm__STATE1__event_mme (cp_t *ctx, cp_mme_rx_t *mme)
+{
+ scenario_event (cp_fsm__STATE1__event_mme, param);
+ test_fail_unless (mme == param->mme);
+}
+
+void
+cp_fsm__STATE1__event_beacon (cp_t *ctx, cp_beacon_desc_t *beacon,
+ cp_net_t *net, cp_sta_t *sta)
+{
+ scenario_event (cp_fsm__STATE1__event_beacon, param);
+ test_fail_unless (beacon == param->beacon);
+ test_fail_unless (net == param->net);
+ test_fail_unless (sta == param->sta);
+}
+
+void
cp_fsm__STATE2__event3 (cp_t *ctx)
{
scenario_event (cp_fsm__STATE2__event3, param);
diff --git a/cesar/cp2/fsm/test/utest/src/test_fsm.c b/cesar/cp2/fsm/test/utest/src/test_fsm.c
index 603dde4fcc..8fbdcc0053 100644
--- a/cesar/cp2/fsm/test/utest/src/test_fsm.c
+++ b/cesar/cp2/fsm/test/utest/src/test_fsm.c
@@ -75,6 +75,38 @@ test_fsm_basic_test_case (test_t t)
scenario_run (t, entries, &globals);
test_fail_unless (cp.fsm.state == CP_FSM_STATE_STATE1);
} test_end;
+ test_begin (t, "mme")
+ {
+ cp_mme_rx_t *mme = (void *) 0x12345678;
+ scenario_entry_t entries[] = {
+ SCENARIO_ACTION (post_and_process,
+ .type = CP_FSM_EVENT_TYPE_event_mme, .mme = mme),
+ SCENARIO_EVENT (cp_fsm__STATE1__event_mme, .mme = mme),
+ SCENARIO_END
+ };
+ scenario_globals_t globals = {
+ .cp = &cp,
+ };
+ scenario_run (t, entries, &globals);
+ test_fail_unless (cp.fsm.state == CP_FSM_STATE_STATE1);
+ } test_end;
+ test_begin (t, "beacon")
+ {
+ cp_beacon_desc_t *beacon = (void *) 0x9abcdef0;
+ scenario_entry_t entries[] = {
+ SCENARIO_ACTION (post_and_process,
+ .type = CP_FSM_EVENT_TYPE_event_beacon,
+ .beacon = beacon, .net = NULL, .sta = NULL),
+ SCENARIO_EVENT (cp_fsm__STATE1__event_beacon,
+ .beacon = beacon, .net = NULL, .sta = NULL),
+ SCENARIO_END
+ };
+ scenario_globals_t globals = {
+ .cp = &cp,
+ };
+ scenario_run (t, entries, &globals);
+ test_fail_unless (cp.fsm.state == CP_FSM_STATE_STATE1);
+ } test_end;
cp_fsm_uninit (&cp);
}