diff --git a/client/config_init.c b/client/config_init.c index a6f6a804..41c036eb 100755 --- a/client/config_init.c +++ b/client/config_init.c @@ -2546,12 +2546,13 @@ usage(void) #ifdef HAVE_C_UNIT_TESTS -static int ut_init_test_suite(void) +DECLARE_TEST_SUITE_INIT(config_init) { + log_set_verbosity(LOG_VERBOSITY_ERROR); return 0; } -static int ut_clean_test_suite(void) +DECLARE_TEST_SUITE_CLEANUP(config_init) { return 0; } @@ -2559,43 +2560,46 @@ static int ut_clean_test_suite(void) DECLARE_UTEST(critical_var, "Check critcial vars") { CU_ASSERT(var_is_critical(FWKNOP_CLI_ARG_KEY_RIJNDAEL) == 1); - CU_ASSERT(var_is_critical(FWKNOP_CLI_ARG_WGET_CMD) == 0); + CU_ASSERT(var_is_critical(FWKNOP_CLI_ARG_WGET_CMD) == 0); } DECLARE_UTEST(check_var_bitmask, "Check var_bitmask functions") { - fko_var_bitmask_t var_bitmask; + fko_var_bitmask_t var_bitmask; - memset(&var_bitmask, 0x00, sizeof(fko_var_bitmask_t)); - - add_var_to_bitmask(FWKNOP_CLI_FIRST_ARG, &var_bitmask); - CU_ASSERT(bitmask_has_var(FWKNOP_CLI_FIRST_ARG, &var_bitmask) == 1); - CU_ASSERT(var_bitmask.dw[0] == 1); - remove_var_from_bitmask(FWKNOP_CLI_FIRST_ARG, &var_bitmask); - CU_ASSERT(bitmask_has_var(FWKNOP_CLI_FIRST_ARG, &var_bitmask) == 0); - CU_ASSERT(var_bitmask.dw[0] == 0); - - add_var_to_bitmask(FWKNOP_CLI_ARG_KEY_RIJNDAEL, &var_bitmask); - CU_ASSERT(bitmask_has_var(FWKNOP_CLI_ARG_KEY_RIJNDAEL, &var_bitmask) == 1); - remove_var_from_bitmask(FWKNOP_CLI_ARG_KEY_RIJNDAEL, &var_bitmask); - CU_ASSERT(bitmask_has_var(FWKNOP_CLI_ARG_KEY_RIJNDAEL, &var_bitmask) == 0); - - add_var_to_bitmask(FWKNOP_CLI_LAST_ARG, &var_bitmask); - CU_ASSERT(bitmask_has_var(FWKNOP_CLI_LAST_ARG, &var_bitmask) == 1); - remove_var_from_bitmask(FWKNOP_CLI_LAST_ARG, &var_bitmask); - CU_ASSERT(bitmask_has_var(FWKNOP_CLI_LAST_ARG, &var_bitmask) == 0); - - add_var_to_bitmask(FWKNOP_CLI_LAST_ARG+32, &var_bitmask); - CU_ASSERT(bitmask_has_var(FWKNOP_CLI_LAST_ARG+32, &var_bitmask) == 0); + memset(&var_bitmask, 0x00, sizeof(fko_var_bitmask_t)); + + add_var_to_bitmask(FWKNOP_CLI_FIRST_ARG, &var_bitmask); + CU_ASSERT(bitmask_has_var(FWKNOP_CLI_FIRST_ARG, &var_bitmask) == 1); + CU_ASSERT(var_bitmask.dw[0] == 1); + remove_var_from_bitmask(FWKNOP_CLI_FIRST_ARG, &var_bitmask); + CU_ASSERT(bitmask_has_var(FWKNOP_CLI_FIRST_ARG, &var_bitmask) == 0); + CU_ASSERT(var_bitmask.dw[0] == 0); + + add_var_to_bitmask(FWKNOP_CLI_ARG_KEY_RIJNDAEL, &var_bitmask); + CU_ASSERT(bitmask_has_var(FWKNOP_CLI_ARG_KEY_RIJNDAEL, &var_bitmask) == 1); + remove_var_from_bitmask(FWKNOP_CLI_ARG_KEY_RIJNDAEL, &var_bitmask); + CU_ASSERT(bitmask_has_var(FWKNOP_CLI_ARG_KEY_RIJNDAEL, &var_bitmask) == 0); + + add_var_to_bitmask(FWKNOP_CLI_LAST_ARG, &var_bitmask); + CU_ASSERT(bitmask_has_var(FWKNOP_CLI_LAST_ARG, &var_bitmask) == 1); + remove_var_from_bitmask(FWKNOP_CLI_LAST_ARG, &var_bitmask); + CU_ASSERT(bitmask_has_var(FWKNOP_CLI_LAST_ARG, &var_bitmask) == 0); + + add_var_to_bitmask(FWKNOP_CLI_LAST_ARG+32, &var_bitmask); + CU_ASSERT(bitmask_has_var(FWKNOP_CLI_LAST_ARG+32, &var_bitmask) == 0); + + add_var_to_bitmask(FWKNOP_CLI_LAST_ARG+34, &var_bitmask); + CU_ASSERT(bitmask_has_var(FWKNOP_CLI_LAST_ARG+34, &var_bitmask) == 0); } int register_ts_config_init(void) { - ts_init(&TEST_SUITE(config_init), TEST_SUITE_DESCR(config_init)); - ts_add_utest(&TEST_SUITE(config_init), UTEST_FCT(critical_var), UTEST_DESCR(critical_var)); - ts_add_utest(&TEST_SUITE(config_init), UTEST_FCT(check_var_bitmask), UTEST_DESCR(check_var_bitmask)); - - return register_ts(&TEST_SUITE(config_init)); + ts_init(&TEST_SUITE(config_init), TEST_SUITE_DESCR(config_init), TEST_SUITE_INIT(config_init), TEST_SUITE_CLEANUP(config_init)); + ts_add_utest(&TEST_SUITE(config_init), UTEST_FCT(critical_var), UTEST_DESCR(critical_var)); + ts_add_utest(&TEST_SUITE(config_init), UTEST_FCT(check_var_bitmask), UTEST_DESCR(check_var_bitmask)); + + return register_ts(&TEST_SUITE(config_init)); } #endif /* HAVE_C_UNIT_TESTS */ diff --git a/common/cunit_common.h b/common/cunit_common.h index 63057605..d3cb9460 100755 --- a/common/cunit_common.h +++ b/common/cunit_common.h @@ -1,31 +1,37 @@ #ifndef CUNIT_COMMON_H #define CUNIT_COMMON_H - typedef struct c_unit_test - { - char description[128]; - void (*func)(void); - } c_unit_test_t; - - typedef struct c_unit_test_suite - { - char description[128]; - c_unit_test_t test_array[12]; - int nb_c_unit_test; - } c_unit_test_suite_t; + typedef struct c_unit_test + { + char description[128]; + void (*func)(void); + } c_unit_test_t; - #define UTEST_DESCR(name) ut_descr_##name - #define UTEST_FCT(name) ut_##name - #define TEST_SUITE(name) ts_##name - #define TEST_SUITE_DESCR(name) ts_descr_##name - - #define DECLARE_TEST_SUITE(name, description) static const char ts_descr_##name[] = description; \ - static c_unit_test_suite_t ts_##name; - #define DECLARE_UTEST(name, description) static const char ut_descr_##name[] = description; \ - static void ut_##name(void) - -void ts_init(c_unit_test_suite_t* ts, const char* description); + typedef struct c_unit_test_suite + { + char description[128]; + int (*init_func)(void); + int (*cleanup_func)(void); + c_unit_test_t test_array[12]; + int nb_c_unit_test; + } c_unit_test_suite_t; + + #define UTEST_DESCR(name) ut_descr_##name + #define UTEST_FCT(name) ut_##name + #define TEST_SUITE(name) ts_##name + #define TEST_SUITE_DESCR(name) ts_descr_##name + #define TEST_SUITE_INIT(name) _ts_init_##name + #define TEST_SUITE_CLEANUP(name) _ts_cleanup_##name + + #define DECLARE_TEST_SUITE(name, description) static const char ts_descr_##name[] = description; \ + static c_unit_test_suite_t ts_##name; + #define DECLARE_TEST_SUITE_INIT(name) int _ts_init_##name(void) + #define DECLARE_TEST_SUITE_CLEANUP(name) int _ts_cleanup_##name(void) + #define DECLARE_UTEST(name, description) static const char ut_descr_##name[] = description; \ + static void ut_##name(void) + +void ts_init(c_unit_test_suite_t* ts, const char* description, int (*init)(void), int (*cleanup)(void)); void ts_add_utest(c_unit_test_suite_t* ts, void (*utest_func)(void), const char* utest_description); int register_ts(c_unit_test_suite_t *ts); - + #endif // CUNIT_COMMON_H \ No newline at end of file diff --git a/lib/cunit_common.c b/lib/cunit_common.c index cd118b04..5aeb355c 100755 --- a/lib/cunit_common.c +++ b/lib/cunit_common.c @@ -3,20 +3,22 @@ #include "stdio.h" #include "CUnit/Basic.h" -void ts_init(c_unit_test_suite_t* ts, const char* description) +void ts_init(c_unit_test_suite_t* ts, const char* description, int (*init)(void), int (*cleanup)(void)) { - memset(ts, 0x00, sizeof(c_unit_test_suite_t)); - strcpy(ts->description, description); + memset(ts, 0x00, sizeof(c_unit_test_suite_t)); + strcpy(ts->description, description); + ts->init_func = init; + ts->cleanup_func = cleanup; } void ts_add_utest(c_unit_test_suite_t* ts, void (*utest_func)(void), const char* utest_description) { - c_unit_test_t* utest = &(ts->test_array[ts->nb_c_unit_test]); - - utest->func = utest_func; - strcpy(utest->description, utest_description); - - (ts->nb_c_unit_test)++; + c_unit_test_t* utest = &(ts->test_array[ts->nb_c_unit_test]); + + utest->func = utest_func; + strcpy(utest->description, utest_description); + + (ts->nb_c_unit_test)++; } int register_ts(c_unit_test_suite_t *ts) @@ -24,7 +26,7 @@ int register_ts(c_unit_test_suite_t *ts) CU_pSuite pSuite = NULL; int ix_utest; - pSuite = CU_add_suite(ts->description, NULL, NULL); + pSuite = CU_add_suite(ts->description, ts->init_func, ts->cleanup_func); if (NULL == pSuite) { CU_cleanup_registry(); return CU_get_error(); diff --git a/server/access.c b/server/access.c index 318e8eb4..5e7b492f 100755 --- a/server/access.c +++ b/server/access.c @@ -1950,29 +1950,29 @@ dump_access_list(const fko_srv_options_t *opts) DECLARE_UTEST(compare_port_list, "check compare_port_list function") { acc_port_list_t *in1_pl = NULL; - acc_port_list_t *in2_pl = NULL; + acc_port_list_t *in2_pl = NULL; acc_port_list_t *acc_pl = NULL; - - /* Match any test */ - free_acc_port_list(in1_pl); - free_acc_port_list(acc_pl); - add_port_list_ent(&in1_pl, "udp/6002"); - add_port_list_ent(&in2_pl, "udp/6002, udp/6003"); - add_port_list_ent(&acc_pl, "udp/6002, udp/6003"); - CU_ASSERT(compare_port_list(in1_pl, acc_pl, 1) == 1); /* Only one match is needed from access port list - 1 */ - CU_ASSERT(compare_port_list(in2_pl, acc_pl, 1) == 1); /* Only match is needed from access port list - 2 */ - CU_ASSERT(compare_port_list(in1_pl, acc_pl, 0) == 1); /* All ports must match access port list - 1 */ - CU_ASSERT(compare_port_list(in2_pl, acc_pl, 0) == 1); /* All ports must match access port list - 2 */ - CU_ASSERT(compare_port_list(acc_pl, in1_pl, 0) == 0); /* All ports must match in1 port list - 1 */ - CU_ASSERT(compare_port_list(acc_pl, in2_pl, 0) == 1); /* All ports must match in2 port list - 2 */ + + /* Match any test */ + free_acc_port_list(in1_pl); + free_acc_port_list(acc_pl); + add_port_list_ent(&in1_pl, "udp/6002"); + add_port_list_ent(&in2_pl, "udp/6002, udp/6003"); + add_port_list_ent(&acc_pl, "udp/6002, udp/6003"); + CU_ASSERT(compare_port_list(in1_pl, acc_pl, 1) == 1); /* Only one match is needed from access port list - 1 */ + CU_ASSERT(compare_port_list(in2_pl, acc_pl, 1) == 1); /* Only match is needed from access port list - 2 */ + CU_ASSERT(compare_port_list(in1_pl, acc_pl, 0) == 1); /* All ports must match access port list - 1 */ + CU_ASSERT(compare_port_list(in2_pl, acc_pl, 0) == 1); /* All ports must match access port list - 2 */ + CU_ASSERT(compare_port_list(acc_pl, in1_pl, 0) == 0); /* All ports must match in1 port list - 1 */ + CU_ASSERT(compare_port_list(acc_pl, in2_pl, 0) == 1); /* All ports must match in2 port list - 2 */ } int register_ts_access(void) { - ts_init(&TEST_SUITE(access), TEST_SUITE_DESCR(access)); - ts_add_utest(&TEST_SUITE(access), UTEST_FCT(compare_port_list), UTEST_DESCR(compare_port_list)); - - return register_ts(&TEST_SUITE(access)); + ts_init(&TEST_SUITE(access), TEST_SUITE_DESCR(access), NULL, NULL); + ts_add_utest(&TEST_SUITE(access), UTEST_FCT(compare_port_list), UTEST_DESCR(compare_port_list)); + + return register_ts(&TEST_SUITE(access)); } #endif /* HAVE_C_UNIT_TESTS */