From: Joey Date: Sat, 10 Nov 2018 06:37:03 +0000 (+0700) Subject: convert private_test X-Git-Tag: v9.13.4~21^2~15 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9a464ef86912e0f1c82f2f2ba3a1a3bca485a485;p=thirdparty%2Fbind9.git convert private_test --- diff --git a/lib/dns/tests/Kyuafile b/lib/dns/tests/Kyuafile index 1a28e702ed8..a79424ff365 100644 --- a/lib/dns/tests/Kyuafile +++ b/lib/dns/tests/Kyuafile @@ -16,7 +16,7 @@ atf_test_program{name='master_test'} atf_test_program{name='name_test'} tap_test_program{name='nsec3_test'} tap_test_program{name='peer_test'} -atf_test_program{name='private_test'} +tap_test_program{name='private_test'} atf_test_program{name='rbt_serialize_test', is_exclusive=true} tap_test_program{name='rbt_test'} tap_test_program{name='rdata_test'} diff --git a/lib/dns/tests/Makefile.in b/lib/dns/tests/Makefile.in index 0a8a3a8e40a..16d6b5e3b20 100644 --- a/lib/dns/tests/Makefile.in +++ b/lib/dns/tests/Makefile.in @@ -181,9 +181,9 @@ peer_test@EXEEXT@: peer_test.@O@ dnstest.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS} ${DNSLIBS} ${ISCLIBS} ${LIBS} ${CMOCKA_LIBS} private_test@EXEEXT@: private_test.@O@ dnstest.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS} - ${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ \ - private_test.@O@ dnstest.@O@ ${DNSLIBS} \ - ${ISCLIBS} ${LIBS} + ${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${CMOCKA_CFLAGS} \ + ${LDFLAGS} -o $@ private_test.@O@ dnstest.@O@ \ + ${DNSLIBS} ${ISCLIBS} ${LIBS} ${CMOCKA_LIBS} rbt_serialize_test@EXEEXT@: rbt_serialize_test.@O@ dnstest.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS} ${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ \ diff --git a/lib/dns/tests/private_test.c b/lib/dns/tests/private_test.c index 73cd4a6084d..517bb1a1470 100644 --- a/lib/dns/tests/private_test.c +++ b/lib/dns/tests/private_test.c @@ -10,16 +10,23 @@ */ -/*! \file */ - #include -#include +#if HAVE_CMOCKA + +#include +#include +#include #include #include +#include #include +#define UNIT_TESTING +#include + +#include #include #include @@ -33,6 +40,27 @@ static dns_rdatatype_t privatetype = 65534; +static int +_setup(void **state) { + isc_result_t result; + + UNUSED(state); + + result = dns_test_begin(NULL, false); + assert_int_equal(result, ISC_R_SUCCESS); + + return (0); +} + +static int +_teardown(void **state) { + UNUSED(state); + + dns_test_end(); + + return (0); +} + typedef struct { unsigned char alg; dns_keytag_t keyid; @@ -50,9 +78,6 @@ typedef struct { bool nonsec; } nsec3_testcase_t; -/* - * Helper functions - */ static void make_signing(signing_testcase_t *testcase, dns_rdata_t *private, unsigned char *buf, size_t len) @@ -100,12 +125,14 @@ make_nsec3(nsec3_testcase_t *testcase, dns_rdata_t *private, params.flags = testcase->flags; if (testcase->remove) { params.flags |= DNS_NSEC3FLAG_REMOVE; - if (testcase->nonsec) + if (testcase->nonsec) { params.flags |= DNS_NSEC3FLAG_NONSEC; + } } else { params.flags |= DNS_NSEC3FLAG_CREATE; - if (testcase->pending) + if (testcase->pending) { params.flags |= DNS_NSEC3FLAG_INITIAL; + } } isc_buffer_init(&buf, bufdata, sizeof(bufdata)); @@ -118,16 +145,9 @@ make_nsec3(nsec3_testcase_t *testcase, dns_rdata_t *private, pbuf, DNS_NSEC3PARAM_BUFFERSIZE + 1); } -/* - * Individual unit tests - */ -ATF_TC(private_signing_totext); -ATF_TC_HEAD(private_signing_totext, tc) { - atf_tc_set_md_var(tc, "descr", - "convert private signing records to text"); -} -ATF_TC_BODY(private_signing_totext, tc) { - isc_result_t result; +/* convert private signing records to text */ +static void +private_signing_totext_test(void **state) { dns_rdata_t private; int i; @@ -145,10 +165,7 @@ ATF_TC_BODY(private_signing_totext, tc) { }; int ncases = 4; - UNUSED(tc); - - result = dns_test_begin(NULL, true); - ATF_REQUIRE_EQ(result, ISC_R_SUCCESS); + UNUSED(state); for (i = 0; i < ncases; i++) { unsigned char data[5]; @@ -159,18 +176,14 @@ ATF_TC_BODY(private_signing_totext, tc) { make_signing(&testcases[i], &private, data, sizeof(data)); dns_private_totext(&private, &buf); - ATF_CHECK_STREQ(output, results[i]); + assert_string_equal(output, results[i]); } - dns_test_end(); } -ATF_TC(private_nsec3_totext); -ATF_TC_HEAD(private_nsec3_totext, tc) { - atf_tc_set_md_var(tc, "descr", "convert private chain records to text"); -} -ATF_TC_BODY(private_nsec3_totext, tc) { - isc_result_t result; +/* convert private chain records to text */ +static void +private_nsec3_totext_test(void **state) { dns_rdata_t private; int i; @@ -190,10 +203,7 @@ ATF_TC_BODY(private_nsec3_totext, tc) { }; int ncases = 5; - UNUSED(tc); - - result = dns_test_begin(NULL, true); - ATF_REQUIRE_EQ(result, ISC_R_SUCCESS); + UNUSED(state); for (i = 0; i < ncases; i++) { unsigned char data[DNS_NSEC3PARAM_BUFFERSIZE + 1]; @@ -204,18 +214,30 @@ ATF_TC_BODY(private_nsec3_totext, tc) { make_nsec3(&testcases[i], &private, data); dns_private_totext(&private, &buf); - ATF_CHECK_STREQ(output, results[i]); + assert_string_equal(output, results[i]); } +} - dns_test_end(); +int +main(void) { + const struct CMUnitTest tests[] = { + cmocka_unit_test_setup_teardown(private_signing_totext_test, + _setup, _teardown), + cmocka_unit_test_setup_teardown(private_nsec3_totext_test, + _setup, _teardown), + }; + + return (cmocka_run_group_tests(tests, NULL, NULL)); } -/* - * Main - */ -ATF_TP_ADD_TCS(tp) { - ATF_TP_ADD_TC(tp, private_signing_totext); - ATF_TP_ADD_TC(tp, private_nsec3_totext); - return (atf_no_error()); +#else /* HAVE_CMOCKA */ + +#include + +int +main(void) { + printf("1..0 # Skipped: cmocka not available\n"); + return (0); } +#endif