diff options
Diffstat (limited to '')
-rw-r--r-- | bin/tests/system/masterfile/clean.sh | 20 | ||||
-rw-r--r-- | bin/tests/system/masterfile/knowngood.dig.out | 32 | ||||
-rw-r--r-- | bin/tests/system/masterfile/ns1/include.db | 35 | ||||
-rw-r--r-- | bin/tests/system/masterfile/ns1/named.conf.in | 40 | ||||
-rw-r--r-- | bin/tests/system/masterfile/ns1/sub.db | 15 | ||||
-rw-r--r-- | bin/tests/system/masterfile/ns1/ttl1.db | 27 | ||||
-rw-r--r-- | bin/tests/system/masterfile/ns1/ttl2.db | 30 | ||||
-rw-r--r-- | bin/tests/system/masterfile/ns2/example.db | 21 | ||||
-rw-r--r-- | bin/tests/system/masterfile/ns2/named.conf.in | 42 | ||||
-rw-r--r-- | bin/tests/system/masterfile/setup.sh | 18 | ||||
-rw-r--r-- | bin/tests/system/masterfile/tests.sh | 63 | ||||
-rw-r--r-- | bin/tests/system/masterfile/tests_sh_masterfile.py | 14 | ||||
-rw-r--r-- | bin/tests/system/masterfile/zone/inheritownerafterinclude.db | 14 | ||||
-rw-r--r-- | bin/tests/system/masterfile/zone/inheritownerafterinclude.good | 3 | ||||
-rw-r--r-- | bin/tests/system/masterfile/zone/nameservers.db | 12 |
15 files changed, 386 insertions, 0 deletions
diff --git a/bin/tests/system/masterfile/clean.sh b/bin/tests/system/masterfile/clean.sh new file mode 100644 index 0000000..97aa377 --- /dev/null +++ b/bin/tests/system/masterfile/clean.sh @@ -0,0 +1,20 @@ +#!/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. + +rm -f dig.out.* +rm -f */named.memstats +rm -f */named.conf +rm -f */named.run +rm -f ns*/named.lock +rm -f checkzone.out* +rm -f ns*/managed-keys.bind* diff --git a/bin/tests/system/masterfile/knowngood.dig.out b/bin/tests/system/masterfile/knowngood.dig.out new file mode 100644 index 0000000..d4cbac8 --- /dev/null +++ b/bin/tests/system/masterfile/knowngood.dig.out @@ -0,0 +1,32 @@ +include. 300 IN SOA ns.include. hostmaster.include. 1 3600 1800 1814400 3600 +include. 300 IN NS ns.include. +a.include. 300 IN A 10.0.0.1 +a.include. 300 IN A 10.0.0.99 +a.a.include. 300 IN A 10.0.1.1 +b.foo.a.include. 300 IN A 10.0.2.2 +b.include. 300 IN A 10.0.0.2 +a.b.include. 300 IN A 10.0.1.1 +c.b.include. 300 IN A 10.0.0.3 +b.foo.b.include. 300 IN A 10.0.2.2 +ns.include. 300 IN A 127.0.0.1 +include. 300 IN SOA ns.include. hostmaster.include. 1 3600 1800 1814400 3600 +ttl2. 1 IN SOA ns.ttl2. hostmaster.ttl2. 1 3600 1800 1814400 3 +ttl2. 1 IN NS ns.ttl2. +a.ttl2. 1 IN TXT "inherited ttl 1" +b.ttl2. 2 IN TXT "explicit ttl 2" +c.ttl2. 2 IN TXT "inherited ttl 2" +d.ttl2. 3 IN TXT "default ttl 3" +e.ttl2. 2 IN TXT "explicit ttl 2" +f.ttl2. 3 IN TXT "default ttl 3" +ns.ttl2. 1 IN A 10.53.0.1 +ttl2. 1 IN SOA ns.ttl2. hostmaster.ttl2. 1 3600 1800 1814400 3 +ttl2. 1 IN SOA ns.ttl2. hostmaster.ttl2. 1 3600 1800 1814400 3 +ttl2. 1 IN NS ns.ttl2. +a.ttl2. 1 IN TXT "inherited ttl 1" +b.ttl2. 2 IN TXT "explicit ttl 2" +c.ttl2. 2 IN TXT "inherited ttl 2" +d.ttl2. 3 IN TXT "default ttl 3" +e.ttl2. 2 IN TXT "explicit ttl 2" +f.ttl2. 3 IN TXT "default ttl 3" +ns.ttl2. 1 IN A 10.53.0.1 +ttl2. 1 IN SOA ns.ttl2. hostmaster.ttl2. 1 3600 1800 1814400 3 diff --git a/bin/tests/system/masterfile/ns1/include.db b/bin/tests/system/masterfile/ns1/include.db new file mode 100644 index 0000000..149c819 --- /dev/null +++ b/bin/tests/system/masterfile/ns1/include.db @@ -0,0 +1,35 @@ +; 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. + +; Test $INCLUDE current domain name and origin semantics + +$TTL 300 +@ IN SOA ns hostmaster ( + 1 ; serial + 3600 + 1800 + 1814400 + 3600 + ) + NS ns + +ns A 127.0.0.1 + +a A 10.0.0.1 +$INCLUDE sub.db a +; use the current domain name + A 10.0.0.99 +b A 10.0.0.2 +$ORIGIN b +$INCLUDE sub.db +; use the current domain name +; A 10.0.0.99 +c A 10.0.0.3 diff --git a/bin/tests/system/masterfile/ns1/named.conf.in b/bin/tests/system/masterfile/ns1/named.conf.in new file mode 100644 index 0000000..4203aae --- /dev/null +++ b/bin/tests/system/masterfile/ns1/named.conf.in @@ -0,0 +1,40 @@ +/* + * 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; + port @PORT@; + pid-file "named.pid"; + listen-on { 10.53.0.1; }; + listen-on-v6 { none; }; + recursion no; + notify yes; + dnssec-validation no; +}; + +zone "include" { + type primary; + file "include.db"; +}; + +zone "ttl1" { + type primary; + file "ttl1.db"; +}; + +zone "ttl2" { + type primary; + file "ttl2.db"; +}; diff --git a/bin/tests/system/masterfile/ns1/sub.db b/bin/tests/system/masterfile/ns1/sub.db new file mode 100644 index 0000000..7e027b0 --- /dev/null +++ b/bin/tests/system/masterfile/ns1/sub.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. + +a A 10.0.1.1 +$ORIGIN foo +b A 10.0.2.2 + diff --git a/bin/tests/system/masterfile/ns1/ttl1.db b/bin/tests/system/masterfile/ns1/ttl1.db new file mode 100644 index 0000000..56afe9d --- /dev/null +++ b/bin/tests/system/masterfile/ns1/ttl1.db @@ -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. + +@ IN SOA ns hostmaster ( + 1 ; serial + 3600 + 1800 + 1814400 + 3 + ) + NS ns +ns A 10.53.0.1 +a TXT "soa minttl 3" +b 2 TXT "explicit ttl 2" +c TXT "soa minttl 3" +$TTL 1 +d TXT "default ttl 1" +e 4 TXT "explicit ttl 4" +f TXT "default ttl 1" diff --git a/bin/tests/system/masterfile/ns1/ttl2.db b/bin/tests/system/masterfile/ns1/ttl2.db new file mode 100644 index 0000000..778e8d3 --- /dev/null +++ b/bin/tests/system/masterfile/ns1/ttl2.db @@ -0,0 +1,30 @@ +; 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. + +@ 1 IN SOA ns hostmaster ( + 1 ; serial + 3600 + 1800 + 1814400 + 3 + ) + NS ns +ns A 10.53.0.1 +a TXT "inherited ttl 1" +b 2 TXT "explicit ttl 2" +c TXT "inherited ttl 2" +$TTL 3 +d TXT "default ttl 3" +e 2 TXT "explicit ttl 2" +f TXT "default ttl 3" + + + diff --git a/bin/tests/system/masterfile/ns2/example.db b/bin/tests/system/masterfile/ns2/example.db new file mode 100644 index 0000000..414403a --- /dev/null +++ b/bin/tests/system/masterfile/ns2/example.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 300 ; 5 minutes +@ IN SOA mname1. . ( + 2010042407 ; serial + 20 ; refresh (20 seconds) + 20 ; retry (20 seconds) + 1814400 ; expire (3 weeks) + 3600 ; minimum (1 hour) + ) + NS ns2 +ns2 A 10.53.0.2 diff --git a/bin/tests/system/masterfile/ns2/named.conf.in b/bin/tests/system/masterfile/ns2/named.conf.in new file mode 100644 index 0000000..1f4ef91 --- /dev/null +++ b/bin/tests/system/masterfile/ns2/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. + */ + +// NS2 + +options { + query-source address 10.53.0.2; + notify-source 10.53.0.2; + transfer-source 10.53.0.2; + port @PORT@; + pid-file "named.pid"; + listen-on { 10.53.0.2; }; + listen-on-v6 { none; }; + recursion no; + notify yes; + dnssec-validation yes; +}; + +zone "." { + type hint; + file "../../common/root.hint"; +}; + +zone "example" { + type primary; + file "example.db"; +}; + +zone "missing" { + type primary; + file "missing.db"; +}; diff --git a/bin/tests/system/masterfile/setup.sh b/bin/tests/system/masterfile/setup.sh new file mode 100644 index 0000000..46c18c4 --- /dev/null +++ b/bin/tests/system/masterfile/setup.sh @@ -0,0 +1,18 @@ +#!/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/named.conf.in ns1/named.conf +copy_setports ns2/named.conf.in ns2/named.conf diff --git a/bin/tests/system/masterfile/tests.sh b/bin/tests/system/masterfile/tests.sh new file mode 100644 index 0000000..5755088 --- /dev/null +++ b/bin/tests/system/masterfile/tests.sh @@ -0,0 +1,63 @@ +#!/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}" + +status=0 +n=0 + +ret=0 +n=$((n + 1)) +echo_i "test master file \$INCLUDE semantics ($n)" +$DIG $DIGOPTS +nostats +nocmd include. axfr @10.53.0.1 >dig.out.$n + +echo_i "test master file BIND 8 compatibility TTL and \$TTL semantics ($n)" +$DIG $DIGOPTS +nostats +nocmd ttl2. axfr @10.53.0.1 >>dig.out.$n + +echo_i "test of master file RFC1035 TTL and \$TTL semantics ($n)" +$DIG $DIGOPTS +nostats +nocmd ttl2. axfr @10.53.0.1 >>dig.out.$n + +diff dig.out.$n knowngood.dig.out || status=1 +if [ $ret != 0 ]; then echo_i "failed"; fi +status=$((status + ret)) + +ret=0 +n=$((n + 1)) +echo_i "test that the nameserver is running with a missing master file ($n)" +$DIG $DIGOPTS +tcp +noall +answer example soa @10.53.0.2 > dig.out.$n +grep SOA dig.out.$n > /dev/null || ret=1 +if [ $ret != 0 ]; then echo_i "failed"; fi +status=$((status + ret)) + +ret=0 +n=$((n + 1)) +echo_i "test that the nameserver returns SERVFAIL for a missing master file ($n)" +$DIG $DIGOPTS +tcp +all missing soa @10.53.0.2 > dig.out.$n +grep "status: SERVFAIL" dig.out.$n > /dev/null || ret=1 +if [ $ret != 0 ]; then echo_i "failed"; fi +status=$((status + ret)) + +ret=0 +n=$((n + 1)) +echo_i "test owner inheritance after "'$INCLUDE'" ($n)" +$CHECKZONE -Dq example zone/inheritownerafterinclude.db > checkzone.out$n +diff checkzone.out$n zone/inheritownerafterinclude.good || ret=1 +if [ $ret != 0 ]; then echo_i "failed"; fi +status=$((status + ret)) + +echo_i "exit status: $status" +[ $status -eq 0 ] || exit 1 diff --git a/bin/tests/system/masterfile/tests_sh_masterfile.py b/bin/tests/system/masterfile/tests_sh_masterfile.py new file mode 100644 index 0000000..1556892 --- /dev/null +++ b/bin/tests/system/masterfile/tests_sh_masterfile.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_masterfile(run_tests_sh): + run_tests_sh() diff --git a/bin/tests/system/masterfile/zone/inheritownerafterinclude.db b/bin/tests/system/masterfile/zone/inheritownerafterinclude.db new file mode 100644 index 0000000..11b97ea --- /dev/null +++ b/bin/tests/system/masterfile/zone/inheritownerafterinclude.db @@ -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. + +@ 0 IN SOA . . 0 0 0 0 0 +$INCLUDE zone/nameservers.db + IN TXT "this should be at the zone apex" diff --git a/bin/tests/system/masterfile/zone/inheritownerafterinclude.good b/bin/tests/system/masterfile/zone/inheritownerafterinclude.good new file mode 100644 index 0000000..3877ed5 --- /dev/null +++ b/bin/tests/system/masterfile/zone/inheritownerafterinclude.good @@ -0,0 +1,3 @@ +example. 0 IN SOA . . 0 0 0 0 0 +example. 0 IN NS . +example. 0 IN TXT "this should be at the zone apex" diff --git a/bin/tests/system/masterfile/zone/nameservers.db b/bin/tests/system/masterfile/zone/nameservers.db new file mode 100644 index 0000000..f7b6525 --- /dev/null +++ b/bin/tests/system/masterfile/zone/nameservers.db @@ -0,0 +1,12 @@ +; 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 NS . |