aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNeels Hofmeyr <neels@hofmeyr.de>2019-03-06 06:14:01 +0100
committerNeels Hofmeyr <neels@hofmeyr.de>2019-03-06 07:00:30 +0100
commit4ea698233aa7f94e53a0bbf09e45506b216e32d4 (patch)
treec71847556c64de634e1d13330d2828b90173f0bb
parent4f54c6c48d90ee94c3115a8ea6c60333e398e116 (diff)
fix tdef_test.c: do call the function-to-test in all cases
Always call osmo_tdef_fsm_inst_state_chg(), also when no timeout is defined. When there is no timeout defined for a state, tdef_test.c tries to be smart and print different output. In that mess, I missed the fact that osmo_tdef_fsm_inst_state_chg() isn't always called as it should. In the same mess, the resulting state was never printed until the preceding patch, which helped to hide this bug. Change-Id: I1d953d99854422bff8eb32f051e9c6147bc836b6
-rw-r--r--tests/tdef/tdef_test.c6
-rw-r--r--tests/tdef/tdef_test.ok16
-rw-r--r--tests/tdef/tdef_test_range_64bit.ok16
3 files changed, 19 insertions, 19 deletions
diff --git a/tests/tdef/tdef_test.c b/tests/tdef/tdef_test.c
index fe2accfa..12ca8020 100644
--- a/tests/tdef/tdef_test.c
+++ b/tests/tdef/tdef_test.c
@@ -323,12 +323,12 @@ static void print_fsm_state(struct osmo_fsm_inst *fi)
#define test_tdef_fsm_state_chg(tdefs, NEXT_STATE) do { \
const struct osmo_tdef_state_timeout *st = osmo_tdef_get_state_timeout(NEXT_STATE, \
test_tdef_state_timeouts); \
+ int rc = osmo_tdef_fsm_inst_state_chg(fi, NEXT_STATE, test_tdef_state_timeouts, tdefs, 999); \
if (!st) { \
- printf(" --> %s (no timer configured for this state)\t", \
- osmo_fsm_state_name(&test_tdef_fsm, NEXT_STATE)); \
+ printf(" --> %s (no timer configured for this state) rc=%d;\t", \
+ osmo_fsm_state_name(&test_tdef_fsm, NEXT_STATE), rc); \
} else { \
struct osmo_tdef *t = osmo_tdef_get_entry(tdefs, st->T); \
- int rc = osmo_tdef_fsm_inst_state_chg(fi, NEXT_STATE, test_tdef_state_timeouts, tdefs, 999); \
printf(" --> %s (configured as T%d%s %lu %s) rc=%d;\t", \
osmo_fsm_state_name(&test_tdef_fsm, NEXT_STATE), \
st->T, st->keep_timer ? "(keep_timer)" : "", \
diff --git a/tests/tdef/tdef_test.ok b/tests/tdef/tdef_test.ok
index 1acf0e60..135951e5 100644
--- a/tests/tdef/tdef_test.ok
+++ b/tests/tdef/tdef_test.ok
@@ -131,16 +131,16 @@ state=A T=1, 76.954322 s remaining
Time passes: 23.045678 s
state=A T=1, 76.954322 s remaining
--> L (configured as T123(keep_timer) 1 s) rc=0; state=L T=123, 76.954322 s remaining
- --> O (no timer configured for this state) state=L T=123, 76.954322 s remaining
- --> L (configured as T123(keep_timer) 1 s) rc=0; state=L T=123, 76.954322 s remaining
+ --> O (no timer configured for this state) rc=0; state=O T=0, no timeout
+ --> L (configured as T123(keep_timer) 1 s) rc=0; state=L T=123, no timeout
- test T=0:
- --> O (no timer configured for this state) state=L T=123, 76.954322 s remaining
+ --> O (no timer configured for this state) rc=0; state=O T=0, no timeout
- test no timer:
- --> X (no timer configured for this state) state=L T=123, 76.954322 s remaining
+ --> X (no timer configured for this state) rc=0; state=X T=0, no timeout
- test undefined timer, using default_val arg of osmo_tdef_fsm_inst_state_chg(), here passed as 999:
--> Y (configured as T666 0 -) rc=0; state=Y T=666, 999.000000 s remaining
- test disallowed transition:
- --> Z (no timer configured for this state) state=Y T=666, 999.000000 s remaining
- --> B (configured as T2 100 ms) rc=0; state=B T=2, 1.000000 s remaining
- --> C (configured as T3 100 m) rc=0; state=C T=3, 6000.000000 s remaining
- --> D (configured as T4 100 custom-unit) rc=0; state=D T=4, 100.000000 s remaining
+ --> Z (no timer configured for this state) rc=0; state=Z T=0, no timeout
+ --> B (configured as T2 100 ms) rc=-1; state=Z T=0, no timeout
+ --> C (configured as T3 100 m) rc=-1; state=Z T=0, no timeout
+ --> D (configured as T4 100 custom-unit) rc=-1; state=Z T=0, no timeout
diff --git a/tests/tdef/tdef_test_range_64bit.ok b/tests/tdef/tdef_test_range_64bit.ok
index 72ac466e..eed58e65 100644
--- a/tests/tdef/tdef_test_range_64bit.ok
+++ b/tests/tdef/tdef_test_range_64bit.ok
@@ -159,12 +159,12 @@ state=A T=1, 76.954322 s remaining
Time passes: 23.045678 s
state=A T=1, 76.954322 s remaining
--> L (configured as T123(keep_timer) 1 s) rc=0; state=L T=123, 76.954322 s remaining
- --> O (no timer configured for this state) state=L T=123, 76.954322 s remaining
- --> L (configured as T123(keep_timer) 1 s) rc=0; state=L T=123, 76.954322 s remaining
+ --> O (no timer configured for this state) rc=0; state=O T=0, no timeout
+ --> L (configured as T123(keep_timer) 1 s) rc=0; state=L T=123, no timeout
- test T=0:
- --> O (no timer configured for this state) state=L T=123, 76.954322 s remaining
+ --> O (no timer configured for this state) rc=0; state=O T=0, no timeout
- test no timer:
- --> X (no timer configured for this state) state=L T=123, 76.954322 s remaining
+ --> X (no timer configured for this state) rc=0; state=X T=0, no timeout
- test undefined timer, using default_val arg of osmo_tdef_fsm_inst_state_chg(), here passed as 999:
--> Y (configured as T666 0 -) rc=0; state=Y T=666, 999.000000 s remaining
- test large T:
@@ -370,7 +370,7 @@ state=A T=1, 76.954322 s remaining
--> M (configured as T2147483647 18446744073709551615 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining
--> M (configured as T2147483647 0 s) rc=0; state=M T=2147483647, no timeout
- test disallowed transition:
- --> Z (no timer configured for this state) state=M T=2147483647, no timeout
- --> B (configured as T2 100 ms) rc=0; state=B T=2, 1.000000 s remaining
- --> C (configured as T3 100 m) rc=0; state=C T=3, 6000.000000 s remaining
- --> D (configured as T4 100 custom-unit) rc=0; state=D T=4, 100.000000 s remaining
+ --> Z (no timer configured for this state) rc=0; state=Z T=0, no timeout
+ --> B (configured as T2 100 ms) rc=-1; state=Z T=0, no timeout
+ --> C (configured as T3 100 m) rc=-1; state=Z T=0, no timeout
+ --> D (configured as T4 100 custom-unit) rc=-1; state=Z T=0, no timeout