summaryrefslogtreecommitdiff
path: root/cesar/cp2/fsm/test/utest/src
diff options
context:
space:
mode:
authorschodet2008-08-14 09:25:52 +0000
committerschodet2008-08-14 09:25:52 +0000
commitc5584c33d3524d553dbd5bbb19a6b6fadc371b97 (patch)
treeb8def2f37cc02d3bf3f282fa8c4fc6a6e2d055fd /cesar/cp2/fsm/test/utest/src
parenta827688715ede51a1d30a0705c7c4af663ef7aaf (diff)
* cp2/fsm:
- added STA events. git-svn-id: svn+ssh://pessac/svn/cesar/trunk@2728 017c9cb6-072f-447c-8318-d5b54f68fe89
Diffstat (limited to 'cesar/cp2/fsm/test/utest/src')
-rw-r--r--cesar/cp2/fsm/test/utest/src/actions.c2
-rw-r--r--cesar/cp2/fsm/test/utest/src/fsm_stub.c11
-rw-r--r--cesar/cp2/fsm/test/utest/src/test_fsm.c20
3 files changed, 33 insertions, 0 deletions
diff --git a/cesar/cp2/fsm/test/utest/src/actions.c b/cesar/cp2/fsm/test/utest/src/actions.c
index 93f65fded7..3c74de91a1 100644
--- a/cesar/cp2/fsm/test/utest/src/actions.c
+++ b/cesar/cp2/fsm/test/utest/src/actions.c
@@ -25,6 +25,8 @@ scenario_action_post_and_process_cb (scenario_globals_t *globals,
else if (p->beacon)
event = cp_fsm_event_beacon_new (globals->cp, p->type, p->beacon,
p->net, p->sta);
+ else if (p->sta)
+ event = cp_fsm_event_sta_new (globals->cp, p->type, p->net, p->sta);
else
event = cp_fsm_event_bare_new (globals->cp, p->type);
cp_fsm_post (globals->cp, event);
diff --git a/cesar/cp2/fsm/test/utest/src/fsm_stub.c b/cesar/cp2/fsm/test/utest/src/fsm_stub.c
index 3ddd0f60c6..212e914e6f 100644
--- a/cesar/cp2/fsm/test/utest/src/fsm_stub.c
+++ b/cesar/cp2/fsm/test/utest/src/fsm_stub.c
@@ -36,6 +36,9 @@ void
cp_fsm__STATE1__event_mme (cp_t *ctx, cp_mme_rx_t *mme);
void
+cp_fsm__STATE1__event_sta (cp_t *ctx, cp_net_t *net, cp_sta_t *sta);
+
+void
cp_fsm__STATE1__event_beacon (cp_t *ctx, cp_beacon_desc_t *beacon,
cp_net_t *net, cp_sta_t *sta);
@@ -114,6 +117,14 @@ cp_fsm__STATE1__event_mme (cp_t *ctx, cp_mme_rx_t *mme)
}
void
+cp_fsm__STATE1__event_sta (cp_t *ctx, cp_net_t *net, cp_sta_t *sta)
+{
+ scenario_event (cp_fsm__STATE1__event_sta, param);
+ test_fail_unless (net == param->net);
+ test_fail_unless (sta == param->sta);
+}
+
+void
cp_fsm__STATE1__event_beacon (cp_t *ctx, cp_beacon_desc_t *beacon,
cp_net_t *net, cp_sta_t *sta)
{
diff --git a/cesar/cp2/fsm/test/utest/src/test_fsm.c b/cesar/cp2/fsm/test/utest/src/test_fsm.c
index d6976b4f23..8318f4be92 100644
--- a/cesar/cp2/fsm/test/utest/src/test_fsm.c
+++ b/cesar/cp2/fsm/test/utest/src/test_fsm.c
@@ -93,6 +93,26 @@ test_fsm_basic_test_case (test_t t)
test_fail_unless (cp.fsm.active_states[0] == CP_FSM_STATE_STATE1);
cp_fsm_uninit (&cp);
} test_end;
+ test_begin (t, "sta")
+ {
+ cp_fsm_init (&cp);
+ cp_sta_t *sta = (void *) 0x12345678;
+ cp_net_t *net = (void *) 0x9abcdef0;
+ scenario_entry_t entries[] = {
+ SCENARIO_ACTION (post_and_process,
+ .type = CP_FSM_EVENT_TYPE_event_sta,
+ .net = net, .sta = sta),
+ SCENARIO_EVENT (cp_fsm__STATE1__event_sta,
+ .net = net, .sta = sta),
+ SCENARIO_END
+ };
+ scenario_globals_t globals = {
+ .cp = &cp,
+ };
+ scenario_run (t, entries, &globals);
+ test_fail_unless (cp.fsm.active_states[0] == CP_FSM_STATE_STATE1);
+ cp_fsm_uninit (&cp);
+ } test_end;
test_begin (t, "beacon")
{
cp_fsm_init (&cp);