From: Evan Hunt Date: Sat, 10 Nov 2018 01:40:31 +0000 (-0800) Subject: convert result tests to use CMocka instead of ATF X-Git-Tag: v9.13.4~39^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=471110933a08b6370d1f137d9b3dd4580e905046;p=thirdparty%2Fbind9.git convert result tests to use CMocka instead of ATF --- diff --git a/lib/dns/tests/Kyuafile b/lib/dns/tests/Kyuafile index 377933d980b..db755f0b329 100644 --- a/lib/dns/tests/Kyuafile +++ b/lib/dns/tests/Kyuafile @@ -23,6 +23,7 @@ atf_test_program{name='rdata_test'} atf_test_program{name='rdataset_test'} atf_test_program{name='rdatasetstats_test'} atf_test_program{name='resolver_test'} +tap_test_program{name='result_test'} atf_test_program{name='rsa_test'} atf_test_program{name='sigs_test'} atf_test_program{name='time_test'} diff --git a/lib/dns/tests/Makefile.in b/lib/dns/tests/Makefile.in index 011ecca03fd..03f3779ef2a 100644 --- a/lib/dns/tests/Makefile.in +++ b/lib/dns/tests/Makefile.in @@ -220,11 +220,10 @@ resolver_test@EXEEXT@: resolver_test.@O@ dnstest.@O@ \ resolver_test.@O@ dnstest.@O@ ${DNSLIBS} \ ${ISCLIBS} ${LIBS} -result_test@EXEEXT@: result_test.@O@ \ - ${ISCDEPLIBS} ${DNSDEPLIBS} - ${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ \ - result_test.@O@ ${DNSLIBS} \ - ${ISCLIBS} ${LIBS} +result_test@EXEEXT@: result_test.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS} + ${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${CMOCKA_CFLAGS} \ + ${LDFLAGS} -o $@ result_test.@O@ \ + ${DNSLIBS} ${ISCLIBS} ${LIBS} ${CMOCKA_LIBS} rsa_test@EXEEXT@: rsa_test.@O@ dnstest.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS} ${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ \ diff --git a/lib/dns/tests/result_test.c b/lib/dns/tests/result_test.c index 6fbb451ed52..14d583f2ec5 100644 --- a/lib/dns/tests/result_test.c +++ b/lib/dns/tests/result_test.c @@ -9,11 +9,17 @@ * information regarding copyright ownership. */ -/* ! \file */ - #include -#include +#if HAVE_CMOCKA + +#include +#include +#include +#include + +#define UNIT_TESTING +#include #include #include @@ -22,103 +28,106 @@ #include #include -ATF_TC(ids); -ATF_TC_HEAD(ids, tc) { - atf_tc_set_md_var(tc, "descr", "check ids array is populated"); -} -ATF_TC_BODY(ids, tc) { +/* + * Check ids array is populated. + */ +static void +ids(void **state) { const char *str; isc_result_t result; - UNUSED(tc); + UNUSED(state); dns_result_register(); dst_result_register(); for (result = ISC_RESULTCLASS_DNS; result < (ISC_RESULTCLASS_DNS + DNS_R_NRESULTS); - result++) { + result++) + { str = isc_result_toid(result); - ATF_REQUIRE_MSG(str != NULL, - "isc_result_toid(%u) returned NULL", result); - ATF_CHECK_MSG(strcmp(str, - "(result code text not available)") != 0, - "isc_result_toid(%u) returned %s", result, str); + assert_non_null(str); + assert_string_not_equal(str, + "(result code text not available)"); str = isc_result_totext(result); - ATF_REQUIRE_MSG(str != NULL, - "isc_result_totext(%u) returned NULL", result); - ATF_CHECK_MSG(strcmp(str, - "(result code text not available)") != 0, - "isc_result_totext(%u) returned %s", result, str); + assert_non_null(str); + assert_string_not_equal(str, + "(result code text not available)"); } str = isc_result_toid(result); - ATF_REQUIRE(str != NULL); - ATF_CHECK_STREQ(str, "(result code text not available)"); + assert_non_null(str); + assert_string_equal(str, "(result code text not available)"); str = isc_result_totext(result); - ATF_REQUIRE(str != NULL); - ATF_CHECK_STREQ(str, "(result code text not available)"); + assert_non_null(str); + assert_string_equal(str, "(result code text not available)"); for (result = ISC_RESULTCLASS_DST; result < (ISC_RESULTCLASS_DST + DST_R_NRESULTS); - result++) { + result++) + { str = isc_result_toid(result); - ATF_REQUIRE_MSG(str != NULL, - "isc_result_toid(%u) returned NULL", result); - ATF_CHECK_MSG(strcmp(str, - "(result code text not available)") != 0, - "isc_result_toid(%u) returned %s", result, str); + assert_non_null(str); + assert_string_not_equal(str, + "(result code text not available)"); str = isc_result_totext(result); - ATF_REQUIRE_MSG(str != NULL, - "isc_result_totext(%u) returned NULL", result); - ATF_CHECK_MSG(strcmp(str, - "(result code text not available)") != 0, - "isc_result_totext(%u) returned %s", result, str); + assert_non_null(str); + assert_string_not_equal(str, + "(result code text not available)"); } str = isc_result_toid(result); - ATF_REQUIRE(str != NULL); - ATF_CHECK_STREQ(str, "(result code text not available)"); + assert_non_null(str); + assert_string_equal(str, "(result code text not available)"); str = isc_result_totext(result); - ATF_REQUIRE(str != NULL); - ATF_CHECK_STREQ(str, "(result code text not available)"); + assert_non_null(str); + assert_string_equal(str, "(result code text not available)"); for (result = ISC_RESULTCLASS_DNSRCODE; result < (ISC_RESULTCLASS_DNSRCODE + DNS_R_NRCODERESULTS); - result++) { + result++) + { str = isc_result_toid(result); - ATF_REQUIRE_MSG(str != NULL, - "isc_result_toid(%u) returned NULL", result); - ATF_CHECK_MSG(strcmp(str, - "(result code text not available)") != 0, - "isc_result_toid(%u) returned %s", result, str); + assert_non_null(str); + assert_string_not_equal(str, + "(result code text not available)"); str = isc_result_totext(result); - ATF_REQUIRE_MSG(str != NULL, - "isc_result_totext(%u) returned NULL", result); - ATF_CHECK_MSG(strcmp(str, - "(result code text not available)") != 0, - "isc_result_totext(%u) returned %s", result, str); + assert_non_null(str); + assert_string_not_equal(str, + "(result code text not available)"); } str = isc_result_toid(result); - ATF_REQUIRE(str != NULL); - ATF_CHECK_STREQ(str, "(result code text not available)"); + assert_non_null(str); + assert_string_equal(str, "(result code text not available)"); str = isc_result_totext(result); - ATF_REQUIRE(str != NULL); - ATF_CHECK_STREQ(str, "(result code text not available)"); + assert_non_null(str); + assert_string_equal(str, "(result code text not available)"); } -/* - * Main - */ -ATF_TP_ADD_TCS(tp) { - ATF_TP_ADD_TC(tp, ids); +int +main(void) { + const struct CMUnitTest tests[] = { + cmocka_unit_test(ids), + }; + + return (cmocka_run_group_tests(tests, NULL, NULL)); +} - return (atf_no_error()); +#else /* HAVE_CMOCKA */ + +#include + +int +main(void) { + printf("1..0 # Skipped: cmocka not available\n"); + return (0); } + +#endif diff --git a/lib/isc/tests/Kyuafile b/lib/isc/tests/Kyuafile index 26785b56696..c4c45545bdf 100644 --- a/lib/isc/tests/Kyuafile +++ b/lib/isc/tests/Kyuafile @@ -19,7 +19,7 @@ atf_test_program{name='pool_test'} atf_test_program{name='queue_test'} atf_test_program{name='radix_test'} atf_test_program{name='regex_test'} -atf_test_program{name='result_test'} +tap_test_program{name='result_test'} atf_test_program{name='safe_test'} atf_test_program{name='sockaddr_test'} atf_test_program{name='socket_test'} diff --git a/lib/isc/tests/Makefile.in b/lib/isc/tests/Makefile.in index d5277dfdab0..51db465da38 100644 --- a/lib/isc/tests/Makefile.in +++ b/lib/isc/tests/Makefile.in @@ -138,8 +138,9 @@ regex_test@EXEEXT@: regex_test.@O@ ${ISCDEPLIBS} regex_test.@O@ ${ISCLIBS} ${LIBS} result_test@EXEEXT@: result_test.@O@ ${ISCDEPLIBS} - ${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ \ - result_test.@O@ ${ISCLIBS} ${LIBS} + ${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${CMOCKA_CFLAGS} \ + ${LDFLAGS} -o $@ result_test.@O@ \ + ${ISCLIBS} ${LIBS} ${CMOCKA_LIBS} safe_test@EXEEXT@: safe_test.@O@ ${ISCDEPLIBS} ${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ \ diff --git a/lib/isc/tests/result_test.c b/lib/isc/tests/result_test.c index 1e53f63a2b2..38fe12491f4 100644 --- a/lib/isc/tests/result_test.c +++ b/lib/isc/tests/result_test.c @@ -11,110 +11,122 @@ #include -#include +#if HAVE_CMOCKA +#include +#include +#include #include +#define UNIT_TESTING +#include + #include +#include + #include -ATF_TC(tables); -ATF_TC_HEAD(tables, tc) { - atf_tc_set_md_var(tc, "descr", "check tables are populated"); +/* convert result to identifier string */ +static void +isc_result_toid_test(void **state) { + const char *id; + + UNUSED(state); + + id = isc_result_toid(ISC_R_SUCCESS); + assert_string_equal("ISC_R_SUCCESS", id); + + id = isc_result_toid(ISC_R_FAILURE); + assert_string_equal("ISC_R_FAILURE", id); } -ATF_TC_BODY(tables, tc) { + +/* convert result to description string */ +static void +isc_result_totext_test(void **state) { + const char *str; + + UNUSED(state); + + str = isc_result_totext(ISC_R_SUCCESS); + assert_string_equal("success", str); + + str = isc_result_totext(ISC_R_FAILURE); + assert_string_equal("failure", str); +} + +/* check tables are populated */ +static void +tables(void **state) { const char *str; isc_result_t result; + UNUSED(state); + pk11_result_register(); for (result = 0; result < ISC_R_NRESULTS; result++) { str = isc_result_toid(result); - ATF_REQUIRE_MSG(str != NULL, - "isc_result_toid(%u) returned NULL", result); - ATF_CHECK_MSG(strcmp(str, - "(result code text not available)") != 0, - "isc_result_toid(%u) returned %s", result, str); + assert_non_null(str); + assert_string_not_equal(str, + "(result code text not available)"); str = isc_result_totext(result); - ATF_REQUIRE_MSG(str != NULL, - "isc_result_totext(%u) returned NULL", result); - ATF_CHECK_MSG(strcmp(str, - "(result code text not available)") != 0, - "isc_result_totext(%u) returned %s", result, str); + assert_non_null(str); + assert_string_not_equal(str, + "(result code text not available)"); } str = isc_result_toid(result); - ATF_REQUIRE(str != NULL); - ATF_CHECK_STREQ(str, "(result code text not available)"); + assert_non_null(str); + assert_string_equal(str, "(result code text not available)"); str = isc_result_totext(result); - ATF_REQUIRE(str != NULL); - ATF_CHECK_STREQ(str, "(result code text not available)"); + assert_non_null(str); + assert_string_equal(str, "(result code text not available)"); for (result = ISC_RESULTCLASS_PK11; result < (ISC_RESULTCLASS_PK11 + PK11_R_NRESULTS); result++) { str = isc_result_toid(result); - ATF_REQUIRE_MSG(str != NULL, - "isc_result_toid(%u) returned NULL", result); - ATF_CHECK_MSG(strcmp(str, - "(result code text not available)") != 0, - "isc_result_toid(%u) returned %s", result, str); + assert_non_null(str); + assert_string_not_equal(str, + "(result code text not available)"); str = isc_result_totext(result); - ATF_REQUIRE_MSG(str != NULL, - "isc_result_totext(%u) returned NULL", result); - ATF_CHECK_MSG(strcmp(str, - "(result code text not available)") != 0, - "isc_result_totext(%u) returned %s", result, str); + assert_non_null(str); + assert_string_not_equal(str, + "(result code text not available)"); } str = isc_result_toid(result); - ATF_REQUIRE(str != NULL); - ATF_CHECK_STREQ(str, "(result code text not available)"); + assert_non_null(str); + assert_string_equal(str, "(result code text not available)"); str = isc_result_totext(result); - ATF_REQUIRE(str != NULL); - ATF_CHECK_STREQ(str, "(result code text not available)"); -} - -ATF_TC(isc_result_toid); -ATF_TC_HEAD(isc_result_toid, tc) { - atf_tc_set_md_var(tc, "descr", "convert result to identifier string"); + assert_non_null(str); + assert_string_equal(str, "(result code text not available)"); } -ATF_TC_BODY(isc_result_toid, tc) { - const char *id; - id = isc_result_toid(ISC_R_SUCCESS); - ATF_REQUIRE_STREQ("ISC_R_SUCCESS", id); +int +main(void) { + const struct CMUnitTest tests[] = { + cmocka_unit_test(isc_result_toid_test), + cmocka_unit_test(isc_result_totext_test), + cmocka_unit_test(tables), + }; - id = isc_result_toid(ISC_R_FAILURE); - ATF_REQUIRE_STREQ("ISC_R_FAILURE", id); + return (cmocka_run_group_tests(tests, NULL, NULL)); } -ATF_TC(isc_result_totext); -ATF_TC_HEAD(isc_result_totext, tc) { - atf_tc_set_md_var(tc, "descr", "convert result to description string"); -} -ATF_TC_BODY(isc_result_totext, tc) { - const char *str; +#else /* HAVE_CMOCKA */ - str = isc_result_totext(ISC_R_SUCCESS); - ATF_REQUIRE_STREQ("success", str); +#include - str = isc_result_totext(ISC_R_FAILURE); - ATF_REQUIRE_STREQ("failure", str); +int +main(void) { + printf("1..0 # Skipped: cmocka not available\n"); + return (0); } -/* - * Main - */ -ATF_TP_ADD_TCS(tp) { - ATF_TP_ADD_TC(tp, isc_result_toid); - ATF_TP_ADD_TC(tp, isc_result_totext); - ATF_TP_ADD_TC(tp, tables); - - return (atf_no_error()); -} +#endif diff --git a/lib/isccc/tests/Kyuafile b/lib/isccc/tests/Kyuafile new file mode 100644 index 00000000000..ce23ab8fc34 --- /dev/null +++ b/lib/isccc/tests/Kyuafile @@ -0,0 +1,4 @@ +syntax(2) +test_suite('bind9') + +tap_test_program{name='result_test'} diff --git a/lib/isccc/tests/Makefile.in b/lib/isccc/tests/Makefile.in index 4023373724a..a57261a113a 100644 --- a/lib/isccc/tests/Makefile.in +++ b/lib/isccc/tests/Makefile.in @@ -39,11 +39,10 @@ TARGETS = result_test@EXEEXT@ @BIND9_MAKE_RULES@ -result_test@EXEEXT@: result_test.@O@ \ - ${ISCDEPLIBS} ${ISCCCDEPLIBS} - ${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ \ - result_test.@O@ ${ISCCCLIBS} \ - ${ISCLIBS} ${LIBS} +result_test@EXEEXT@: result_test.@O@ ${ISCDEPLIBS} ${ISCCCDEPLIBS} + ${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${CMOCKA_FLAGS} \ + ${LDFLAGS} -o $@ result_test.@O@ \ + ${ISCCCLIBS} ${ISCLIBS} ${LIBS} ${CMOCKA_LIBS} unit:: sh ${top_builddir}/unit/unittest.sh diff --git a/lib/isccc/tests/result_test.c b/lib/isccc/tests/result_test.c index 27f22286d31..5c81522869d 100644 --- a/lib/isccc/tests/result_test.c +++ b/lib/isccc/tests/result_test.c @@ -9,11 +9,17 @@ * information regarding copyright ownership. */ -/* ! \file */ - #include -#include +#if HAVE_CMOCKA + +#include +#include +#include +#include + +#define UNIT_TESTING +#include #include #include @@ -21,50 +27,59 @@ #include #include -ATF_TC(tables); -ATF_TC_HEAD(tables, tc) { - atf_tc_set_md_var(tc, "descr", "check tables are populated"); -} -ATF_TC_BODY(tables, tc) { +/* + * Check tables are populated. + */ +static void +tables(void **state) { const char *str; isc_result_t result; - UNUSED(tc); + UNUSED(state); isccc_result_register(); for (result = ISC_RESULTCLASS_ISCCC; result < (ISC_RESULTCLASS_ISCCC + ISCCC_R_NRESULTS); - result++) { + result++) + { str = isc_result_toid(result); - ATF_REQUIRE_MSG(str != NULL, - "isc_result_toid(%u) returned NULL", result); - ATF_CHECK_MSG(strcmp(str, - "(result code text not available)") != 0, - "isc_result_toid(%u) returned %s", result, str); + assert_non_null(str); + assert_string_not_equal(str, + "(result code text not available)"); str = isc_result_totext(result); - ATF_REQUIRE_MSG(str != NULL, - "isc_result_totext(%u) returned NULL", result); - ATF_CHECK_MSG(strcmp(str, - "(result code text not available)") != 0, - "isc_result_totext(%u) returned %s", result, str); + assert_non_null(str); + assert_string_not_equal(str, + "(result code text not available)"); } str = isc_result_toid(result); - ATF_REQUIRE(str != NULL); - ATF_CHECK_STREQ(str, "(result code text not available)"); + assert_non_null(str); + assert_string_equal(str, "(result code text not available)"); str = isc_result_totext(result); - ATF_REQUIRE(str != NULL); - ATF_CHECK_STREQ(str, "(result code text not available)"); + assert_non_null(str); + assert_string_equal(str, "(result code text not available)"); } -/* - * Main - */ -ATF_TP_ADD_TCS(tp) { - ATF_TP_ADD_TC(tp, tables); +int +main(void) { + const struct CMUnitTest tests[] = { + cmocka_unit_test(tables), + }; + + return (cmocka_run_group_tests(tests, NULL, NULL)); +} - return (atf_no_error()); +#else /* HAVE_CMOCKA */ + +#include + +int +main(void) { + printf("1..0 # Skipped: cmocka not available\n"); + return (0); } + +#endif diff --git a/util/copyrights b/util/copyrights index 1f519512ac1..75187982993 100644 --- a/util/copyrights +++ b/util/copyrights @@ -3653,6 +3653,7 @@ ./lib/isccc/result.c C.NOM 2001,2003,2004,2005,2007,2015,2016,2018 ./lib/isccc/sexpr.c C.NOM 2001,2004,2005,2007,2014,2015,2016,2018 ./lib/isccc/symtab.c C.NOM 2001,2004,2005,2007,2016,2018 +./lib/isccc/tests/Kyuafile X 2018 ./lib/isccc/tests/result_test.c C 2018 ./lib/isccc/version.c C 1998,1999,2000,2001,2004,2005,2007,2016,2018 ./lib/isccc/win32/DLLMain.c C 2001,2004,2007,2016,2018