From 8f687fff3567074851e3c197435debf5b61070b1 Mon Sep 17 00:00:00 2001 From: Michal Nowak Date: Mon, 29 Apr 2024 19:25:18 +0200 Subject: [PATCH 1/2] Add jobs for RBT zone- & cache-enabled GCC builds --- .gitlab-ci.yml | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index cebe28f1e4..058b94f1b1 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -889,6 +889,30 @@ unit:gcc:bookworm:amd64: - job: gcc:bookworm:amd64 artifacts: true +# Jobs for RBT zone- & cache-enabled GCC builds on Debian 12 "bookworm" (amd64) + +gcc:bookworm:rbt:amd64: + variables: + CC: gcc + CFLAGS: "${CFLAGS_COMMON}" + EXTRA_CONFIGURE: "--with-libidn2 --with-zonedb=rbt --with-cachedb=rbt" + <<: *debian_bookworm_amd64_image + <<: *build_job + +system:gcc:bookworm:rbt:amd64: + <<: *debian_bookworm_amd64_image + <<: *system_test_job + needs: + - job: unit:gcc:bookworm:rbt:amd64 + artifacts: true + +unit:gcc:bookworm:rbt:amd64: + <<: *debian_bookworm_amd64_image + <<: *unit_test_job + needs: + - job: gcc:bookworm:rbt:amd64 + artifacts: true + # Build job for cross-compiled GCC builds on 64-bit Debian 12 "bookworm" # (amd64) with 32-bit BIND 9. From 1482e9bbb9f828fda0f0171823ce6c192b64a195 Mon Sep 17 00:00:00 2001 From: Mark Andrews Date: Thu, 2 May 2024 15:31:18 +1000 Subject: [PATCH 2/2] Address qp/rbtdb backup file style differences qp and rbtdb produce stylistically different backup files. This was causing the xferquota system test to fail. This has been addressed by making the test independent of the stylistic differences. --- bin/tests/system/xferquota/tests_xferquota.py | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/bin/tests/system/xferquota/tests_xferquota.py b/bin/tests/system/xferquota/tests_xferquota.py index ee71ec8488..3b9572f1bd 100644 --- a/bin/tests/system/xferquota/tests_xferquota.py +++ b/bin/tests/system/xferquota/tests_xferquota.py @@ -31,13 +31,17 @@ def test_xferquota(named_port, servers): def check_line_count(): matching_line_count = 0 - # Iterate through zone files and count matching lines + # Iterate through zone files and count matching lines (records) for file_path in glob.glob("ns2/zone000*.example.bk"): - with open(file_path, "r", encoding="utf-8") as zonefile: - # Count the number of lines containing the search string - for line in zonefile: - if re.search(r"xyzzy.zone[0-9]+.example.*A\s+10\.0\.0\.2", line): - matching_line_count += 1 + zone = dns.zone.from_file( + file_path, origin=file_path[4:-2], relativize=False + ) + for name, _ttl, rdata in zone.iterate_rdatas(rdtype="A"): + if ( + re.fullmatch("xyzzy.zone[0-9]+.example.", name.to_text()) + and rdata.to_text() == "10.0.0.2" + ): + matching_line_count += 1 return matching_line_count == 300 isctest.run.retry_with_timeout(check_line_count, timeout=360)