diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-05 18:37:14 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-05 18:37:14 +0000 |
commit | ea648e70a989cca190cd7403fe892fd2dcc290b4 (patch) | |
tree | e2b6b1c647da68b0d4d66082835e256eb30970e8 /bin/tests/system/additional | |
parent | Initial commit. (diff) | |
download | bind9-ea648e70a989cca190cd7403fe892fd2dcc290b4.tar.xz bind9-ea648e70a989cca190cd7403fe892fd2dcc290b4.zip |
Adding upstream version 1:9.11.5.P4+dfsg.upstream/1%9.11.5.P4+dfsgupstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r-- | bin/tests/system/additional/clean.sh | 20 | ||||
-rw-r--r-- | bin/tests/system/additional/ns1/mx.db | 16 | ||||
-rw-r--r-- | bin/tests/system/additional/ns1/named.args | 2 | ||||
-rw-r--r-- | bin/tests/system/additional/ns1/named1.conf.in | 55 | ||||
-rw-r--r-- | bin/tests/system/additional/ns1/named2.conf.in | 55 | ||||
-rw-r--r-- | bin/tests/system/additional/ns1/named3.conf.in | 56 | ||||
-rw-r--r-- | bin/tests/system/additional/ns1/named4.conf.in | 65 | ||||
-rw-r--r-- | bin/tests/system/additional/ns1/naptr.db | 18 | ||||
-rw-r--r-- | bin/tests/system/additional/ns1/naptr2.db | 18 | ||||
-rw-r--r-- | bin/tests/system/additional/ns1/nid.db | 19 | ||||
-rw-r--r-- | bin/tests/system/additional/ns1/rt.db | 18 | ||||
-rw-r--r-- | bin/tests/system/additional/ns1/rt2.db | 18 | ||||
-rw-r--r-- | bin/tests/system/additional/ns1/srv.db | 16 | ||||
-rw-r--r-- | bin/tests/system/additional/ns3/named.conf.in | 28 | ||||
-rw-r--r-- | bin/tests/system/additional/ns3/root.hint | 11 | ||||
-rw-r--r-- | bin/tests/system/additional/setup.sh | 17 | ||||
-rw-r--r-- | bin/tests/system/additional/tests.sh | 330 |
17 files changed, 762 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..03e55cd --- /dev/null +++ b/bin/tests/system/additional/clean.sh @@ -0,0 +1,20 @@ +#!/bin/sh +# +# Copyright (C) Internet Systems Consortium, Inc. ("ISC") +# +# 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 http://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 diff --git a/bin/tests/system/additional/ns1/mx.db b/bin/tests/system/additional/ns1/mx.db new file mode 100644 index 0000000..32a2b87 --- /dev/null +++ b/bin/tests/system/additional/ns1/mx.db @@ -0,0 +1,16 @@ +; Copyright (C) Internet Systems Consortium, Inc. ("ISC") +; +; 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 http://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..69787f6 --- /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,size,mctx -c named.conf -d 99 -X named.lock -g -T clienttest -n 1 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..dcaf81c --- /dev/null +++ b/bin/tests/system/additional/ns1/named1.conf.in @@ -0,0 +1,55 @@ +/* + * Copyright (C) Internet Systems Consortium, Inc. ("ISC") + * + * 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 http://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; + additional-from-auth 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 "rt.example" { + type master; + file "rt.db"; +}; + +zone "naptr.example" { + type master; + file "naptr.db"; +}; + +zone "rt2.example" { + type master; + file "rt2.db"; +}; + +zone "naptr2.example" { + type master; + file "naptr2.db"; +}; + +zone "nid.example" { + type master; + 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..cd0a15e --- /dev/null +++ b/bin/tests/system/additional/ns1/named2.conf.in @@ -0,0 +1,55 @@ +/* + * Copyright (C) Internet Systems Consortium, Inc. ("ISC") + * + * 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 http://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; + additional-from-auth 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 "rt.example" { + type master; + file "rt.db"; +}; + +zone "naptr.example" { + type master; + file "naptr.db"; +}; + +zone "rt2.example" { + type master; + file "rt2.db"; +}; + +zone "naptr2.example" { + type master; + file "naptr2.db"; +}; + +zone "nid.example" { + type master; + 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..8b5248b --- /dev/null +++ b/bin/tests/system/additional/ns1/named3.conf.in @@ -0,0 +1,56 @@ +/* + * Copyright (C) Internet Systems Consortium, Inc. ("ISC") + * + * 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 http://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; + additional-from-auth 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 "rt.example" { + type master; + file "rt.db"; +}; + +zone "naptr.example" { + type master; + file "naptr.db"; +}; + +zone "rt2.example" { + type master; + file "rt2.db"; +}; + +zone "naptr2.example" { + type master; + file "naptr2.db"; +}; + +zone "nid.example" { + type master; + 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..eb503fe --- /dev/null +++ b/bin/tests/system/additional/ns1/named4.conf.in @@ -0,0 +1,65 @@ +/* + * Copyright (C) Internet Systems Consortium, Inc. ("ISC") + * + * 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 http://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; + additional-from-auth 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 "mx.example" { + type master; + file "mx.db"; +}; + +zone "srv.example" { + type master; + file "srv.db"; +}; + +zone "rt.example" { + type master; + file "rt.db"; +}; + +zone "naptr.example" { + type master; + file "naptr.db"; +}; + +zone "rt2.example" { + type master; + file "rt2.db"; +}; + +zone "naptr2.example" { + type master; + file "naptr2.db"; +}; + +zone "nid.example" { + type master; + 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..d604a3a --- /dev/null +++ b/bin/tests/system/additional/ns1/naptr.db @@ -0,0 +1,18 @@ +; Copyright (C) Internet Systems Consortium, Inc. ("ISC") +; +; 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 http://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 127.0.0.0 + +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..090e9b6 --- /dev/null +++ b/bin/tests/system/additional/ns1/naptr2.db @@ -0,0 +1,18 @@ +; Copyright (C) Internet Systems Consortium, Inc. ("ISC") +; +; 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 http://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 127.0.0.0 + +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..70e4dc8 --- /dev/null +++ b/bin/tests/system/additional/ns1/nid.db @@ -0,0 +1,19 @@ +; Copyright (C) Internet Systems Consortium, Inc. ("ISC") +; +; 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 http://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 127.0.0.0 + +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/rt.db b/bin/tests/system/additional/ns1/rt.db new file mode 100644 index 0000000..57ee400 --- /dev/null +++ b/bin/tests/system/additional/ns1/rt.db @@ -0,0 +1,18 @@ +; Copyright (C) Internet Systems Consortium, Inc. ("ISC") +; +; 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 http://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 127.0.0.0 + +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..73cb9f3 --- /dev/null +++ b/bin/tests/system/additional/ns1/rt2.db @@ -0,0 +1,18 @@ +; Copyright (C) Internet Systems Consortium, Inc. ("ISC") +; +; 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 http://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 127.0.0.0 + +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..bc8d581 --- /dev/null +++ b/bin/tests/system/additional/ns1/srv.db @@ -0,0 +1,16 @@ +; Copyright (C) Internet Systems Consortium, Inc. ("ISC") +; +; 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 http://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/ns3/named.conf.in b/bin/tests/system/additional/ns3/named.conf.in new file mode 100644 index 0000000..f01bd47 --- /dev/null +++ b/bin/tests/system/additional/ns3/named.conf.in @@ -0,0 +1,28 @@ +/* + * Copyright (C) Internet Systems Consortium, Inc. ("ISC") + * + * 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 http://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; +}; + +zone "." { + type hint; + file "root.hint"; +}; diff --git a/bin/tests/system/additional/ns3/root.hint b/bin/tests/system/additional/ns3/root.hint new file mode 100644 index 0000000..c1784c7 --- /dev/null +++ b/bin/tests/system/additional/ns3/root.hint @@ -0,0 +1,11 @@ +; Copyright (C) Internet Systems Consortium, Inc. ("ISC") +; +; 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 http://mozilla.org/MPL/2.0/. +; +; See the COPYRIGHT file distributed with this work for additional +; information regarding copyright ownership. + +. NS ns1. +ns1. A 10.53.0.1 diff --git a/bin/tests/system/additional/setup.sh b/bin/tests/system/additional/setup.sh new file mode 100644 index 0000000..417a8b8 --- /dev/null +++ b/bin/tests/system/additional/setup.sh @@ -0,0 +1,17 @@ +#!/bin/sh +# +# Copyright (C) Internet Systems Consortium, Inc. ("ISC") +# +# 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 http://mozilla.org/MPL/2.0/. +# +# See the COPYRIGHT file distributed with this work for additional +# information regarding copyright ownership. + +SYSTEMTESTTOP=.. +. $SYSTEMTESTTOP/conf.sh + +$SHELL clean.sh +copy_setports ns1/named1.conf.in ns1/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..692af54 --- /dev/null +++ b/bin/tests/system/additional/tests.sh @@ -0,0 +1,330 @@ +#!/bin/sh +# +# Copyright (C) Internet Systems Consortium, Inc. ("ISC") +# +# 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 http://mozilla.org/MPL/2.0/. +# +# See the COPYRIGHT file distributed with this work for additional +# information regarding copyright ownership. + +SYSTEMTESTTOP=.. +. $SYSTEMTESTTOP/conf.sh + +DIGOPTS="-p ${PORT}" +RNDCCMD="$RNDC -c $SYSTEMTESTTOP/common/rndc.conf -p ${CONTROLPORT} -s" + +status=0 +n=0 + +dotests() { + n=`expr $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=1 + fi + + n=`expr $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=1 + fi + + n=`expr $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=1 + fi + + n=`expr $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=1 + fi + + n=`expr $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=1 + fi + + n=`expr $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=1 + fi + + n=`expr $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=1 + fi + + n=`expr $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=1 + fi + + n=`expr $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=1 + fi + + n=`expr $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=1 + fi + + n=`expr $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=1 + fi + + n=`expr $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=1 + fi + + n=`expr $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=1 + fi + + n=`expr $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=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 +$RNDCCMD 10.53.0.1 reconfig 2>&1 | sed 's/^/ns1 /' | cat_i +sleep 2 + +echo_i "testing with 'minimal-responses no;'" +minimal=no +dotests + +n=`expr $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: 1, ADDITIONAL: 2" dig.out.$n > /dev/null || ret=1 +if [ $ret -eq 1 ] ; then + echo_i " failed"; status=1 +fi + +echo_i "reconfiguring server: minimal-any yes" +copy_setports ns1/named3.conf.in ns1/named.conf +$RNDCCMD 10.53.0.1 reconfig 2>&1 | sed 's/^/ns1 /' | cat_i +sleep 2 + +n=`expr $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=1 +fi +n=`expr $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=1 +fi + +n=`expr $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=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 +$RNDCCMD 10.53.0.1 reconfig 2>&1 | sed 's/^/ns1 /' | cat_i +sleep 2 + +echo_i "testing with 'minimal-responses no-auth-recursive;'" +minimal=no-auth-recursive +dotests + +n=`expr $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=1 +fi + +n=`expr $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=1 +fi + +echo_i "reconfiguring server: minimal-responses no" +copy_setports ns1/named2.conf.in ns1/named.conf +$RNDCCMD 10.53.0.1 reconfig 2>&1 | sed 's/^/ns1 /' | cat_i +sleep 2 + +n=`expr $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=1 +fi + +n=`expr $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=1 +fi + +echo_i "exit status: $status" +[ $status -eq 0 ] || exit 1 |