3535void umlua_shutdown ();
3636int umlua_init (umplg_mngr_t * pm );
3737void umlua_start (umplg_mngr_t * pm );
38+ static void run_signal_expect_error (void * * state );
39+ static int mqtt_run_init (void * * state );
40+ static int mqtt_run_dtor (void * * state );
3841
3942// globals
4043static int plg_cfg_id = 0 ;
4144static bool do_pause = false;
42- static char * plg_cfg_err_list [] = {
43- "test/plg_cfg_mqtt_err_01.json" ,
44- "test/plg_cfg_mqtt_err_02.json" ,
45- "test/plg_cfg_mqtt_err_03.json" ,
46- "test/plg_cfg_mqtt_err_04.json" ,
47- "test/plg_cfg_mqtt_err_05.json" ,
48- "test/plg_cfg_mqtt_err_06.json" ,
49- "test/plg_cfg_mqtt_err_07.json" ,
45+ static struct {
46+ char * cfg_file ;
47+ char * cfg_error_msg ;
48+ struct CMUnitTest tests [1 ];
49+
50+ } err_tests [] = {
51+ { "test/plg_cfg_mqtt_err_01.json" ,
52+ "No 'connections' array present" ,
53+ { cmocka_unit_test_setup_teardown (run_signal_expect_error ,
54+ mqtt_run_init ,
55+ mqtt_run_dtor ) } },
56+
57+ { "test/plg_cfg_mqtt_err_02.json" ,
58+ "Invalid MQTT connection type: STRING instead of JSON OBJECT" ,
59+ { cmocka_unit_test_setup_teardown (run_signal_expect_error ,
60+ mqtt_run_init ,
61+ mqtt_run_dtor ) } },
62+
63+ { "test/plg_cfg_mqtt_err_03.json" ,
64+ "MQTT connection name is missing" ,
65+ { cmocka_unit_test_setup_teardown (run_signal_expect_error ,
66+ mqtt_run_init ,
67+ mqtt_run_dtor ) } },
68+ { "test/plg_cfg_mqtt_err_04.json" ,
69+ "Invalid MQTT connection name type: NUMBER instead of STRING" ,
70+ { cmocka_unit_test_setup_teardown (run_signal_expect_error ,
71+ mqtt_run_init ,
72+ mqtt_run_dtor ) } },
73+
74+ { "test/plg_cfg_mqtt_err_05.json" ,
75+ "Invalid 'proc_thread_qsize' type: STRING instead of NUMBER" ,
76+ { cmocka_unit_test_setup_teardown (run_signal_expect_error ,
77+ mqtt_run_init ,
78+ mqtt_run_dtor ) } },
79+
80+ { "test/plg_cfg_mqtt_err_06.json" ,
81+ "Invalid 'bin_upload_path' type: NUMBER instead of STRING" ,
82+ { cmocka_unit_test_setup_teardown (run_signal_expect_error ,
83+ mqtt_run_init ,
84+ mqtt_run_dtor ) } },
85+
86+ { "test/plg_cfg_mqtt_err_07.json" ,
87+ "MQTT connection 'mqtt_local' already exists" ,
88+ { cmocka_unit_test_setup_teardown (run_signal_expect_error ,
89+ mqtt_run_init ,
90+ mqtt_run_dtor ) } },
91+
5092};
5193static char plg_cfg_fname [128 ];
5294
@@ -62,7 +104,7 @@ load_cfg(umplg_mngr_t *m)
62104 // load plugins configuration
63105 char * fname = plg_cfg_fname ;
64106 if (strlen (fname ) == 0 ) {
65- fname = plg_cfg_err_list [plg_cfg_id ];
107+ fname = err_tests [plg_cfg_id ]. cfg_file ;
66108 do_pause = true;
67109
68110 } else {
@@ -141,14 +183,14 @@ mqtt_run_dtor(void **state)
141183
142184// dummy connect, receive MQTT PUB message
143185static void
144- mqtt_test_connect (void * * state )
186+ test_broker_connection (void * * state )
145187{
146188 sleep (2 );
147189}
148190
149191// check for MQTT PUB message
150192static void
151- mqtt_test_01 (void * * state )
193+ test_mqtt_rx_signal_handler (void * * state )
152194{
153195 // get pm
154196 test_t * data = * state ;
@@ -169,7 +211,7 @@ mqtt_test_01(void **state)
169211
170212
171213static void
172- mqtt_test_02 (void * * state )
214+ test_mqtt_publish_from_lua_via_generic_interface (void * * state )
173215{
174216 // get pm
175217 test_t * data = * state ;
@@ -196,7 +238,7 @@ mqtt_test_02(void **state)
196238}
197239
198240static void
199- mqtt_test_03 (void * * state )
241+ test_mqtt_publish_from_lua_via_submodule_methods (void * * state )
200242{
201243 // get pm
202244 test_t * data = * state ;
@@ -226,7 +268,7 @@ mqtt_test_03(void **state)
226268}
227269
228270static void
229- mqtt_test_04 (void * * state )
271+ test_mqtt_binary_file_upload (void * * state )
230272{
231273 // get pm
232274 test_t * data = * state ;
@@ -298,7 +340,7 @@ mqtt_test_04(void **state)
298340}
299341
300342static void
301- mqtt_test_cfg_01 (void * * state )
343+ run_signal_expect_error (void * * state )
302344{
303345 // get pm
304346 test_t * data = * state ;
@@ -325,44 +367,27 @@ mqtt_test_cfg_01(void **state)
325367int
326368main (int argc , char * * argv )
327369{
328- const struct CMUnitTest tests [] = { cmocka_unit_test (mqtt_test_connect ),
329- cmocka_unit_test (mqtt_test_01 ),
330- cmocka_unit_test (mqtt_test_02 ),
331- cmocka_unit_test (mqtt_test_03 ),
332- cmocka_unit_test (mqtt_test_04 ) };
333-
334- const struct CMUnitTest tests_cfg [] = {
335- cmocka_unit_test_setup_teardown (mqtt_test_cfg_01 ,
336- mqtt_run_init ,
337- mqtt_run_dtor ),
338- cmocka_unit_test_setup_teardown (mqtt_test_cfg_01 ,
339- mqtt_run_init ,
340- mqtt_run_dtor ),
341- cmocka_unit_test_setup_teardown (mqtt_test_cfg_01 ,
342- mqtt_run_init ,
343- mqtt_run_dtor ),
344- cmocka_unit_test_setup_teardown (mqtt_test_cfg_01 ,
345- mqtt_run_init ,
346- mqtt_run_dtor ),
347- cmocka_unit_test_setup_teardown (mqtt_test_cfg_01 ,
348- mqtt_run_init ,
349- mqtt_run_dtor ),
350- cmocka_unit_test_setup_teardown (mqtt_test_cfg_01 ,
351- mqtt_run_init ,
352- mqtt_run_dtor ),
353- cmocka_unit_test_setup_teardown (mqtt_test_cfg_01 ,
354- mqtt_run_init ,
355- mqtt_run_dtor ),
356-
370+ const struct CMUnitTest tests [] = {
371+ cmocka_unit_test (test_broker_connection ),
372+ cmocka_unit_test (test_mqtt_rx_signal_handler ),
373+ cmocka_unit_test (test_mqtt_publish_from_lua_via_generic_interface ),
374+ cmocka_unit_test (test_mqtt_publish_from_lua_via_submodule_methods ),
375+ cmocka_unit_test (test_mqtt_binary_file_upload )
357376 };
358377
359378 // group 01
360379 strcpy (plg_cfg_fname , "test/plg_cfg_mqtt.json" );
361380 int r = cmocka_run_group_tests (tests , mqtt_run_init , mqtt_run_dtor );
362- if (r == 0 ) {
363- // cfg loading, group 02
364- plg_cfg_fname [0 ] = '\0' ;
365- r += cmocka_run_group_tests (tests_cfg , NULL , NULL );
381+ if (0 == 0 ) {
382+
383+ for (int i = 0 ; i < 7 ; i ++ ) {
384+ plg_cfg_fname [0 ] = '\0' ;
385+ r +=
386+ cmocka_run_group_tests_name (err_tests [i ].cfg_error_msg ,
387+ err_tests [i ].tests ,
388+ NULL ,
389+ NULL );
390+ }
366391 }
367392 return r ;
368393
0 commit comments