add a compile-time option to select default zone and cache DB

by default, QPDB is the database used by named and all tools and
unit tests. the old default of RBTDB can now be restored by using
"configure --with-zonedb=rbt --with-cachedb=rbt".

some tests have been fixed so they will work correctly with either
database.

CHANGES and release notes have been updated to reflect this change.
This commit is contained in:
Evan Hunt
2024-03-05 16:17:33 -08:00
committed by Matthijs Mekking
parent 618c963cb7
commit 92b305be4b
26 changed files with 137 additions and 79 deletions

View File

@@ -46,8 +46,9 @@ ISC_RUN_TEST_IMPL(getoriginnode) {
UNUSED(state);
result = dns_db_create(mctx, "qp", dns_rootname, dns_dbtype_zone,
dns_rdataclass_in, 0, NULL, &db);
result = dns_db_create(mctx, ZONEDB_DEFAULT, dns_rootname,
dns_dbtype_zone, dns_rdataclass_in, 0, NULL,
&db);
assert_int_equal(result, ISC_R_SUCCESS);
result = dns_db_getoriginnode(db, &node);
@@ -69,8 +70,9 @@ ISC_RUN_TEST_IMPL(getsetservestalettl) {
UNUSED(state);
result = dns_db_create(mctx, "qp", dns_rootname, dns_dbtype_cache,
dns_rdataclass_in, 0, NULL, &db);
result = dns_db_create(mctx, CACHEDB_DEFAULT, dns_rootname,
dns_dbtype_cache, dns_rdataclass_in, 0, NULL,
&db);
assert_int_equal(result, ISC_R_SUCCESS);
ttl = 5000;
@@ -107,8 +109,9 @@ ISC_RUN_TEST_IMPL(dns_dbfind_staleok) {
UNUSED(state);
result = dns_db_create(mctx, "qp", dns_rootname, dns_dbtype_cache,
dns_rdataclass_in, 0, NULL, &db);
result = dns_db_create(mctx, CACHEDB_DEFAULT, dns_rootname,
dns_dbtype_cache, dns_rdataclass_in, 0, NULL,
&db);
assert_int_equal(result, ISC_R_SUCCESS);
example = dns_fixedname_initname(&example_fixed);
@@ -249,8 +252,9 @@ ISC_RUN_TEST_IMPL(class) {
UNUSED(state);
result = dns_db_create(mctx, "qp", dns_rootname, dns_dbtype_zone,
dns_rdataclass_in, 0, NULL, &db);
result = dns_db_create(mctx, ZONEDB_DEFAULT, dns_rootname,
dns_dbtype_zone, dns_rdataclass_in, 0, NULL,
&db);
assert_int_equal(result, ISC_R_SUCCESS);
result = dns_db_load(db, TESTS_DIR "/testdata/db/data.db",
@@ -270,8 +274,9 @@ ISC_RUN_TEST_IMPL(dbtype) {
UNUSED(state);
/* DB has zone semantics */
result = dns_db_create(mctx, "qp", dns_rootname, dns_dbtype_zone,
dns_rdataclass_in, 0, NULL, &db);
result = dns_db_create(mctx, ZONEDB_DEFAULT, dns_rootname,
dns_dbtype_zone, dns_rdataclass_in, 0, NULL,
&db);
assert_int_equal(result, ISC_R_SUCCESS);
result = dns_db_load(db, TESTS_DIR "/testdata/db/data.db",
dns_masterformat_text, 0);
@@ -281,14 +286,12 @@ ISC_RUN_TEST_IMPL(dbtype) {
dns_db_detach(&db);
/* DB has cache semantics */
result = dns_db_create(mctx, "qp", dns_rootname, dns_dbtype_zone,
dns_rdataclass_in, 0, NULL, &db);
result = dns_db_create(mctx, CACHEDB_DEFAULT, dns_rootname,
dns_dbtype_cache, dns_rdataclass_in, 0, NULL,
&db);
assert_int_equal(result, ISC_R_SUCCESS);
result = dns_db_load(db, TESTS_DIR "/testdata/db/data.db",
dns_masterformat_text, 0);
assert_int_equal(result, ISC_R_SUCCESS);
assert_false(dns_db_iscache(db));
assert_true(dns_db_iszone(db));
assert_true(dns_db_iscache(db));
assert_false(dns_db_iszone(db));
dns_db_detach(&db);
}

View File

@@ -78,13 +78,13 @@ setup_test(void **state) {
isc_assertion_setcallback(local_callback);
res = dns_db_create(mctx, "qp", dns_rootname, dns_dbtype_zone,
res = dns_db_create(mctx, ZONEDB_DEFAULT, dns_rootname, dns_dbtype_zone,
dns_rdataclass_in, 0, NULL, &db1);
assert_int_equal(res, ISC_R_SUCCESS);
dns_db_newversion(db1, &v1);
assert_non_null(v1);
res = dns_db_create(mctx, "qp", dns_rootname, dns_dbtype_zone,
res = dns_db_create(mctx, ZONEDB_DEFAULT, dns_rootname, dns_dbtype_zone,
dns_rdataclass_in, 0, NULL, &db2);
assert_int_equal(res, ISC_R_SUCCESS);
dns_db_newversion(db2, &v2);

View File

@@ -472,8 +472,9 @@ ISC_RUN_TEST_IMPL(dumpraw) {
&target);
assert_int_equal(result, ISC_R_SUCCESS);
result = dns_db_create(mctx, "qp", &dnsorigin, dns_dbtype_zone,
dns_rdataclass_in, 0, NULL, &db);
result = dns_db_create(mctx, ZONEDB_DEFAULT, &dnsorigin,
dns_dbtype_zone, dns_rdataclass_in, 0, NULL,
&db);
assert_int_equal(result, ISC_R_SUCCESS);
result = isc_dir_chdir(SRCDIR);

View File

@@ -293,8 +293,9 @@ ISC_RUN_TEST_IMPL(overmempurge_bigrdata) {
isc_mem_create(&mctx2);
result = dns_db_create(mctx2, "qp", dns_rootname, dns_dbtype_cache,
dns_rdataclass_in, 0, NULL, &db);
result = dns_db_create(mctx2, CACHEDB_DEFAULT, dns_rootname,
dns_dbtype_cache, dns_rdataclass_in, 0, NULL,
&db);
assert_int_equal(result, ISC_R_SUCCESS);
isc_mem_setwater(mctx2, hiwater, lowater);
@@ -337,8 +338,9 @@ ISC_RUN_TEST_IMPL(overmempurge_longname) {
isc_mem_create(&mctx2);
result = dns_db_create(mctx2, "qp", dns_rootname, dns_dbtype_cache,
dns_rdataclass_in, 0, NULL, &db);
result = dns_db_create(mctx2, CACHEDB_DEFAULT, dns_rootname,
dns_dbtype_cache, dns_rdataclass_in, 0, NULL,
&db);
assert_int_equal(result, ISC_R_SUCCESS);
isc_mem_setwater(mctx2, hiwater, lowater);

View File

@@ -213,7 +213,9 @@ dns_test_loaddb(dns_db_t **db, dns_dbtype_t dbtype, const char *origin,
const char *testfile) {
isc_result_t result;
dns_fixedname_t fixed;
dns_name_t *name;
dns_name_t *name = NULL;
const char *dbimp = (dbtype == dns_dbtype_zone) ? ZONEDB_DEFAULT
: CACHEDB_DEFAULT;
name = dns_fixedname_initname(&fixed);
@@ -222,7 +224,7 @@ dns_test_loaddb(dns_db_t **db, dns_dbtype_t dbtype, const char *origin,
return (result);
}
result = dns_db_create(mctx, "qp", name, dbtype, dns_rdataclass_in, 0,
result = dns_db_create(mctx, dbimp, name, dbtype, dns_rdataclass_in, 0,
NULL, db);
if (result != ISC_R_SUCCESS) {
return (result);

View File

@@ -530,7 +530,9 @@ ns_test_loaddb(dns_db_t **db, dns_dbtype_t dbtype, const char *origin,
const char *testfile) {
isc_result_t result;
dns_fixedname_t fixed;
dns_name_t *name;
dns_name_t *name = NULL;
const char *dbimp = (dbtype == dns_dbtype_zone) ? ZONEDB_DEFAULT
: CACHEDB_DEFAULT;
name = dns_fixedname_initname(&fixed);
@@ -539,7 +541,7 @@ ns_test_loaddb(dns_db_t **db, dns_dbtype_t dbtype, const char *origin,
return (result);
}
result = dns_db_create(mctx, "qp", name, dbtype, dns_rdataclass_in, 0,
result = dns_db_create(mctx, dbimp, name, dbtype, dns_rdataclass_in, 0,
NULL, db);
if (result != ISC_R_SUCCESS) {
return (result);