From: Ondřej Surý Date: Tue, 16 Sep 2025 10:01:44 +0000 (+0200) Subject: Add more unit tests for dns_qp unit X-Git-Tag: v9.21.14~37^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=cdc6950d04f994617a0b522b580d3b8b35c68cc8;p=thirdparty%2Fbind9.git Add more unit tests for dns_qp unit Add basic unit tests and add missing DbC checks for mandatory dns_qp_create() arguments. --- diff --git a/lib/dns/qp.c b/lib/dns/qp.c index d27726d74f9..625e4675b36 100644 --- a/lib/dns/qp.c +++ b/lib/dns/qp.c @@ -1494,6 +1494,8 @@ dns_qpsnap_destroy(dns_qpmulti_t *multi, dns_qpsnap_t **qpsp) { void dns_qp_create(isc_mem_t *mctx, const dns_qpmethods_t *methods, void *uctx, dns_qp_t **qptp) { + REQUIRE(mctx != NULL); + REQUIRE(methods != NULL); REQUIRE(qptp != NULL && *qptp == NULL); dns_qp_t *qp = isc_mem_get(mctx, sizeof(*qp)); diff --git a/tests/dns/qp_test.c b/tests/dns/qp_test.c index e93d20040da..e6729056e99 100644 --- a/tests/dns/qp_test.c +++ b/tests/dns/qp_test.c @@ -40,6 +40,10 @@ #include #include +#define DONT_REORDER + +#include "../qp.c" + bool verbose = false; ISC_RUN_TEST_IMPL(qpkey_name) { @@ -2059,7 +2063,39 @@ ISC_RUN_TEST_IMPL(qpkey_delete) { dns_qp_destroy(&qp); } +ISC_RUN_TEST_IMPL(qp_basics) { + dns_qp_t *qp = NULL; + expect_assert_failure( + dns_qp_create(isc_g_mctx, &string_methods, NULL, NULL)); + expect_assert_failure(dns_qp_create(NULL, &string_methods, NULL, &qp)); + expect_assert_failure(dns_qp_create(isc_g_mctx, NULL, NULL, &qp)); + + qp = NULL; + dns_qp_create(isc_g_mctx, &string_methods, NULL, &qp); + assert_non_null(qp); + + dns_qp_destroy(&qp); + assert_null(qp); +} + +ISC_RUN_TEST_IMPL(qp_memusage) { + dns_qp_t *qp = NULL; + dns_qp_memusage_t mu; + + dns_qp_create(isc_g_mctx, &string_methods, NULL, &qp); + assert_non_null(qp); + + mu = dns_qp_memusage(qp); + assert_int_equal(mu.leaves, 0); + assert_int_equal(mu.used, 0); + + dns_qp_destroy(&qp); + assert_null(qp); +} + ISC_TEST_LIST_START +ISC_TEST_ENTRY(qp_basics) +ISC_TEST_ENTRY(qp_memusage) ISC_TEST_ENTRY(qpkey_name) ISC_TEST_ENTRY(qpkey_sort) ISC_TEST_ENTRY(qpiter)