mirror of
https://gitlab.isc.org/isc-projects/bind9
synced 2025-08-30 22:15:20 +00:00
Merge branch 'mnowak/pytest_rewrite_dialup' into 'main'
Rewrite dialup system test to pytest See merge request isc-projects/bind9!8668
This commit is contained in:
@@ -21,7 +21,7 @@ options {
|
|||||||
pid-file "named.pid";
|
pid-file "named.pid";
|
||||||
listen-on { 10.53.0.1; };
|
listen-on { 10.53.0.1; };
|
||||||
listen-on-v6 { none; };
|
listen-on-v6 { none; };
|
||||||
heartbeat-interval 2;
|
heartbeat-interval 1;
|
||||||
recursion no;
|
recursion no;
|
||||||
dnssec-validation no;
|
dnssec-validation no;
|
||||||
};
|
};
|
||||||
|
@@ -21,7 +21,7 @@ options {
|
|||||||
pid-file "named.pid";
|
pid-file "named.pid";
|
||||||
listen-on { 10.53.0.2; };
|
listen-on { 10.53.0.2; };
|
||||||
listen-on-v6 { none; };
|
listen-on-v6 { none; };
|
||||||
heartbeat-interval 2;
|
heartbeat-interval 1;
|
||||||
recursion no;
|
recursion no;
|
||||||
dnssec-validation no;
|
dnssec-validation no;
|
||||||
};
|
};
|
||||||
|
@@ -21,7 +21,7 @@ options {
|
|||||||
pid-file "named.pid";
|
pid-file "named.pid";
|
||||||
listen-on { 10.53.0.3; };
|
listen-on { 10.53.0.3; };
|
||||||
listen-on-v6 { none; };
|
listen-on-v6 { none; };
|
||||||
heartbeat-interval 2;
|
heartbeat-interval 1;
|
||||||
recursion no;
|
recursion no;
|
||||||
dnssec-validation no;
|
dnssec-validation no;
|
||||||
};
|
};
|
||||||
|
@@ -1,62 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
# 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.
|
|
||||||
|
|
||||||
set -e
|
|
||||||
|
|
||||||
. ../conf.sh
|
|
||||||
|
|
||||||
status=0
|
|
||||||
|
|
||||||
rm -f dig.out.*
|
|
||||||
|
|
||||||
DIGOPTS="+norec +tcp +noadd +nosea +nostat +noquest +nocmd -p ${PORT}"
|
|
||||||
|
|
||||||
# Check the example. domain
|
|
||||||
|
|
||||||
$DIG $DIGOPTS example. @10.53.0.1 soa >dig.out.ns1.test || ret=1
|
|
||||||
echo_i "checking that first zone transfer worked"
|
|
||||||
ret=0
|
|
||||||
try=0
|
|
||||||
while test $try -lt 120; do
|
|
||||||
$DIG $DIGOPTS example. @10.53.0.2 soa >dig.out.ns2.test || ret=1
|
|
||||||
if grep SERVFAIL dig.out.ns2.test >/dev/null; then
|
|
||||||
try=$((try + 1))
|
|
||||||
sleep 1
|
|
||||||
else
|
|
||||||
digcomp dig.out.ns1.test dig.out.ns2.test || ret=1
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
echo_i "try $try"
|
|
||||||
if [ $ret != 0 ]; then echo_i "failed"; fi
|
|
||||||
status=$((status + ret))
|
|
||||||
|
|
||||||
echo_i "checking that second zone transfer worked"
|
|
||||||
ret=0
|
|
||||||
try=0
|
|
||||||
while test $try -lt 120; do
|
|
||||||
$DIG $DIGOPTS example. @10.53.0.3 soa >dig.out.ns3.test || ret=1
|
|
||||||
if grep SERVFAIL dig.out.ns3.test >/dev/null; then
|
|
||||||
try=$((try + 1))
|
|
||||||
sleep 1
|
|
||||||
else
|
|
||||||
digcomp dig.out.ns1.test dig.out.ns3.test || ret=1
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
echo_i "try $try"
|
|
||||||
if [ $ret != 0 ]; then echo_i "failed"; fi
|
|
||||||
status=$((status + ret))
|
|
||||||
|
|
||||||
echo_i "exit status: $status"
|
|
||||||
[ $status -eq 0 ] || exit 1
|
|
33
bin/tests/system/dialup/tests_dialup_zone_transfer.py
Normal file
33
bin/tests/system/dialup/tests_dialup_zone_transfer.py
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
# 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.
|
||||||
|
|
||||||
|
import pytest
|
||||||
|
|
||||||
|
import isctest
|
||||||
|
|
||||||
|
import dns.message
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.parametrize("ns", [2, 3])
|
||||||
|
def test_dialup_zone_transfer(named_port, servers, ns):
|
||||||
|
msg = dns.message.make_query("example.", "SOA")
|
||||||
|
# Drop the RD flag from the query
|
||||||
|
msg.flags -= dns.flags.RD
|
||||||
|
ns1response = isctest.query.tcp(msg, "10.53.0.1")
|
||||||
|
with servers[f"ns{ns}"].watch_log_from_here() as watcher:
|
||||||
|
watcher.wait_for_line(
|
||||||
|
f"transfer of 'example/IN' from 10.53.0.{ns-1}#{named_port}: Transfer status: success",
|
||||||
|
timeout=90,
|
||||||
|
)
|
||||||
|
response = isctest.query.tcp(msg, f"10.53.0.{ns}")
|
||||||
|
if response.rcode() != dns.rcode.SERVFAIL:
|
||||||
|
assert response.answer == ns1response.answer
|
||||||
|
assert response.authority == ns1response.authority
|
@@ -1,14 +0,0 @@
|
|||||||
# 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.
|
|
||||||
|
|
||||||
|
|
||||||
def test_dialup(run_tests_sh):
|
|
||||||
run_tests_sh()
|
|
Reference in New Issue
Block a user