diff options
| -rw-r--r-- | src/fsm.c | 2 | ||||
| -rw-r--r-- | tests/fsm/fsm_test.c | 7 | ||||
| -rw-r--r-- | tests/fsm/fsm_test.err | 8 | 
3 files changed, 13 insertions, 4 deletions
@@ -154,6 +154,8 @@ int osmo_fsm_register(struct osmo_fsm *fsm)  	}  	if (osmo_fsm_find_by_name(fsm->name))  		return -EEXIST; +	if (fsm->event_names == NULL) +		LOGP(DLGLOBAL, LOGL_ERROR, "FSM '%s' has no event names! Please fix!\n", fsm->name);  	llist_add_tail(&fsm->list, &osmo_g_fsms);  	INIT_LLIST_HEAD(&fsm->instances); diff --git a/tests/fsm/fsm_test.c b/tests/fsm/fsm_test.c index 3bcb7d49..f70b0b5c 100644 --- a/tests/fsm/fsm_test.c +++ b/tests/fsm/fsm_test.c @@ -28,6 +28,12 @@ enum test_fsm_evt {  	EV_B,  }; +static const struct value_string test_fsm_event_names[] = { +	OSMO_VALUE_STRING(EV_A), +	OSMO_VALUE_STRING(EV_B), +	{ 0, NULL } +}; +  static void test_fsm_null(struct osmo_fsm_inst *fi, uint32_t event, void *data)  {  	switch (event) { @@ -88,6 +94,7 @@ static struct osmo_fsm fsm = {  	.states = test_fsm_states,  	.num_states = ARRAY_SIZE(test_fsm_states),  	.log_subsys = DMAIN, +	.event_names = test_fsm_event_names,  };  static struct ctrl_handle *g_ctrl; diff --git a/tests/fsm/fsm_test.err b/tests/fsm/fsm_test.err index 17a2f2e0..153963fc 100644 --- a/tests/fsm/fsm_test.err +++ b/tests/fsm/fsm_test.err @@ -1,10 +1,10 @@  Checking FSM allocation  [0;mTest_FSM(my_id){NULL}: Allocated -[0;mTest_FSM(my_id){NULL}: Received Event 1 -[0;mTest_FSM(my_id){NULL}: Event 1 not permitted -[0;mTest_FSM(my_id){NULL}: Received Event 0 +[0;mTest_FSM(my_id){NULL}: Received Event EV_B +[0;mTest_FSM(my_id){NULL}: Event EV_B not permitted +[0;mTest_FSM(my_id){NULL}: Received Event EV_A  [0;mTest_FSM(my_id){NULL}: state_chg to ONE -[0;mTest_FSM(my_id){ONE}: Received Event 1 +[0;mTest_FSM(my_id){ONE}: Received Event EV_B  [0;mTest_FSM(my_id){ONE}: state_chg to TWO  [0;mTest_FSM(my_id){TWO}: Timeout of T2342  [0;mTimer  | 
