summaryrefslogtreecommitdiffstats
path: root/tests/fsm
diff options
context:
space:
mode:
authorNeels Hofmeyr <neels@hofmeyr.de>2018-04-09 00:42:22 +0200
committerNeels Hofmeyr <neels@hofmeyr.de>2018-04-09 17:57:15 +0200
commitd8f175cd2a1e134d0354341c9ac4d8e5c53171ea (patch)
treea58c0358bc0ef00b3ceede7e87ad8e7141236da8 /tests/fsm
parent04eb56f146a6c0395645aa2537d7c29f1e234069 (diff)
fsm_test: terminate the main loop instead of exit on timeout
In fsm_test.c, we have FSM instance cleanup after the select main loop, but we exit(0) in the timer cb; hence the final code is never called. Rather clean up the instance and hence also test that, by using a global flag to exit the main loop upon timeout. Adjust expected stderr output. BTW, in a subsequent commit, I want to move the fsm instance id testing to below the main loop, to more clearly group the tested bits. Change-Id: Ia47811ffcc1bd68d2630c86be7ab98fc1f338773
Diffstat (limited to 'tests/fsm')
-rw-r--r--tests/fsm/fsm_test.c8
-rw-r--r--tests/fsm/fsm_test.err1
2 files changed, 7 insertions, 2 deletions
diff --git a/tests/fsm/fsm_test.c b/tests/fsm/fsm_test.c
index d7b08aec..ef7bfe39 100644
--- a/tests/fsm/fsm_test.c
+++ b/tests/fsm/fsm_test.c
@@ -60,13 +60,17 @@ static void test_fsm_one(struct osmo_fsm_inst *fi, uint32_t event, void *data)
}
}
+static bool main_loop_run = true;
+
static int test_fsm_tmr_cb(struct osmo_fsm_inst *fi)
{
OSMO_ASSERT(fi->T == 2342);
OSMO_ASSERT(fi->state == ST_TWO);
LOGP(DMAIN, LOGL_INFO, "Timer\n");
- exit(0);
+ main_loop_run = false;
+
+ return 0;
}
static struct osmo_fsm_state test_fsm_states[] = {
@@ -201,7 +205,7 @@ int main(int argc, char **argv)
OSMO_ASSERT(osmo_fsm_inst_find_by_name(&fsm, "Test_FSM(another_id)") == finst);
OSMO_ASSERT(osmo_fsm_inst_update_id(finst, "my_id") == 0);
- while (1) {
+ while (main_loop_run) {
osmo_select_main(0);
}
osmo_fsm_inst_free(finst);
diff --git a/tests/fsm/fsm_test.err b/tests/fsm/fsm_test.err
index 153963fc..facc9f78 100644
--- a/tests/fsm/fsm_test.err
+++ b/tests/fsm/fsm_test.err
@@ -8,4 +8,5 @@ Checking FSM allocation
Test_FSM(my_id){ONE}: state_chg to TWO
Test_FSM(my_id){TWO}: Timeout of T2342
Timer
+Test_FSM(my_id){TWO}: Deallocated
 \ No newline at end of file