diff --git a/lib/isccfg/tests/Kyuafile b/lib/isccfg/tests/Kyuafile index 342d25f491..dc14aace41 100644 --- a/lib/isccfg/tests/Kyuafile +++ b/lib/isccfg/tests/Kyuafile @@ -1,4 +1,4 @@ syntax(2) test_suite('bind9') -atf_test_program{name='parser_test'} +tap_test_program{name='parser_test'} diff --git a/lib/isccfg/tests/Makefile.in b/lib/isccfg/tests/Makefile.in index 78506208b1..9022f94504 100644 --- a/lib/isccfg/tests/Makefile.in +++ b/lib/isccfg/tests/Makefile.in @@ -27,10 +27,8 @@ DNSDEPLIBS = ../../dns/libdns.@A@ ISCCFGLIBS = ../libisccfg.@A@ ISCCFGDEPLIBS = ../libisccfg.@A@ -LIBS = @LIBS@ @ATFLIBS@ - -CMOCKA_CFLAGS = @CMOCKA_CFLAGS@ -CMOCKA_LIBS = @CMOCKA_LIBS@ +CFLAGS = @CFLAGS@ @CMOCKA_CFLAGS@ +LIBS = @LIBS@ @CMOCKA_LIBS@ OBJS = SRCS = parser_test.c @@ -41,9 +39,9 @@ TARGETS = parser_test@EXEEXT@ @BIND9_MAKE_RULES@ parser_test@EXEEXT@: parser_test.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS} ${ISCCFGDEPLIBS} - ${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ \ - parser_test.@O@ ${ISCCFGLIBS} ${DNSLIBS} \ - ${ISCLIBS} ${LIBS} + ${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} \ + ${LDFLAGS} -o $@ parser_test.@O@ \ + ${ISCCFGLIBS} ${DNSLIBS} ${ISCLIBS} ${LIBS} unit:: sh ${top_builddir}/unit/unittest.sh diff --git a/lib/isccfg/tests/parser_test.c b/lib/isccfg/tests/parser_test.c index 606bbeb26d..9cadf19a46 100644 --- a/lib/isccfg/tests/parser_test.c +++ b/lib/isccfg/tests/parser_test.c @@ -11,13 +11,20 @@ #include -#include +#if HAVE_CMOCKA + +#include +#include +#include #include #include #include #include +#define UNIT_TESTING +#include + #include #include #include @@ -52,10 +59,12 @@ static isc_logcategory_t categories[] = { static void cleanup() { - if (lctx != NULL) + if (lctx != NULL) { isc_log_destroy(&lctx); - if (mctx != NULL) + } + if (mctx != NULL) { isc_mem_destroy(&mctx); + } } static isc_result_t @@ -89,18 +98,16 @@ setup() { return (result); } -ATF_TC(parse_buffer); -ATF_TC_HEAD(parse_buffer, tc) { - atf_tc_set_md_var(tc, "descr", "cfg_parse_buffer"); -} -ATF_TC_BODY(parse_buffer, tc) { +/* test cfg_parse_buffer() */ +static void +parse_buffer_test(void **state) { isc_result_t result; unsigned char text[] = "options\n{\nrecursion yes;\n};\n"; isc_buffer_t buf1, buf2; cfg_parser_t *p1 = NULL, *p2 = NULL; cfg_obj_t *c1 = NULL, *c2 = NULL; - UNUSED(tc); + UNUSED(state); setup(); @@ -109,24 +116,24 @@ ATF_TC_BODY(parse_buffer, tc) { /* Parse with default line numbering */ result = cfg_parser_create(mctx, lctx, &p1); - ATF_REQUIRE_EQ(result, ISC_R_SUCCESS); + assert_int_equal(result, ISC_R_SUCCESS); result = cfg_parse_buffer3(p1, &buf1, "text1", 0, &cfg_type_namedconf, &c1); - ATF_REQUIRE_EQ(result, ISC_R_SUCCESS); - ATF_REQUIRE_EQ(p1->line, 5); + assert_int_equal(result, ISC_R_SUCCESS); + assert_int_equal(p1->line, 5); isc_buffer_init(&buf2, &text[0], sizeof(text) - 1); isc_buffer_add(&buf2, sizeof(text) - 1); /* Parse with changed line number */ result = cfg_parser_create(mctx, lctx, &p2); - ATF_REQUIRE_EQ(result, ISC_R_SUCCESS); + assert_int_equal(result, ISC_R_SUCCESS); result = cfg_parse_buffer3(p2, &buf2, "text2", 100, &cfg_type_namedconf, &c2); - ATF_REQUIRE_EQ(result, ISC_R_SUCCESS); - ATF_REQUIRE_EQ(p2->line, 104); + assert_int_equal(result, ISC_R_SUCCESS); + assert_int_equal(p2->line, 104); cfg_obj_destroy(p1, &c1); cfg_obj_destroy(p2, &c2); @@ -137,56 +144,65 @@ ATF_TC_BODY(parse_buffer, tc) { cleanup(); } -ATF_TC(cfg_map_firstclause); -ATF_TC_HEAD(cfg_map_firstclause, tc) { - atf_tc_set_md_var(tc, "descr", "cfg_map_firstclause"); -} -ATF_TC_BODY(cfg_map_firstclause, tc) { +/* test cfg_map_firstclause() */ +static void +cfg_map_firstclause_test(void **state) { const char *name = NULL; const void *clauses = NULL; unsigned int idx; - UNUSED(tc); + UNUSED(state); name = cfg_map_firstclause(&cfg_type_zoneopts, &clauses, &idx); - ATF_CHECK(name != NULL); - ATF_CHECK(clauses != NULL); - ATF_CHECK_EQ(idx, 0); + assert_non_null(name); + assert_non_null(clauses); + assert_int_equal(idx, 0); } -ATF_TC(cfg_map_nextclause); -ATF_TC_HEAD(cfg_map_nextclause, tc) { - atf_tc_set_md_var(tc, "descr", "cfg_map_firstclause"); -} -ATF_TC_BODY(cfg_map_nextclause, tc) { +/* test cfg_map_nextclause() */ +static void +cfg_map_nextclause_test(void **state) { const char *name = NULL; const void *clauses = NULL; unsigned int idx; - UNUSED(tc); + UNUSED(state); name = cfg_map_firstclause(&cfg_type_zoneopts, &clauses, &idx); - ATF_REQUIRE(name != NULL); - ATF_REQUIRE(clauses != NULL); - ATF_REQUIRE_EQ(idx, ISC_R_SUCCESS); + assert_non_null(name); + assert_non_null(clauses); + assert_int_equal(idx, ISC_R_SUCCESS); do { name = cfg_map_nextclause(&cfg_type_zoneopts, &clauses, &idx); if (name != NULL) { - ATF_CHECK(clauses != NULL); + assert_non_null(clauses); } else { - ATF_CHECK_EQ(clauses, NULL); - ATF_CHECK_EQ(idx, 0); + assert_null(clauses); + assert_int_equal(idx, 0); } } while (name != NULL); } -/* - * Main - */ -ATF_TP_ADD_TCS(tp) { - ATF_TP_ADD_TC(tp, parse_buffer); - ATF_TP_ADD_TC(tp, cfg_map_firstclause); - ATF_TP_ADD_TC(tp, cfg_map_nextclause); - return (atf_no_error()); +int +main(void) { + const struct CMUnitTest tests[] = { + cmocka_unit_test(parse_buffer_test), + cmocka_unit_test(cfg_map_firstclause_test), + cmocka_unit_test(cfg_map_nextclause_test), + }; + + return (cmocka_run_group_tests(tests, NULL, NULL)); } + +#else /* HAVE_CMOCKA */ + +#include + +int +main(void) { + printf("1..0 # Skipped: cmocka not available\n"); + return (0); +} + +#endif