Skip to content

Commit 85d0c26

Browse files
committed
feat(tests): add details and increase granularity
1 parent 9181743 commit 85d0c26

File tree

6 files changed

+1057
-231
lines changed

6 files changed

+1057
-231
lines changed

test/check_mqtt.c

Lines changed: 73 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -35,18 +35,60 @@
3535
void umlua_shutdown();
3636
int umlua_init(umplg_mngr_t *pm);
3737
void 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
4043
static int plg_cfg_id = 0;
4144
static 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
};
5193
static 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
143185
static 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
150192
static 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

171213
static 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

198240
static 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

228270
static 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

300342
static 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)
325367
int
326368
main(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

Comments
 (0)