mirror of
https://gitlab.isc.org/isc-projects/bind9
synced 2025-09-02 15:45:25 +00:00
new: test: Add a system test that ensures root zone mirroring works out of the box
This is a test for #5380. Merge branch 'stepan/mirror-root-zone-from-the-internet' into 'main' See merge request isc-projects/bind9!10596
This commit is contained in:
@@ -263,10 +263,13 @@ stages:
|
|||||||
rules:
|
rules:
|
||||||
- if: '$CI_PIPELINE_SOURCE =~ /^(api|pipeline|schedule|trigger|web)$/'
|
- if: '$CI_PIPELINE_SOURCE =~ /^(api|pipeline|schedule|trigger|web)$/'
|
||||||
|
|
||||||
|
.default-triggering-rules_list: &default_triggering_rules_list
|
||||||
|
- if: '$CI_PIPELINE_SOURCE =~ /^(api|merge_request_event|pipeline|schedule|trigger|web)$/'
|
||||||
|
- if: '$CI_COMMIT_TAG != null'
|
||||||
|
|
||||||
.default-triggering-rules: &default_triggering_rules
|
.default-triggering-rules: &default_triggering_rules
|
||||||
rules:
|
rules:
|
||||||
- if: '$CI_PIPELINE_SOURCE =~ /^(api|merge_request_event|pipeline|schedule|trigger|web)$/'
|
- *default_triggering_rules_list
|
||||||
- if: '$CI_COMMIT_TAG != null'
|
|
||||||
|
|
||||||
.precheck: &precheck_job
|
.precheck: &precheck_job
|
||||||
<<: *default_triggering_rules
|
<<: *default_triggering_rules
|
||||||
@@ -912,18 +915,23 @@ system:gcc:bookworm:amd64:
|
|||||||
<<: *debian_bookworm_amd64_image
|
<<: *debian_bookworm_amd64_image
|
||||||
<<: *system_test_job
|
<<: *system_test_job
|
||||||
variables:
|
variables:
|
||||||
CI_ENABLE_ALL_TESTS: 1
|
CI_ENABLE_LONG_TESTS: 1
|
||||||
CLEAN_BUILD_ARTIFACTS_ON_SUCCESS: 0
|
CLEAN_BUILD_ARTIFACTS_ON_SUCCESS: 0
|
||||||
TZ: Australia/Sydney
|
TZ: Australia/Sydney
|
||||||
needs: # using artifacts from unit test job is required for gcov
|
needs: # using artifacts from unit test job is required for gcov
|
||||||
- job: unit:gcc:bookworm:amd64
|
- job: unit:gcc:bookworm:amd64
|
||||||
artifacts: true
|
artifacts: true
|
||||||
|
rules:
|
||||||
|
- if: '$CI_PIPELINE_SOURCE == "schedule"'
|
||||||
|
variables:
|
||||||
|
CI_ENABLE_LIVE_INTERENT_TESTS: 1
|
||||||
|
- *default_triggering_rules_list
|
||||||
|
|
||||||
unit:gcc:bookworm:amd64:
|
unit:gcc:bookworm:amd64:
|
||||||
<<: *debian_bookworm_amd64_image
|
<<: *debian_bookworm_amd64_image
|
||||||
<<: *unit_test_job
|
<<: *unit_test_job
|
||||||
variables:
|
variables:
|
||||||
CI_ENABLE_ALL_TESTS: 1
|
CI_ENABLE_LONG_TESTS: 1
|
||||||
CLEAN_BUILD_ARTIFACTS_ON_SUCCESS: 0
|
CLEAN_BUILD_ARTIFACTS_ON_SUCCESS: 0
|
||||||
needs:
|
needs:
|
||||||
- job: gcc:bookworm:amd64
|
- job: gcc:bookworm:amd64
|
||||||
|
@@ -19,7 +19,12 @@ import pytest
|
|||||||
|
|
||||||
|
|
||||||
long_test = pytest.mark.skipif(
|
long_test = pytest.mark.skipif(
|
||||||
not os.environ.get("CI_ENABLE_ALL_TESTS"), reason="CI_ENABLE_ALL_TESTS not set"
|
not os.environ.get("CI_ENABLE_LONG_TESTS"), reason="CI_ENABLE_LONG_TESTS not set"
|
||||||
|
)
|
||||||
|
|
||||||
|
live_internet_test = pytest.mark.skipif(
|
||||||
|
not os.environ.get("CI_ENABLE_LIVE_INTERNET_TESTS"),
|
||||||
|
reason="CI_ENABLE_LIVE_INTERNET_TESTS not set",
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
28
bin/tests/system/mirror/ns4/named.conf.j2
Normal file
28
bin/tests/system/mirror/ns4/named.conf.j2
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: MPL-2.0
|
||||||
|
*
|
||||||
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
* file, you can obtain one at https://mozilla.org/MPL/2.0/.
|
||||||
|
*
|
||||||
|
* See the COPYRIGHT file distributed with this work for additional
|
||||||
|
* information regarding copyright ownership.
|
||||||
|
*/
|
||||||
|
|
||||||
|
key rndc_key {
|
||||||
|
secret "1234abcd8765";
|
||||||
|
algorithm @DEFAULT_HMAC@;
|
||||||
|
};
|
||||||
|
|
||||||
|
controls {
|
||||||
|
inet 10.53.0.4 port @CONTROLPORT@ allow { any; } keys { rndc_key; };
|
||||||
|
};
|
||||||
|
|
||||||
|
options {
|
||||||
|
pid-file "named.pid";
|
||||||
|
listen-on port @PORT@ {10.53.0.4;};
|
||||||
|
};
|
||||||
|
|
||||||
|
zone "." { type mirror; };
|
27
bin/tests/system/mirror/tests_mirror.py
Normal file
27
bin/tests/system/mirror/tests_mirror.py
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
# Copyright (C) Internet Systems Consortium, Inc. ("ISC")
|
||||||
|
#
|
||||||
|
# SPDX-License-Identifier: MPL-2.0
|
||||||
|
#
|
||||||
|
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
# file, you can obtain one at https://mozilla.org/MPL/2.0/.
|
||||||
|
#
|
||||||
|
# See the COPYRIGHT file distributed with this work for additional
|
||||||
|
# information regarding copyright ownership.
|
||||||
|
|
||||||
|
from typing import Dict
|
||||||
|
|
||||||
|
from isctest.instance import NamedInstance
|
||||||
|
from isctest.mark import live_internet_test
|
||||||
|
|
||||||
|
|
||||||
|
@live_internet_test
|
||||||
|
def test_mirror_root_zone(servers: Dict[str, NamedInstance]):
|
||||||
|
"""
|
||||||
|
This test pulls the root zone from the Internet, so let's only run
|
||||||
|
it when CI_ENABLE_LIVE_INTERNET_TESTS is set.
|
||||||
|
"""
|
||||||
|
ns4 = servers["ns4"]
|
||||||
|
with ns4.watch_log_from_start() as watch_log:
|
||||||
|
# TimeoutError is raised if the line is not found and the test will fail.
|
||||||
|
watch_log.wait_for_line("Transfer status: success")
|
Reference in New Issue
Block a user