diff options
Diffstat (limited to '')
23 files changed, 993 insertions, 0 deletions
diff --git a/bin/tests/system/additional/clean.sh b/bin/tests/system/additional/clean.sh new file mode 100644 index 0000000..c43c36e --- /dev/null +++ b/bin/tests/system/additional/clean.sh @@ -0,0 +1,23 @@ +#!/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. + +# +# Clean up after tests. +# + +rm -f dig.out.* +rm -f */named.memstats +rm -f */named.conf +rm -f */named.run +rm -f ns*/named.lock +rm -f ns*/managed-keys.bind* diff --git a/bin/tests/system/additional/ns1/mx.db b/bin/tests/system/additional/ns1/mx.db new file mode 100644 index 0000000..6305e8b --- /dev/null +++ b/bin/tests/system/additional/ns1/mx.db @@ -0,0 +1,18 @@ +; 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. + +$TTL 86400 +@ IN SOA ns1 hostmaster ( 2 8H 2H 4W 1D ); + NS ns1 + MX 0 mail +ns1 A 10.53.0.1 +mail A 1.2.3.4 +_25._tcp.mail TLSA 3 0 1 5B30F9602297D558EB719162C225088184FAA32CA45E1ED15DE58A21 D9FCE383 diff --git a/bin/tests/system/additional/ns1/named.args b/bin/tests/system/additional/ns1/named.args new file mode 100644 index 0000000..45ac93a --- /dev/null +++ b/bin/tests/system/additional/ns1/named.args @@ -0,0 +1,2 @@ +# this server runs named with only one worker thread +-m record -c named.conf -d 99 -D additional-ns1 -X named.lock -g -n 1 -T maxcachesize=2097152 diff --git a/bin/tests/system/additional/ns1/named1.conf.in b/bin/tests/system/additional/ns1/named1.conf.in new file mode 100644 index 0000000..d058d1e --- /dev/null +++ b/bin/tests/system/additional/ns1/named1.conf.in @@ -0,0 +1,62 @@ +/* + * 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. + */ + +options { + query-source address 10.53.0.1; + notify-source 10.53.0.1; + transfer-source 10.53.0.1; + recursion no; + dnssec-validation no; + port @PORT@; + pid-file "named.pid"; + listen-on { 10.53.0.1; }; + listen-on-v6 { none; }; + notify no; + minimal-responses yes; +}; + +include "../../common/rndc.key"; + +controls { + inet 10.53.0.1 port @CONTROLPORT@ allow { any; } keys { rndc_key; }; +}; + +zone "." { + type primary; + file "root.db"; +}; + +zone "rt.example" { + type primary; + file "rt.db"; +}; + +zone "naptr.example" { + type primary; + file "naptr.db"; +}; + +zone "rt2.example" { + type primary; + file "rt2.db"; +}; + +zone "naptr2.example" { + type primary; + file "naptr2.db"; +}; + +zone "nid.example" { + type primary; + file "nid.db"; +}; diff --git a/bin/tests/system/additional/ns1/named2.conf.in b/bin/tests/system/additional/ns1/named2.conf.in new file mode 100644 index 0000000..56c6d4b --- /dev/null +++ b/bin/tests/system/additional/ns1/named2.conf.in @@ -0,0 +1,62 @@ +/* + * 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. + */ + +options { + query-source address 10.53.0.1; + notify-source 10.53.0.1; + transfer-source 10.53.0.1; + recursion no; + dnssec-validation no; + port @PORT@; + pid-file "named.pid"; + listen-on { 10.53.0.1; }; + listen-on-v6 { none; }; + notify no; + minimal-responses no; +}; + +include "../../common/rndc.key"; + +controls { + inet 10.53.0.1 port @CONTROLPORT@ allow { any; } keys { rndc_key; }; +}; + +zone "." { + type primary; + file "root.db"; +}; + +zone "rt.example" { + type primary; + file "rt.db"; +}; + +zone "naptr.example" { + type primary; + file "naptr.db"; +}; + +zone "rt2.example" { + type primary; + file "rt2.db"; +}; + +zone "naptr2.example" { + type primary; + file "naptr2.db"; +}; + +zone "nid.example" { + type primary; + file "nid.db"; +}; diff --git a/bin/tests/system/additional/ns1/named3.conf.in b/bin/tests/system/additional/ns1/named3.conf.in new file mode 100644 index 0000000..ad453a3 --- /dev/null +++ b/bin/tests/system/additional/ns1/named3.conf.in @@ -0,0 +1,63 @@ +/* + * 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. + */ + +options { + query-source address 10.53.0.1; + notify-source 10.53.0.1; + transfer-source 10.53.0.1; + recursion no; + dnssec-validation no; + port @PORT@; + pid-file "named.pid"; + listen-on { 10.53.0.1; }; + listen-on-v6 { none; }; + notify no; + minimal-any yes; + minimal-responses no-auth; +}; + +include "../../common/rndc.key"; + +controls { + inet 10.53.0.1 port @CONTROLPORT@ allow { any; } keys { rndc_key; }; +}; + +zone "." { + type primary; + file "root.db"; +}; + +zone "rt.example" { + type primary; + file "rt.db"; +}; + +zone "naptr.example" { + type primary; + file "naptr.db"; +}; + +zone "rt2.example" { + type primary; + file "rt2.db"; +}; + +zone "naptr2.example" { + type primary; + file "naptr2.db"; +}; + +zone "nid.example" { + type primary; + file "nid.db"; +}; diff --git a/bin/tests/system/additional/ns1/named4.conf.in b/bin/tests/system/additional/ns1/named4.conf.in new file mode 100644 index 0000000..69479b9 --- /dev/null +++ b/bin/tests/system/additional/ns1/named4.conf.in @@ -0,0 +1,72 @@ +/* + * 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. + */ + +options { + query-source address 10.53.0.1; + notify-source 10.53.0.1; + transfer-source 10.53.0.1; + recursion no; + dnssec-validation no; + port @PORT@; + pid-file "named.pid"; + listen-on { 10.53.0.1; }; + listen-on-v6 { none; }; + notify no; + minimal-responses no-auth-recursive; +}; + +include "../../common/rndc.key"; + +controls { + inet 10.53.0.1 port @CONTROLPORT@ allow { any; } keys { rndc_key; }; +}; + +zone "." { + type primary; + file "root.db"; +}; + +zone "mx.example" { + type primary; + file "mx.db"; +}; + +zone "srv.example" { + type primary; + file "srv.db"; +}; + +zone "rt.example" { + type primary; + file "rt.db"; +}; + +zone "naptr.example" { + type primary; + file "naptr.db"; +}; + +zone "rt2.example" { + type primary; + file "rt2.db"; +}; + +zone "naptr2.example" { + type primary; + file "naptr2.db"; +}; + +zone "nid.example" { + type primary; + file "nid.db"; +}; diff --git a/bin/tests/system/additional/ns1/naptr.db b/bin/tests/system/additional/ns1/naptr.db new file mode 100644 index 0000000..51d3c85 --- /dev/null +++ b/bin/tests/system/additional/ns1/naptr.db @@ -0,0 +1,20 @@ +; 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. + +$TTL 86400 +@ IN SOA ns1 hostmaster ( 2 8H 2H 4W 1D ); + NS ns1 +ns1 A 10.53.0.1 + +nap IN NAPTR 50 50 "S" "SIPS+D2T" "" server +server SRV 0 0 5061 server +server A 192.168.2.9 +server AAAA 192::9 diff --git a/bin/tests/system/additional/ns1/naptr2.db b/bin/tests/system/additional/ns1/naptr2.db new file mode 100644 index 0000000..78ca4ad --- /dev/null +++ b/bin/tests/system/additional/ns1/naptr2.db @@ -0,0 +1,20 @@ +; 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. + +$TTL 86400 +@ IN SOA ns1 hostmaster ( 2 8H 2H 4W 1D ); + NS ns1 +ns1 A 10.53.0.1 + +nap IN NAPTR 50 50 "S" "SIPS+D2T" "" server.hang3a.zone. +www AAAA 192::99 +www A 192.168.2.99 +www X25 100099 diff --git a/bin/tests/system/additional/ns1/nid.db b/bin/tests/system/additional/ns1/nid.db new file mode 100644 index 0000000..f76b52e --- /dev/null +++ b/bin/tests/system/additional/ns1/nid.db @@ -0,0 +1,21 @@ +; 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. + +$TTL 86400 +@ IN SOA ns1 hostmaster ( 2 8H 2H 4W 1D ); + NS ns1 +ns1 A 10.53.0.1 + +ns1 NID 2 0:0:0:0 +ns1 L64 2 0:0:0:0 +ns1 L32 2 0.0.0.0 +nid2 NID 2 0:0:0:1 +nid2 LP 2 ns1 diff --git a/bin/tests/system/additional/ns1/root.db b/bin/tests/system/additional/ns1/root.db new file mode 100644 index 0000000..94cfdda --- /dev/null +++ b/bin/tests/system/additional/ns1/root.db @@ -0,0 +1,21 @@ +; 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. + +. IN SOA ns2. hostmaster ( 2 8H 2H 4W 1D); +. NS ns1.rt.example. +. NS ns2.rt.example. +ns1.rt.example. A 10.53.0.1 +ns2.rt.example. A 10.53.0.2 +rt.example. NS ns1. +naptr.example. NS ns1. +rt2.example. NS ns1. +naptr2.example. NS ns1. +nid.example. NS ns1. diff --git a/bin/tests/system/additional/ns1/rt.db b/bin/tests/system/additional/ns1/rt.db new file mode 100644 index 0000000..c858f0d --- /dev/null +++ b/bin/tests/system/additional/ns1/rt.db @@ -0,0 +1,21 @@ +; 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. + +$TTL 86400 +@ IN SOA ns1 hostmaster ( 2 8H 2H 4W 1D ); + NS ns1 + NS ns1.rt2.example. +ns1 A 10.53.0.1 + +rt RT 2 www +www AAAA 192::99 +www A 192.168.2.99 +www X25 100099 diff --git a/bin/tests/system/additional/ns1/rt2.db b/bin/tests/system/additional/ns1/rt2.db new file mode 100644 index 0000000..b61a198 --- /dev/null +++ b/bin/tests/system/additional/ns1/rt2.db @@ -0,0 +1,20 @@ +; 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. + +$TTL 86400 +@ IN SOA ns1 hostmaster ( 2 8H 2H 4W 1D ); + NS ns1 +ns1 A 10.53.0.1 + +rt RT 2 www.hang3b.zone. +server SRV 0 0 5061 server +server A 192.168.2.9 +server AAAA 192::9 diff --git a/bin/tests/system/additional/ns1/srv.db b/bin/tests/system/additional/ns1/srv.db new file mode 100644 index 0000000..0aee21a --- /dev/null +++ b/bin/tests/system/additional/ns1/srv.db @@ -0,0 +1,18 @@ +; 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. + +$TTL 86400 +@ IN SOA ns1 hostmaster ( 2 8H 2H 4W 1D ); + NS ns1 +ns1 A 10.53.0.1 +_xmpp-client._tcp SRV 1 0 5222 server +server A 1.2.3.4 +_5222._tcp.server TLSA 3 0 1 5B30F9602297D558EB719162C225088184FAA32CA45E1ED15DE58A21 D9FCE383 diff --git a/bin/tests/system/additional/ns2/named.conf.in b/bin/tests/system/additional/ns2/named.conf.in new file mode 100644 index 0000000..ed43ca6 --- /dev/null +++ b/bin/tests/system/additional/ns2/named.conf.in @@ -0,0 +1,31 @@ +/* + * 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. + */ + +options { + query-source address 10.53.0.2; + notify-source 10.53.0.2; + transfer-source 10.53.0.2; + recursion no; + port @PORT@; + pid-file "named.pid"; + listen-on { 10.53.0.2; }; + listen-on-v6 { none; }; + notify no; + minimal-responses yes; + dnssec-validation no; +}; + +zone "." { + type primary; + file "root.db"; +}; diff --git a/bin/tests/system/additional/ns2/root.db b/bin/tests/system/additional/ns2/root.db new file mode 100644 index 0000000..728bdde --- /dev/null +++ b/bin/tests/system/additional/ns2/root.db @@ -0,0 +1,21 @@ +; 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. + +. IN SOA ns2. hostmaster ( 2 8H 2H 4W 1D); +. NS ns2. +ns1. A 10.53.0.1 +ns2. A 10.53.0.2 +rt.example. NS ns1. +naptr.example. NS ns1. +rt2.example. NS ns1. +naptr2.example. NS ns1. +nid.example. NS ns1. + diff --git a/bin/tests/system/additional/ns3/ex.db b/bin/tests/system/additional/ns3/ex.db new file mode 100644 index 0000000..c893a84 --- /dev/null +++ b/bin/tests/system/additional/ns3/ex.db @@ -0,0 +1,16 @@ +; 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. + +$TTL 86400 +@ IN SOA ns1 hostmaster ( 2 8H 2H 4W 1D ); + NS ns1 + NS ns1.ex2. +ns1 A 10.53.0.1 diff --git a/bin/tests/system/additional/ns3/ex2.db b/bin/tests/system/additional/ns3/ex2.db new file mode 100644 index 0000000..f9039cf --- /dev/null +++ b/bin/tests/system/additional/ns3/ex2.db @@ -0,0 +1,15 @@ +; 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. + +$TTL 86400 +@ IN SOA ns1 hostmaster ( 2 8H 2H 4W 1D ); + NS ns1 +ns1 A 10.53.0.1 diff --git a/bin/tests/system/additional/ns3/named.conf.in b/bin/tests/system/additional/ns3/named.conf.in new file mode 100644 index 0000000..2bd01c9 --- /dev/null +++ b/bin/tests/system/additional/ns3/named.conf.in @@ -0,0 +1,42 @@ +/* + * 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. + */ + +controls { /* empty */ }; + +options { + query-source address 10.53.0.3; + notify-source 10.53.0.3; + transfer-source 10.53.0.3; + port @PORT@; + pid-file "named.pid"; + listen-on { 10.53.0.3; }; + listen-on-v6 { none; }; + recursion yes; + dnssec-validation yes; + minimal-responses no; +}; + +zone "." { + type hint; + file "root.hint"; +}; + +zone "ex" { + type primary; + file "ex.db"; +}; + +zone "ex2" { + type primary; + file "ex2.db"; +}; diff --git a/bin/tests/system/additional/ns3/root.hint b/bin/tests/system/additional/ns3/root.hint new file mode 100644 index 0000000..ef6ee6f --- /dev/null +++ b/bin/tests/system/additional/ns3/root.hint @@ -0,0 +1,13 @@ +; 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. + +. NS ns2. +ns2. A 10.53.0.2 diff --git a/bin/tests/system/additional/setup.sh b/bin/tests/system/additional/setup.sh new file mode 100644 index 0000000..2cbc08d --- /dev/null +++ b/bin/tests/system/additional/setup.sh @@ -0,0 +1,19 @@ +#!/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. + +. ../conf.sh + +$SHELL clean.sh +copy_setports ns1/named1.conf.in ns1/named.conf +copy_setports ns2/named.conf.in ns2/named.conf +copy_setports ns3/named.conf.in ns3/named.conf diff --git a/bin/tests/system/additional/tests.sh b/bin/tests/system/additional/tests.sh new file mode 100644 index 0000000..a50004c --- /dev/null +++ b/bin/tests/system/additional/tests.sh @@ -0,0 +1,379 @@ +#!/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 + +DIGOPTS="-p ${PORT}" +RNDCCMD="$RNDC -c ../common/rndc.conf -p ${CONTROLPORT} -s" + +status=0 +n=0 + +dotests() { + n=$((n + 1)) + echo_i "test with RT, single zone (+rec) ($n)" + ret=0 + $DIG $DIGOPTS +rec -t RT rt.rt.example @10.53.0.1 > dig.out.$n || ret=1 + if [ $ret -eq 1 ] ; then + echo_i "failed"; status=$((status+1)) + fi + + n=$((n + 1)) + echo_i "test with RT, two zones (+rec) ($n)" + ret=0 + $DIG $DIGOPTS +rec -t RT rt.rt2.example @10.53.0.1 > dig.out.$n || ret=1 + if [ $ret -eq 1 ] ; then + echo_i "failed"; status=$((status+1)) + fi + + n=$((n + 1)) + echo_i "test with NAPTR, single zone (+rec) ($n)" + ret=0 + $DIG $DIGOPTS +rec -t NAPTR nap.naptr.example @10.53.0.1 > dig.out.$n || ret=1 + if [ $ret -eq 1 ] ; then + echo_i "failed"; status=$((status+1)) + fi + + n=$((n + 1)) + echo_i "test with NAPTR, two zones (+rec) ($n)" + ret=0 + $DIG $DIGOPTS +rec -t NAPTR nap.hang3b.example @10.53.0.1 > dig.out.$n || ret=1 + if [ $ret -eq 1 ] ; then + echo_i "failed"; status=$((status+1)) + fi + + n=$((n + 1)) + echo_i "test with LP (+rec) ($n)" + ret=0 + $DIG $DIGOPTS +rec -t LP nid2.nid.example @10.53.0.1 > dig.out.$n || ret=1 + case $minimal in + no) + grep -w "NS" dig.out.$n > /dev/null || ret=1 + grep -w "L64" dig.out.$n > /dev/null || ret=1 + grep -w "L32" dig.out.$n > /dev/null || ret=1 + ;; + yes) + grep -w "NS" dig.out.$n > /dev/null && ret=1 + grep -w "L64" dig.out.$n > /dev/null && ret=1 + grep -w "L32" dig.out.$n > /dev/null && ret=1 + ;; + no-auth) + grep -w "NS" dig.out.$n > /dev/null && ret=1 + grep -w "L64" dig.out.$n > /dev/null || ret=1 + grep -w "L32" dig.out.$n > /dev/null || ret=1 + ;; + no-auth-recursive) + grep -w "NS" dig.out.$n > /dev/null && ret=1 + grep -w "L64" dig.out.$n > /dev/null || ret=1 + grep -w "L32" dig.out.$n > /dev/null || ret=1 + ;; + esac + if [ $ret -eq 1 ] ; then + echo_i "failed"; status=$((status+1)) + fi + + n=$((n + 1)) + echo_i "test with NID (+rec) ($n)" + ret=0 + $DIG $DIGOPTS +rec -t NID ns1.nid.example @10.53.0.1 > dig.out.$n || ret=1 + if [ $minimal = no ] ; then + # change && to || when we support NID additional processing + grep -w "L64" dig.out.$n > /dev/null && ret=1 + grep -w "L32" dig.out.$n > /dev/null && ret=1 + else + grep -w "L64" dig.out.$n > /dev/null && ret=1 + grep -w "L32" dig.out.$n > /dev/null && ret=1 + fi + if [ $ret -eq 1 ] ; then + echo_i "failed"; status=$((status+1)) + fi + + n=$((n + 1)) + echo_i "test with NID + LP (+rec) ($n)" + ret=0 + $DIG $DIGOPTS +rec -t NID nid2.nid.example @10.53.0.1 > dig.out.$n || ret=1 + if [ $minimal = no ] ; then + # change && to || when we support NID additional processing + grep -w "LP" dig.out.$n > /dev/null && ret=1 + grep -w "L64" dig.out.$n > /dev/null && ret=1 + grep -w "L32" dig.out.$n > /dev/null && ret=1 + else + grep -w "LP" dig.out.$n > /dev/null && ret=1 + grep -w "L64" dig.out.$n > /dev/null && ret=1 + grep -w "L32" dig.out.$n > /dev/null && ret=1 + fi + if [ $ret -eq 1 ] ; then + echo_i "failed"; status=$((status+1)) + fi + + n=$((n + 1)) + echo_i "test with RT, single zone (+norec) ($n)" + ret=0 + $DIG $DIGOPTS +norec -t RT rt.rt.example @10.53.0.1 > dig.out.$n || ret=1 + if [ $ret -eq 1 ] ; then + echo_i "failed"; status=$((status+1)) + fi + + n=$((n + 1)) + echo_i "test with RT, two zones (+norec) ($n)" + ret=0 + $DIG $DIGOPTS +norec -t RT rt.rt2.example @10.53.0.1 > dig.out.$n || ret=1 + if [ $ret -eq 1 ] ; then + echo_i "failed"; status=$((status+1)) + fi + + n=$((n + 1)) + echo_i "test with NAPTR, single zone (+norec) ($n)" + ret=0 + $DIG $DIGOPTS +norec -t NAPTR nap.naptr.example @10.53.0.1 > dig.out.$n || ret=1 + if [ $ret -eq 1 ] ; then + echo_i "failed"; status=$((status+1)) + fi + + n=$((n + 1)) + echo_i "test with NAPTR, two zones (+norec) ($n)" + ret=0 + $DIG $DIGOPTS +norec -t NAPTR nap.hang3b.example @10.53.0.1 > dig.out.$n || ret=1 + if [ $ret -eq 1 ] ; then + echo_i "failed"; status=$((status+1)) + fi + + n=$((n + 1)) + echo_i "test with LP (+norec) ($n)" + ret=0 + $DIG $DIGOPTS +norec -t LP nid2.nid.example @10.53.0.1 > dig.out.$n || ret=1 + case $minimal in + no) + grep -w "NS" dig.out.$n > /dev/null || ret=1 + grep -w "L64" dig.out.$n > /dev/null || ret=1 + grep -w "L32" dig.out.$n > /dev/null || ret=1 + ;; + yes) + grep -w "NS" dig.out.$n > /dev/null && ret=1 + grep -w "L64" dig.out.$n > /dev/null && ret=1 + grep -w "L32" dig.out.$n > /dev/null && ret=1 + ;; + no-auth) + grep -w "NS" dig.out.$n > /dev/null && ret=1 + grep -w "L64" dig.out.$n > /dev/null || ret=1 + grep -w "L32" dig.out.$n > /dev/null || ret=1 + ;; + no-auth-recursive) + grep -w "NS" dig.out.$n > /dev/null || ret=1 + grep -w "L64" dig.out.$n > /dev/null || ret=1 + grep -w "L32" dig.out.$n > /dev/null || ret=1 + ;; + esac + if [ $ret -eq 1 ] ; then + echo_i "failed"; status=$((status+1)) + fi + + n=$((n + 1)) + echo_i "test with NID (+norec) ($n)" + ret=0 + $DIG $DIGOPTS +norec -t NID ns1.nid.example @10.53.0.1 > dig.out.$n || ret=1 + if [ $minimal = no ] ; then + # change && to || when we support NID additional processing + grep -w "L64" dig.out.$n > /dev/null && ret=1 + grep -w "L32" dig.out.$n > /dev/null && ret=1 + else + grep -w "L64" dig.out.$n > /dev/null && ret=1 + grep -w "L32" dig.out.$n > /dev/null && ret=1 + fi + if [ $ret -eq 1 ] ; then + echo_i "failed"; status=$((status+1)) + fi + + n=$((n + 1)) + echo_i "test with NID + LP (+norec) ($n)" + ret=0 + $DIG $DIGOPTS +norec -t NID nid2.nid.example @10.53.0.1 > dig.out.$n || ret=1 + if [ $minimal = no ] ; then + # change && to || when we support NID additional processing + grep -w "LP" dig.out.$n > /dev/null && ret=1 + grep -w "L64" dig.out.$n > /dev/null && ret=1 + grep -w "L32" dig.out.$n > /dev/null && ret=1 + else + grep -w "LP" dig.out.$n > /dev/null && ret=1 + grep -w "L64" dig.out.$n > /dev/null && ret=1 + grep -w "L32" dig.out.$n > /dev/null && ret=1 + fi + if [ $ret -eq 1 ] ; then + echo_i "failed"; status=$((status+1)) + fi + + n=$((n + 1)) + echo_i "test with NS, root zone ($n)" + ret=0 + $DIG $DIGOPTS -t NS . @10.53.0.1 > dig.out.$n || ret=1 + # Always expect glue for root priming queries, regardless $minimal + grep 'ADDITIONAL: 3' dig.out.$n > /dev/null || ret=1 + if [ $ret -eq 1 ] ; then + echo_i "failed"; status=$((status+1)) + fi + + n=$((n + 1)) + echo_i "test with NS, non-root zone ($n)" + ret=0 + $DIG $DIGOPTS -t NS rt.example @10.53.0.1 > dig.out.$n || ret=1 + case $minimal in + yes) + grep 'ADDITIONAL: 2' dig.out.$n > /dev/null || ret=1 + ;; + no) + grep 'ADDITIONAL: 2' dig.out.$n > /dev/null || ret=1 + ;; + no-auth) + grep 'ADDITIONAL: 2' dig.out.$n > /dev/null || ret=1 + ;; + no-auth-recursive) + grep 'ADDITIONAL: 2' dig.out.$n > /dev/null || ret=1 + ;; + esac + if [ $ret -eq 1 ] ; then + echo_i "failed"; status=$((status+1)) + fi +} + +echo_i "testing with 'minimal-responses yes;'" +minimal=yes +dotests + +echo_i "reconfiguring server: minimal-responses no" +copy_setports ns1/named2.conf.in ns1/named.conf +rndc_reconfig ns1 10.53.0.1 + +echo_i "testing with 'minimal-responses no;'" +minimal=no +dotests + +n=$((n + 1)) +echo_i "testing with 'minimal-any no;' ($n)" +ret=0 +$DIG $DIGOPTS -t ANY www.rt.example @10.53.0.1 > dig.out.$n || ret=1 +grep "ANSWER: 3, AUTHORITY: 2, ADDITIONAL: 2" dig.out.$n > /dev/null || ret=1 +if [ $ret -eq 1 ] ; then + echo_i "failed"; status=$((status+1)) +fi + +echo_i "reconfiguring server: minimal-any yes" +copy_setports ns1/named3.conf.in ns1/named.conf +rndc_reconfig ns1 10.53.0.1 + +n=$((n + 1)) +echo_i "testing with 'minimal-any yes;' over UDP ($n)" +ret=0 +$DIG $DIGOPTS -t ANY +notcp www.rt.example @10.53.0.1 > dig.out.$n || ret=1 +grep "ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1" dig.out.$n > /dev/null || ret=1 +if [ $ret -eq 1 ] ; then + echo_i "failed"; status=$((status+1)) +fi +n=$((n + 1)) + +echo_i "testing with 'minimal-any yes;' over TCP ($n)" +ret=0 +$DIG $DIGOPTS -t ANY +tcp www.rt.example @10.53.0.1 > dig.out.$n || ret=1 +grep "ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1" dig.out.$n > /dev/null || ret=1 +if [ $ret -eq 1 ] ; then + echo_i "failed"; status=$((status+1)) +fi + +n=$((n + 1)) +echo_i "testing with 'minimal-any yes;' over UDP ($n)" +ret=0 +$DIG $DIGOPTS -t ANY +notcp www.rt.example @10.53.0.1 > dig.out.$n || ret=1 +grep "ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1" dig.out.$n > /dev/null || ret=1 +if [ $ret -eq 1 ] ; then + echo_i "failed"; status=$((status+1)) +fi + +echo_i "testing with 'minimal-responses no-auth;'" +minimal=no-auth +dotests + +echo_i "reconfiguring server: minimal-responses no-auth-recursive" +copy_setports ns1/named4.conf.in ns1/named.conf +rndc_reconfig ns1 10.53.0.1 + +echo_i "testing with 'minimal-responses no-auth-recursive;'" +minimal=no-auth-recursive +dotests + +n=$((n + 1)) +echo_i "testing returning TLSA records with MX query ($n)" +ret=0 +$DIG $DIGOPTS -t mx mx.example @10.53.0.1 > dig.out.$n || ret=1 +grep "mx\.example\..*MX.0 mail\.mx\.example" dig.out.$n > /dev/null || ret=1 +grep "mail\.mx\.example\..*A.1\.2\.3\.4" dig.out.$n > /dev/null || ret=1 +grep "_25\._tcp\.mail\.mx\.example\..*TLSA.3 0 1 5B30F9602297D558EB719162C225088184FAA32CA45E1ED15DE58A21 D9FCE383" dig.out.$n > /dev/null || ret=1 +if [ $ret -eq 1 ] ; then + echo_i "failed"; status=$((status+1)) +fi + +n=$((n + 1)) +echo_i "testing returning TLSA records with SRV query ($n)" +ret=0 +$DIG $DIGOPTS -t srv _xmpp-client._tcp.srv.example @10.53.0.1 > dig.out.$n || ret=1 +grep "_xmpp-client\._tcp\.srv\.example\..*SRV.1 0 5222 server\.srv\.example" dig.out.$n > /dev/null || ret=1 +grep "server\.srv\.example\..*A.1\.2\.3\.4" dig.out.$n > /dev/null || ret=1 +grep "_5222\._tcp\.server\.srv\.example\..*TLSA.3 0 1 5B30F9602297D558EB719162C225088184FAA32CA45E1ED15DE58A21 D9FCE383" dig.out.$n > /dev/null || ret=1 +if [ $ret -eq 1 ] ; then + echo_i "failed"; status=$((status+1)) +fi + +echo_i "reconfiguring server: minimal-responses no" +copy_setports ns1/named2.conf.in ns1/named.conf +rndc_reconfig ns1 10.53.0.1 + +n=$((n + 1)) +echo_i "testing NS handling in ANY responses (authoritative) ($n)" +ret=0 +$DIG $DIGOPTS -t ANY rt.example @10.53.0.1 > dig.out.$n || ret=1 +grep "AUTHORITY: 0" dig.out.$n > /dev/null || ret=1 +grep "NS[ ]*ns" dig.out.$n > /dev/null || ret=1 +if [ $ret -eq 1 ] ; then + echo_i "failed"; status=$((status+1)) +fi + +n=$((n + 1)) +echo_i "testing NS handling in ANY responses (recursive) ($n)" +ret=0 +$DIG $DIGOPTS -t ANY rt.example @10.53.0.3 > dig.out.$n || ret=1 +grep "AUTHORITY: 0" dig.out.$n > /dev/null || ret=1 +grep "NS[ ]*ns" dig.out.$n > /dev/null || ret=1 +if [ $ret -eq 1 ] ; then + echo_i "failed"; status=$((status+1)) +fi + +n=$((n + 1)) +echo_i "testing out-of-zone additional data from auth zones (authoritative) ($n)" +ret=0 +$DIG $DIGOPTS -t NS rt.example @10.53.0.1 > dig.out.$n || ret=1 +grep "ADDITIONAL: 2" dig.out.$n > /dev/null || ret=1 +if [ $ret -eq 1 ] ; then + echo_i "failed"; status=$((status+1)) +fi + +n=$((n + 1)) +echo_i "testing out-of-zone additional data from auth zones (recursive) ($n)" +ret=0 +$DIG $DIGOPTS -t NS ex @10.53.0.3 > dig.out.$n || ret=1 +grep "ADDITIONAL: 3" dig.out.$n > /dev/null || ret=1 +if [ $ret -eq 1 ] ; then + echo_i "failed"; status=$((status+1)) +fi + +echo_i "exit status: $status" +[ $status -eq 0 ] || exit 1 diff --git a/bin/tests/system/additional/tests_sh_additional.py b/bin/tests/system/additional/tests_sh_additional.py new file mode 100644 index 0000000..cdc38f4 --- /dev/null +++ b/bin/tests/system/additional/tests_sh_additional.py @@ -0,0 +1,14 @@ +# 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_additional(run_tests_sh): + run_tests_sh() |