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/logfileconfig | |
parent | Initial commit. (diff) | |
download | bind9-upstream.tar.xz bind9-upstream.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 'bin/tests/system/logfileconfig')
-rw-r--r-- | bin/tests/system/logfileconfig/clean.sh | 30 | ||||
-rw-r--r-- | bin/tests/system/logfileconfig/ns1/controls.conf.in | 16 | ||||
-rw-r--r-- | bin/tests/system/logfileconfig/ns1/named.dirconf | 43 | ||||
-rw-r--r-- | bin/tests/system/logfileconfig/ns1/named.pipeconf | 43 | ||||
-rw-r--r-- | bin/tests/system/logfileconfig/ns1/named.plain | 51 | ||||
-rw-r--r-- | bin/tests/system/logfileconfig/ns1/named.plainconf | 34 | ||||
-rw-r--r-- | bin/tests/system/logfileconfig/ns1/named.symconf | 43 | ||||
-rw-r--r-- | bin/tests/system/logfileconfig/ns1/named.unlimited | 53 | ||||
-rw-r--r-- | bin/tests/system/logfileconfig/ns1/named.versconf | 53 | ||||
-rw-r--r-- | bin/tests/system/logfileconfig/ns1/rndc.conf.in | 24 | ||||
-rw-r--r-- | bin/tests/system/logfileconfig/ns1/root.db | 25 | ||||
-rw-r--r-- | bin/tests/system/logfileconfig/setup.sh | 19 | ||||
-rw-r--r-- | bin/tests/system/logfileconfig/tests.sh | 364 |
13 files changed, 798 insertions, 0 deletions
diff --git a/bin/tests/system/logfileconfig/clean.sh b/bin/tests/system/logfileconfig/clean.sh new file mode 100644 index 0000000..61d41e4 --- /dev/null +++ b/bin/tests/system/logfileconfig/clean.sh @@ -0,0 +1,30 @@ +#!/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 log file tests +# +rm -f ns1/rndc.conf +rm -f ns1/controls.conf +rm -f ns1/named.conf +rm -f ns1/named.pid ns1/named.run +rm -f ns1/named.memstats ns1/dig.out +rm -f ns1/named_log ns1/named_pipe ns1/named_sym +rm -rf ns1/named_dir +rm -f ns1/named_deflog +rm -f ns*/named.lock +rm -f ns1/query_log +rm -f ns1/rndc.out.test* +rm -f ns1/dig.out.test* +rm -f ns1/named_vers +rm -f ns1/named_vers.* +rm -f ns1/named_unlimited +rm -f ns1/named_unlimited.* diff --git a/bin/tests/system/logfileconfig/ns1/controls.conf.in b/bin/tests/system/logfileconfig/ns1/controls.conf.in new file mode 100644 index 0000000..74084d9 --- /dev/null +++ b/bin/tests/system/logfileconfig/ns1/controls.conf.in @@ -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. + */ + +controls { + inet 127.0.0.1 port @CONTROLPORT@ + allow { 127.0.0.1/32; ::1/128; } + keys { "rndc-key"; }; +}; diff --git a/bin/tests/system/logfileconfig/ns1/named.dirconf b/bin/tests/system/logfileconfig/ns1/named.dirconf new file mode 100644 index 0000000..dcc02d3 --- /dev/null +++ b/bin/tests/system/logfileconfig/ns1/named.dirconf @@ -0,0 +1,43 @@ +/* + * 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; + port @PORT@; + pid-file "named.pid"; + listen-on { 10.53.0.1; }; + listen-on-v6 { none; }; + recursion no; + notify yes; +}; + +logging { + channel default_log { + file "named_dir"; + print-time yes; + }; + category default { default_log; default_debug; }; + category lame-servers { null; }; +}; + +include "controls.conf"; + +key "rndc-key" { + algorithm hmac-sha256; + secret "Am9vCg=="; +}; + +zone "." { + type master; + file "root.db"; +}; diff --git a/bin/tests/system/logfileconfig/ns1/named.pipeconf b/bin/tests/system/logfileconfig/ns1/named.pipeconf new file mode 100644 index 0000000..cc8fe36 --- /dev/null +++ b/bin/tests/system/logfileconfig/ns1/named.pipeconf @@ -0,0 +1,43 @@ +/* + * 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; + port @PORT@; + pid-file "named.pid"; + listen-on { 10.53.0.1; }; + listen-on-v6 { none; }; + recursion no; + notify yes; +}; + +logging { + channel default_log { + file "named_pipe"; + print-time yes; + }; + category default { default_log; default_debug; }; + category lame-servers { null; }; +}; + +include "controls.conf"; + +key "rndc-key" { + algorithm hmac-sha256; + secret "Am9vCg=="; +}; + +zone "." { + type master; + file "root.db"; +}; diff --git a/bin/tests/system/logfileconfig/ns1/named.plain b/bin/tests/system/logfileconfig/ns1/named.plain new file mode 100644 index 0000000..0ef7832 --- /dev/null +++ b/bin/tests/system/logfileconfig/ns1/named.plain @@ -0,0 +1,51 @@ +/* + * 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; + port @PORT@; + pid-file "named.pid"; + listen-on { 10.53.0.1; }; + listen-on-v6 { none; }; + recursion no; + notify yes; +}; + +logging { + channel default_log { + file "named_log"; + print-time yes; + }; + category default { default_log; default_debug; }; + category lame-servers { null; }; + + channel query_log { + file "query_log"; + print-time yes; + buffered yes; + }; + category queries { query_log; }; +}; + +include "controls.conf"; + +key "rndc-key" { + algorithm hmac-sha256; + secret "Am9vCg=="; +}; + + +zone "." { + type master; + file "root.db"; +}; diff --git a/bin/tests/system/logfileconfig/ns1/named.plainconf b/bin/tests/system/logfileconfig/ns1/named.plainconf new file mode 100644 index 0000000..75e0c79 --- /dev/null +++ b/bin/tests/system/logfileconfig/ns1/named.plainconf @@ -0,0 +1,34 @@ +/* + * 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; + port @PORT@; + pid-file "named.pid"; + listen-on { 10.53.0.1; }; + listen-on-v6 { none; }; + recursion no; + notify yes; +}; + +include "controls.conf"; + +key "rndc-key" { + algorithm hmac-sha256; + secret "Am9vCg=="; +}; + +zone "." { + type master; + file "root.db"; +}; diff --git a/bin/tests/system/logfileconfig/ns1/named.symconf b/bin/tests/system/logfileconfig/ns1/named.symconf new file mode 100644 index 0000000..34a0e12 --- /dev/null +++ b/bin/tests/system/logfileconfig/ns1/named.symconf @@ -0,0 +1,43 @@ +/* + * 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; + port @PORT@; + pid-file "named.pid"; + listen-on { 10.53.0.1; }; + listen-on-v6 { none; }; + recursion no; + notify yes; +}; + +logging { + channel default_log { + file "named_sym"; + print-time yes; + }; + category default { default_log; default_debug; }; + category lame-servers { null; }; +}; + +include "controls.conf"; + +key "rndc-key" { + algorithm hmac-sha256; + secret "Am9vCg=="; +}; + +zone "." { + type master; + file "root.db"; +}; diff --git a/bin/tests/system/logfileconfig/ns1/named.unlimited b/bin/tests/system/logfileconfig/ns1/named.unlimited new file mode 100644 index 0000000..cca3982 --- /dev/null +++ b/bin/tests/system/logfileconfig/ns1/named.unlimited @@ -0,0 +1,53 @@ +/* + * 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; + port @PORT@; + pid-file "named.pid"; + listen-on { 10.53.0.1; }; + listen-on-v6 { none; }; + recursion no; + notify yes; +}; + +logging { + channel default_log { + buffered no; + file "named_unlimited" versions unlimited size 1000; + severity debug 100; + print-time yes; + }; + category default { default_log; default_debug; }; + category lame-servers { null; }; + + channel query_log { + file "query_log"; + print-time yes; + buffered yes; + }; + category queries { query_log; }; +}; + +include "controls.conf"; + +key "rndc-key" { + algorithm hmac-sha256; + secret "Am9vCg=="; +}; + + +zone "." { + type master; + file "root.db"; +}; diff --git a/bin/tests/system/logfileconfig/ns1/named.versconf b/bin/tests/system/logfileconfig/ns1/named.versconf new file mode 100644 index 0000000..6e293c7 --- /dev/null +++ b/bin/tests/system/logfileconfig/ns1/named.versconf @@ -0,0 +1,53 @@ +/* + * 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; + port @PORT@; + pid-file "named.pid"; + listen-on { 10.53.0.1; }; + listen-on-v6 { none; }; + recursion no; + notify yes; +}; + +logging { + channel default_log { + buffered no; + file "named_vers" versions 5 size 1000; // really small size + severity debug 100; + print-time yes; + }; + category default { default_log; default_debug; }; + category lame-servers { null; }; + + channel query_log { + file "query_log"; + print-time yes; + buffered yes; + }; + category queries { query_log; }; +}; + +include "controls.conf"; + +key "rndc-key" { + algorithm hmac-sha256; + secret "Am9vCg=="; +}; + + +zone "." { + type master; + file "root.db"; +}; diff --git a/bin/tests/system/logfileconfig/ns1/rndc.conf.in b/bin/tests/system/logfileconfig/ns1/rndc.conf.in new file mode 100644 index 0000000..7e67a24 --- /dev/null +++ b/bin/tests/system/logfileconfig/ns1/rndc.conf.in @@ -0,0 +1,24 @@ +/* + * 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 { + default-server 127.0.0.1; +}; + +server 127.0.0.1 { + key "rndc-key"; + addresses { 127.0.0.1 port @CONTROLPORT@; }; +}; + +key "rndc-key" { + algorithm hmac-sha256; + secret "Am9vCg=="; +}; diff --git a/bin/tests/system/logfileconfig/ns1/root.db b/bin/tests/system/logfileconfig/ns1/root.db new file mode 100644 index 0000000..8aaa4ea --- /dev/null +++ b/bin/tests/system/logfileconfig/ns1/root.db @@ -0,0 +1,25 @@ +; 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 300 +. IN SOA gson.nominum.com. a.root.servers.nil. ( + 2000042100 ; serial + 600 ; refresh + 600 ; retry + 1200 ; expire + 600 ; minimum + ) +. NS a.root-servers.nil. +a.root-servers.nil. A 10.53.0.1 + +example. NS ns2.example. +ns2.example. A 10.53.0.2 + +tsigzone. NS ns2.tsigzone. +ns2.tsigzone. A 10.53.0.2 diff --git a/bin/tests/system/logfileconfig/setup.sh b/bin/tests/system/logfileconfig/setup.sh new file mode 100644 index 0000000..d711288 --- /dev/null +++ b/bin/tests/system/logfileconfig/setup.sh @@ -0,0 +1,19 @@ +#!/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/named.plain ns1/named.conf +copy_setports ns1/rndc.conf.in ns1/rndc.conf +copy_setports ns1/controls.conf.in ns1/controls.conf diff --git a/bin/tests/system/logfileconfig/tests.sh b/bin/tests/system/logfileconfig/tests.sh new file mode 100644 index 0000000..ad63bdd --- /dev/null +++ b/bin/tests/system/logfileconfig/tests.sh @@ -0,0 +1,364 @@ +#!/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 +THISDIR=`pwd` +CONFDIR="ns1" + +PLAINCONF="${THISDIR}/${CONFDIR}/named.plainconf" +PLAINFILE="named_log" +DIRCONF="${THISDIR}/${CONFDIR}/named.dirconf" +DIRFILE="named_dir" +PIPECONF="${THISDIR}/${CONFDIR}/named.pipeconf" +PIPEFILE="named_pipe" +SYMCONF="${THISDIR}/${CONFDIR}/named.symconf" +SYMFILE="named_sym" +VERSCONF="${THISDIR}/${CONFDIR}/named.versconf" +VERSFILE="named_vers" +UNLIMITEDCONF="${THISDIR}/${CONFDIR}/named.unlimited" +UNLIMITEDFILE="named_unlimited" +DLFILE="named_deflog" + +PIDFILE="${THISDIR}/${CONFDIR}/named.pid" +myRNDC="$RNDC -c ${THISDIR}/${CONFDIR}/rndc.conf" +myNAMED="$NAMED -c ${THISDIR}/${CONFDIR}/named.conf -m record,size,mctx -T clienttest -T nosyslog -d 99 -X named.lock -U 4" + +# Test given condition. If true, test again after a second. Used for testing +# filesystem-dependent conditions in order to prevent false negatives caused by +# directory contents not being synchronized immediately after rename() returns. +test_with_retry() { + if test "$@"; then + sleep 1 + if test "$@"; then + return 0 + fi + fi + return 1 +} + +waitforpidfile() { + for _w in 1 2 3 4 5 6 7 8 9 10 + do + test -f $PIDFILE && break + sleep 1 + done +} + +status=0 +n=0 + +cd $CONFDIR + +echo_i "testing log file validity (named -g + only plain files allowed)" + +n=`expr $n + 1` +echo_i "testing plain file (named -g) ($n)" +# First run with a known good config. +echo > $PLAINFILE +copy_setports $PLAINCONF named.conf +$myRNDC reconfig > rndc.out.test$n 2>&1 +grep "reloading configuration failed" named.run > /dev/null 2>&1 +if [ $? -ne 0 ] +then + echo_i "testing plain file succeeded" +else + echo_i "testing plain file failed (unexpected)" + echo_i "exit status: 1" + exit 1 +fi + +# Now try directory, expect failure +n=`expr $n + 1` +echo_i "testing directory as log file (named -g) ($n)" +echo > named.run +rm -rf $DIRFILE +mkdir -p $DIRFILE >/dev/null 2>&1 +if [ $? -eq 0 ] +then + copy_setports $DIRCONF named.conf + echo > named.run + $myRNDC reconfig > rndc.out.test$n 2>&1 + grep "checking logging configuration failed: invalid file" named.run > /dev/null 2>&1 + if [ $? -ne 0 ] + then + echo_i "testing directory as file succeeded (UNEXPECTED)" + echo_i "exit status: 1" + exit 1 + else + echo_i "testing directory as log file failed (expected)" + fi +else + echo_i "skipping directory test (unable to create directory)" +fi + +# Now try pipe file, expect failure +n=`expr $n + 1` +echo_i "testing pipe file as log file (named -g) ($n)" +echo > named.run +rm -f $PIPEFILE +mkfifo $PIPEFILE >/dev/null 2>&1 +if [ $? -eq 0 ] +then + copy_setports $PIPECONF named.conf + echo > named.run + $myRNDC reconfig > rndc.out.test$n 2>&1 + grep "checking logging configuration failed: invalid file" named.run > /dev/null 2>&1 + if [ $? -ne 0 ] + then + echo_i "testing pipe file as log file succeeded (UNEXPECTED)" + echo_i "exit status: 1" + exit 1 + else + echo_i "testing pipe file as log file failed (expected)" + fi +else + echo_i "skipping pipe test (unable to create pipe)" +fi + +# Now try symlink file to plain file, expect success +n=`expr $n + 1` +echo_i "testing symlink to plain file as log file (named -g) ($n)" +# Assume success +echo > named.run +echo > $PLAINFILE +rm -f $SYMFILE $SYMFILE +ln -s $PLAINFILE $SYMFILE >/dev/null 2>&1 +if [ $? -eq 0 ] +then + copy_setports $SYMCONF named.conf + $myRNDC reconfig > rndc.out.test$n 2>&1 + echo > named.run + grep "reloading configuration failed" named.run > /dev/null 2>&1 + if [ $? -ne 0 ] + then + echo_i "testing symlink to plain file succeeded" + else + echo_i "testing symlink to plain file failed (unexpected)" + echo_i "exit status: 1" + exit 1 + fi +else + echo_i "skipping symlink test (unable to create symlink)" +fi +# Stop the server and run through a series of tests with various config +# files while controlling the stop/start of the server. +# Have to stop the stock server because it uses "-g" +# +$PERL ../../stop.pl .. ns1 + +$myNAMED > /dev/null 2>&1 + +if [ $? -ne 0 ] +then + echo_i "failed to start $myNAMED" + echo_i "exit status: $status" + exit $status +fi + +status=0 + +echo_i "testing log file validity (only plain files allowed)" + +n=`expr $n + 1` +echo_i "testing plain file (named -g) ($n)" +# First run with a known good config. +echo > $PLAINFILE +copy_setports $PLAINCONF named.conf +$myRNDC reconfig > rndc.out.test$n 2>&1 +grep "reloading configuration failed" named.run > /dev/null 2>&1 +if [ $? -ne 0 ] +then + echo_i "testing plain file succeeded" +else + echo_i "testing plain file failed (unexpected)" + echo_i "exit status: 1" + exit 1 +fi + +# Now try directory, expect failure +n=`expr $n + 1` +echo_i "testing directory as log file ($n)" +echo > named.run +rm -rf $DIRFILE +mkdir -p $DIRFILE >/dev/null 2>&1 +if [ $? -eq 0 ] +then + copy_setports $DIRCONF named.conf + echo > named.run + $myRNDC reconfig > rndc.out.test$n 2>&1 + grep "configuring logging: invalid file" named.run > /dev/null 2>&1 + if [ $? -ne 0 ] + then + echo_i "testing directory as file succeeded (UNEXPECTED)" + echo_i "exit status: 1" + exit 1 + else + echo_i "testing directory as log file failed (expected)" + fi +else + echo_i "skipping directory test (unable to create directory)" +fi + +# Now try pipe file, expect failure +n=`expr $n + 1` +echo_i "testing pipe file as log file ($n)" +echo > named.run +rm -f $PIPEFILE +mkfifo $PIPEFILE >/dev/null 2>&1 +if [ $? -eq 0 ] +then + copy_setports $PIPECONF named.conf + echo > named.run + $myRNDC reconfig > rndc.out.test$n 2>&1 + grep "configuring logging: invalid file" named.run > /dev/null 2>&1 + if [ $? -ne 0 ] + then + echo_i "testing pipe file as log file succeeded (UNEXPECTED)" + echo_i "exit status: 1" + exit 1 + else + echo_i "testing pipe file as log file failed (expected)" + fi +else + echo_i "skipping pipe test (unable to create pipe)" +fi + +# Now try symlink file to plain file, expect success +n=`expr $n + 1` +echo_i "testing symlink to plain file as log file ($n)" +# Assume success +status=0 +echo > named.run +echo > $PLAINFILE +rm -f $SYMFILE +ln -s $PLAINFILE $SYMFILE >/dev/null 2>&1 +if [ $? -eq 0 ] +then + copy_setports $SYMCONF named.conf + $myRNDC reconfig > rndc.out.test$n 2>&1 + echo > named.run + grep "reloading configuration failed" named.run > /dev/null 2>&1 + if [ $? -ne 0 ] + then + echo_i "testing symlink to plain file succeeded" + else + echo_i "testing symlink to plain file failed (unexpected)" + echo_i "exit status: 1" + exit 1 + fi +else + echo_i "skipping symlink test (unable to create symlink)" +fi + +status=0 + +n=`expr $n + 1` +echo_i "testing default logfile using named -L file ($n)" +# Now stop the server again and test the -L option +rm -f $DLFILE +$PERL ../../stop.pl .. ns1 +if ! test -f $PIDFILE; then + copy_setports $PLAINCONF named.conf + $myNAMED -L $DLFILE > /dev/null 2>&1 + if [ $? -ne 0 ]; then + echo_i "failed to start $myNAMED" + echo_i "exit status: $status" + exit $status + fi + + waitforpidfile + + sleep 1 + if [ -f "$DLFILE" ]; then + echo_i "testing default logfile using named -L succeeded" + else + echo_i "testing default logfile using named -L failed" + echo_i "exit status: 1" + exit 1 + fi +else + echo_i "failed to cleanly stop $myNAMED" + echo_i "exit status: 1" + exit 1 +fi + +echo_i "testing logging functionality" + +n=`expr $n + 1` +echo_i "testing explicit versions ($n)" +copy_setports $VERSCONF named.conf +# a seconds since epoch version number +touch $VERSFILE.1480039317 +t1=`$PERL -e 'print time()."\n";'` +$myRNDC reconfig > rndc.out.test$n 2>&1 +$DIG version.bind txt ch @10.53.0.1 -p ${PORT} > dig.out.test$n +t2=`$PERL -e 'print time()."\n";'` +t=`expr ${t2:-0} - ${t1:-0}` +if test ${t:-1000} -gt 5 +then + echo_i "testing explicit versions failed: cleanup of old entries took too long ($t secs)" + status=`expr $status + 1` +fi +if ! grep "status: NOERROR" dig.out.test$n > /dev/null +then + echo_i "testing explicit versions failed: DiG lookup failed" + status=`expr $status + 1` +fi +if test_with_retry -f $VERSFILE.1480039317 +then + echo_i "testing explicit versions failed: $VERSFILE.1480039317 not removed" + status=`expr $status + 1` +fi +if test_with_retry -f $VERSFILE.5 +then + echo_i "testing explicit versions failed: $VERSFILE.5 exists" + status=`expr $status + 1` +fi +if test_with_retry ! -f $VERSFILE.4 +then + echo_i "testing explicit versions failed: $VERSFILE.4 does not exist" + status=`expr $status + 1` +fi + +n=`expr $n + 1` +echo_i "testing unlimited versions ($n)" +copy_setports $UNLIMITEDCONF named.conf +# a seconds since epoch version number +touch $UNLIMITEDFILE.1480039317 +t1=`$PERL -e 'print time()."\n";'` +$myRNDC reconfig > rndc.out.test$n 2>&1 +$DIG version.bind txt ch @10.53.0.1 -p ${PORT} > dig.out.test$n +t2=`$PERL -e 'print time()."\n";'` +t=`expr ${t2:-0} - ${t1:-0}` +if test ${t:-1000} -gt 5 +then + echo_i "testing unlimited versions failed: took too long ($t secs)" + status=`expr $status + 1` +fi +if ! grep "status: NOERROR" dig.out.test$n > /dev/null +then + echo_i "testing unlimited versions failed: DiG lookup failed" + status=`expr $status + 1` +fi +if test_with_retry ! -f $UNLIMITEDFILE.1480039317 +then + echo_i "testing unlimited versions failed: $UNLIMITEDFILE.1480039317 removed" + status=`expr $status + 1` +fi +if test_with_retry ! -f $UNLIMITEDFILE.4 +then + echo_i "testing unlimited versions failed: $UNLIMITEDFILE.4 does not exist" + status=`expr $status + 1` +fi + +echo_i "exit status: $status" +[ $status -eq 0 ] || exit 1 |