]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
rewrite logfileconfig system test
authorEvan Hunt <each@isc.org>
Thu, 16 Sep 2021 03:56:55 +0000 (20:56 -0700)
committerEvan Hunt <each@isc.org>
Wed, 13 Oct 2021 15:31:47 +0000 (08:31 -0700)
the logfileconfig system test did not conform to the style of
other tests, and was difficult to read and maintain. it has
been cleaned up and simplifeid in several ways:

- named.args used when appropriate so that named can be started with
  specified command line arguments, instead of having it launched
  directly from tests.sh
- unused root zone removed from named configuration
- an existing directory used instead of using 'mkdir' to create one
- dnssec-validation disabled to stop the server sending unnecessary queries

incidental fix: removed leftover debugging printfs from logconf.c.

21 files changed:
bin/named/logconf.c
bin/named/server.c
bin/tests/system/logfileconfig/clean.sh
bin/tests/system/logfileconfig/named1.args [new file with mode: 0644]
bin/tests/system/logfileconfig/named2.args [new file with mode: 0644]
bin/tests/system/logfileconfig/ns1/controls.conf.in [deleted file]
bin/tests/system/logfileconfig/ns1/named.dirconf.in [moved from bin/tests/system/logfileconfig/ns1/named.dirconf with 82% similarity]
bin/tests/system/logfileconfig/ns1/named.iso8601-utc.in [moved from bin/tests/system/logfileconfig/ns1/named.iso8601-utc with 84% similarity]
bin/tests/system/logfileconfig/ns1/named.iso8601.in [moved from bin/tests/system/logfileconfig/ns1/named.iso8601 with 84% similarity]
bin/tests/system/logfileconfig/ns1/named.pipeconf.in [moved from bin/tests/system/logfileconfig/ns1/named.pipeconf with 84% similarity]
bin/tests/system/logfileconfig/ns1/named.plain.in [moved from bin/tests/system/logfileconfig/ns1/named.plain with 86% similarity]
bin/tests/system/logfileconfig/ns1/named.plainconf.in [moved from bin/tests/system/logfileconfig/ns1/named.plainconf with 81% similarity]
bin/tests/system/logfileconfig/ns1/named.symconf.in [moved from bin/tests/system/logfileconfig/ns1/named.symconf with 84% similarity]
bin/tests/system/logfileconfig/ns1/named.tsconf.in [moved from bin/tests/system/logfileconfig/ns1/named.tsconf with 87% similarity]
bin/tests/system/logfileconfig/ns1/named.unlimited.in [moved from bin/tests/system/logfileconfig/ns1/named.unlimited with 87% similarity]
bin/tests/system/logfileconfig/ns1/named.versconf.in [moved from bin/tests/system/logfileconfig/ns1/named.versconf with 87% similarity]
bin/tests/system/logfileconfig/ns1/rndc.conf.in [deleted file]
bin/tests/system/logfileconfig/ns1/root.db [deleted file]
bin/tests/system/logfileconfig/setup.sh
bin/tests/system/logfileconfig/tests.sh
util/copyrights

index 4aae8ca23900f70b892271bf45dcecda6b6e5590..68dd83773e355798c5df9ceb9e6c444299a91ede 100644 (file)
@@ -299,10 +299,6 @@ channel_fromconf(const cfg_obj_t *channel, isc_logconfig_t *logconfig) {
                                               dest.file.name,
                                               isc_result_totext(result));
                                }
-                               fprintf(stderr,
-                                       "isc_stdio_open '%s' failed: %s\n",
-                                       dest.file.name,
-                                       isc_result_totext(result));
                        } else {
                                (void)isc_stdio_close(fp);
                        }
@@ -312,8 +308,6 @@ channel_fromconf(const cfg_obj_t *channel, isc_logconfig_t *logconfig) {
                        syslog(LOG_ERR, "isc_file_isplainfile '%s' failed: %s",
                               dest.file.name, isc_result_totext(result));
                }
-               fprintf(stderr, "isc_file_isplainfile '%s' failed: %s\n",
-                       dest.file.name, isc_result_totext(result));
        }
 
 done:
index ab853b0b7309d77fff8e306188c0ff73db2bc964..c8e7232da4b9f440179910a8c59786dfbf8624c1 100644 (file)
@@ -9355,8 +9355,8 @@ load_configuration(const char *filename, named_server_t *server,
                logobj = NULL;
                (void)cfg_map_get(config, "logging", &logobj);
                if (logobj != NULL) {
-                       CHECKM(named_logconfig(logc, logobj), "configuring "
-                                                             "logging");
+                       CHECKM(named_logconfig(logc, logobj),
+                              "configuring logging");
                } else {
                        named_log_setdefaultchannels(logc);
                        CHECKM(named_log_setunmatchedcategory(logc),
index dd179a65496f5607f8559d030cfece1246fe262c..2ba3b370f8d22d7e737a8aaa81e7c5f3760ca1b3 100644 (file)
 #
 # 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.args
+rm -f ns1/named.pid ns1/named.run ns1/named.run.prev
 rm -f ns1/named.memstats ns1/dig.out
 rm -f ns1/named_log ns1/named_pipe ns1/named_sym
 rm -rf ns1/named_dir
diff --git a/bin/tests/system/logfileconfig/named1.args b/bin/tests/system/logfileconfig/named1.args
new file mode 100644 (file)
index 0000000..764d4c9
--- /dev/null
@@ -0,0 +1 @@
+-c named.conf -m record -T nosyslog -d 99 -D logfileconfig-ns1 -X named.lock -U 4
diff --git a/bin/tests/system/logfileconfig/named2.args b/bin/tests/system/logfileconfig/named2.args
new file mode 100644 (file)
index 0000000..fb9fe57
--- /dev/null
@@ -0,0 +1 @@
+-c named.conf -m record -T nosyslog -d 99 -D logfileconfig-ns1 -X named.lock -U 4 -L named_deflog
diff --git a/bin/tests/system/logfileconfig/ns1/controls.conf.in b/bin/tests/system/logfileconfig/ns1/controls.conf.in
deleted file mode 100644 (file)
index 74084d9..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-/*
- * 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"; };
-};
similarity index 82%
rename from bin/tests/system/logfileconfig/ns1/named.dirconf
rename to bin/tests/system/logfileconfig/ns1/named.dirconf.in
index e64ca456f30b1c9c6c1deb03bd7257119cdd7099..fe7df471181ce16d7b4d81f012e8758ed0a25dd6 100644 (file)
@@ -17,27 +17,25 @@ options {
        pid-file "named.pid";
        listen-on { 10.53.0.1; };
        listen-on-v6 { none; };
+       dnssec-validation no;
        recursion no;
        notify yes;
 };
 
 logging {
        channel default_log {
-         file "named_dir";
+         file "/tmp";
          print-time yes;
        };
        category default { default_log; default_debug; };
        category lame-servers { null; };
 };
 
-include "controls.conf";
-
-key "rndc-key" {
-       algorithm hmac-sha256;
-       secret "Am9vCg==";
+controls {
+       inet 10.53.0.1 port @CONTROLPORT@ allow { any; } keys { "rndc-key"; };
 };
 
-zone "." {
-       type primary;
-       file "root.db";
+key rndc-key {
+       secret "1234abcd8765";
+       algorithm hmac-sha256;
 };
similarity index 84%
rename from bin/tests/system/logfileconfig/ns1/named.iso8601-utc
rename to bin/tests/system/logfileconfig/ns1/named.iso8601-utc.in
index 186abd1b0b5680ac34480b156cf117ac2732cbce..d900831a9660eb510f53172e0319e5ae3c091903 100644 (file)
@@ -17,6 +17,7 @@ options {
        pid-file "named.pid";
        listen-on { 10.53.0.1; };
        listen-on-v6 { none; };
+       dnssec-validation no;
        recursion no;
        notify yes;
 };
@@ -30,14 +31,11 @@ logging {
        category default { default_log; default_debug; };
 };
 
-include "controls.conf";
-
-key "rndc-key" {
-       algorithm hmac-sha256;
-       secret "Am9vCg==";
+controls {
+       inet 10.53.0.1 port @CONTROLPORT@ allow { any; } keys { "rndc-key"; };
 };
 
-zone "." {
-       type primary;
-       file "root.db";
+key rndc-key {
+       secret "1234abcd8765";
+       algorithm hmac-sha256;
 };
similarity index 84%
rename from bin/tests/system/logfileconfig/ns1/named.iso8601
rename to bin/tests/system/logfileconfig/ns1/named.iso8601.in
index b8ad96c9bf1b95c75280aec8feb195676bd7764d..37e7cf112d2d39a897a071e874dfc6d482edd7fa 100644 (file)
@@ -17,6 +17,7 @@ options {
        pid-file "named.pid";
        listen-on { 10.53.0.1; };
        listen-on-v6 { none; };
+       dnssec-validation no;
        recursion no;
        notify yes;
 };
@@ -30,14 +31,12 @@ logging {
        category default { default_log; default_debug; };
 };
 
-include "controls.conf";
 
-key "rndc-key" {
-       algorithm hmac-sha256;
-       secret "Am9vCg==";
+controls {
+       inet 10.53.0.1 port @CONTROLPORT@ allow { any; } keys { "rndc-key"; };
 };
 
-zone "." {
-       type primary;
-       file "root.db";
+key rndc-key {
+       secret "1234abcd8765";
+       algorithm hmac-sha256;
 };
similarity index 84%
rename from bin/tests/system/logfileconfig/ns1/named.pipeconf
rename to bin/tests/system/logfileconfig/ns1/named.pipeconf.in
index ba48fa9b8e6f8f93eb371ecbb59d9acc2e44449b..7c9fa55f6929cb41be59a42957c63b40350d4545 100644 (file)
@@ -17,6 +17,7 @@ options {
        pid-file "named.pid";
        listen-on { 10.53.0.1; };
        listen-on-v6 { none; };
+       dnssec-validation no;
        recursion no;
        notify yes;
 };
@@ -30,14 +31,11 @@ logging {
        category lame-servers { null; };
 };
 
-include "controls.conf";
-
-key "rndc-key" {
-       algorithm hmac-sha256;
-       secret "Am9vCg==";
+controls {
+       inet 10.53.0.1 port @CONTROLPORT@ allow { any; } keys { "rndc-key"; };
 };
 
-zone "." {
-       type primary;
-       file "root.db";
+key rndc-key {
+       secret "1234abcd8765";
+       algorithm hmac-sha256;
 };
similarity index 86%
rename from bin/tests/system/logfileconfig/ns1/named.plain
rename to bin/tests/system/logfileconfig/ns1/named.plain.in
index fff82940bfcaddc51decd3afdbc3d54a2cb30cb1..181070727fe4744a70a05e6724ea15947e872cd1 100644 (file)
@@ -17,6 +17,7 @@ options {
        pid-file "named.pid";
        listen-on { 10.53.0.1; };
        listen-on-v6 { none; };
+       dnssec-validation no;
        recursion no;
        notify yes;
 };
@@ -37,15 +38,11 @@ logging {
        category queries { query_log; };
 };
 
-include "controls.conf";
-
-key "rndc-key" {
-       algorithm hmac-sha256;
-       secret "Am9vCg==";
+controls {
+       inet 10.53.0.1 port @CONTROLPORT@ allow { any; } keys { "rndc-key"; };
 };
 
-
-zone "." {
-       type primary;
-       file "root.db";
+key rndc-key {
+       secret "1234abcd8765";
+       algorithm hmac-sha256;
 };
similarity index 81%
rename from bin/tests/system/logfileconfig/ns1/named.plainconf
rename to bin/tests/system/logfileconfig/ns1/named.plainconf.in
index 3b6054a3daea812b46a7804b8649b98c6b83798a..b46fde5c56cadbbe4a2c43813110c444e0877298 100644 (file)
@@ -17,18 +17,16 @@ options {
        pid-file "named.pid";
        listen-on { 10.53.0.1; };
        listen-on-v6 { none; };
+       dnssec-validation no;
        recursion no;
        notify yes;
 };
 
-include "controls.conf";
-
-key "rndc-key" {
-       algorithm hmac-sha256;
-       secret "Am9vCg==";
+controls {
+       inet 10.53.0.1 port @CONTROLPORT@ allow { any; } keys { "rndc-key"; };
 };
 
-zone "." {
-       type primary;
-       file "root.db";
+key rndc-key {
+       secret "1234abcd8765";
+       algorithm hmac-sha256;
 };
similarity index 84%
rename from bin/tests/system/logfileconfig/ns1/named.symconf
rename to bin/tests/system/logfileconfig/ns1/named.symconf.in
index 32b0d1507db000563f5e7b778a74887e6ed546e8..2d1e4a98a75cbe540e8702dedde15b4be0a65781 100644 (file)
@@ -17,6 +17,7 @@ options {
        pid-file "named.pid";
        listen-on { 10.53.0.1; };
        listen-on-v6 { none; };
+       dnssec-validation no;
        recursion no;
        notify yes;
 };
@@ -30,14 +31,11 @@ logging {
        category lame-servers { null; };
 };
 
-include "controls.conf";
-
-key "rndc-key" {
-       algorithm hmac-sha256;
-       secret "Am9vCg==";
+controls {
+       inet 10.53.0.1 port @CONTROLPORT@ allow { any; } keys { "rndc-key"; };
 };
 
-zone "." {
-       type primary;
-       file "root.db";
+key rndc-key {
+       secret "1234abcd8765";
+       algorithm hmac-sha256;
 };
similarity index 87%
rename from bin/tests/system/logfileconfig/ns1/named.tsconf
rename to bin/tests/system/logfileconfig/ns1/named.tsconf.in
index 55df326abbb69975ae0ce2e4087bb71df4897749..e7513edb4929d559f3ef7118049671d1ef93eeee 100644 (file)
@@ -17,6 +17,7 @@ options {
        pid-file "named.pid";
        listen-on { 10.53.0.1; };
        listen-on-v6 { none; };
+       dnssec-validation no;
        recursion no;
        notify yes;
 };
@@ -39,15 +40,11 @@ logging {
        category queries { query_log; };
 };
 
-include "controls.conf";
-
-key "rndc-key" {
-       algorithm hmac-sha256;
-       secret "Am9vCg==";
+controls {
+       inet 10.53.0.1 port @CONTROLPORT@ allow { any; } keys { "rndc-key"; };
 };
 
-
-zone "." {
-       type primary;
-       file "root.db";
+key rndc-key {
+       secret "1234abcd8765";
+       algorithm hmac-sha256;
 };
similarity index 87%
rename from bin/tests/system/logfileconfig/ns1/named.unlimited
rename to bin/tests/system/logfileconfig/ns1/named.unlimited.in
index 61080538f1b8f508a5d71647ee072ab77cbc9ad3..0e1a788e15c920a4db6165ad2de46e890919dc34 100644 (file)
@@ -17,6 +17,7 @@ options {
        pid-file "named.pid";
        listen-on { 10.53.0.1; };
        listen-on-v6 { none; };
+       dnssec-validation no;
        recursion no;
        notify yes;
 };
@@ -39,15 +40,11 @@ logging {
        category queries { query_log; };
 };
 
-include "controls.conf";
-
-key "rndc-key" {
-       algorithm hmac-sha256;
-       secret "Am9vCg==";
+controls {
+       inet 10.53.0.1 port @CONTROLPORT@ allow { any; } keys { "rndc-key"; };
 };
 
-
-zone "." {
-       type primary;
-       file "root.db";
+key rndc-key {
+       secret "1234abcd8765";
+       algorithm hmac-sha256;
 };
similarity index 87%
rename from bin/tests/system/logfileconfig/ns1/named.versconf
rename to bin/tests/system/logfileconfig/ns1/named.versconf.in
index 1310ba09b8931e6dcad2fa0c1d03083d2adb7322..0df547317c1d3b9676e103617d40a010b3412392 100644 (file)
@@ -17,6 +17,7 @@ options {
        pid-file "named.pid";
        listen-on { 10.53.0.1; };
        listen-on-v6 { none; };
+       dnssec-validation no;
        recursion no;
        notify yes;
 };
@@ -39,15 +40,11 @@ logging {
        category queries { query_log; };
 };
 
-include "controls.conf";
-
-key "rndc-key" {
-       algorithm hmac-sha256;
-       secret "Am9vCg==";
+controls {
+       inet 10.53.0.1 port @CONTROLPORT@ allow { any; } keys { "rndc-key"; };
 };
 
-
-zone "." {
-       type primary;
-       file "root.db";
+key rndc-key {
+       secret "1234abcd8765";
+       algorithm hmac-sha256;
 };
diff --git a/bin/tests/system/logfileconfig/ns1/rndc.conf.in b/bin/tests/system/logfileconfig/ns1/rndc.conf.in
deleted file mode 100644 (file)
index 7e67a24..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * 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
deleted file mode 100644 (file)
index 8aaa4ea..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-; 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
index 935e36c5f894fc46daea7c3afedfafda07ddf3da..19b246985ff439a2ac570c3250157498c7bf11cd 100644 (file)
@@ -13,6 +13,4 @@
 
 $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
+copy_setports ns1/named.plain.in ns1/named.conf
index 191680873ed2b4c764d7c8af3e7e0f085ad1fb36..5fce3f9813f0c61369a800e1aea8f6bab8d4cbdb 100644 (file)
 # information regarding copyright ownership.
 
 . ../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"
-TSCONF="${THISDIR}/${CONFDIR}/named.tsconf"
-TSFILE="named_ts"
-UNLIMITEDCONF="${THISDIR}/${CONFDIR}/named.unlimited"
-UNLIMITEDFILE="named_unlimited"
-ISOCONF="${THISDIR}/${CONFDIR}/named.iso8601"
-ISOFILE="named_iso8601"
-ISOCONFUTC="${THISDIR}/${CONFDIR}/named.iso8601-utc"
-ISOUTCFILE="named_iso8601_utc"
-DLFILE="named_deflog"
-
-PIDFILE="${THISDIR}/${CONFDIR}/named.pid"
-myRNDC="$RNDC -c ${THISDIR}/${CONFDIR}/rndc.conf"
-myNAMED="$NAMED -c ${THISDIR}/${CONFDIR}/named.conf -m record -T nosyslog -d 99 -D logfileconfig-ns1 -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
@@ -50,366 +24,202 @@ test_with_retry() {
        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
+n=$((n+1))
+echo_i "testing log file validity (only plain files allowed) ($n)"
+ret=0
+cat /dev/null > ns1/named_log
+copy_setports ns1/named.plainconf.in ns1/named.conf
+nextpart ns1/named.run > /dev/null
+rndc_reconfig ns1 10.53.0.1 > rndc.out.test$n
+wait_for_log 5 "reloading configuration succeeded" ns1/named.run || ret=1
+if [ "$ret" -ne 0 ]; then echo_i "failed"; fi
+status=$((status+ret))
 
 # 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
+n=$((n+1))
+echo_i "testing directory as log file ($n)"
+ret=0
+nextpart ns1/named.run > /dev/null
+copy_setports ns1/named.dirconf.in ns1/named.conf
+rndc_reconfig ns1 10.53.0.1 > rndc.out.test$n
+wait_for_log 5 "reloading configuration failed: invalid file" ns1/named.run || ret=1
+if [ "$ret" -ne 0 ]; then echo_i "failed"; fi
+status=$((status+ret))
 
 # 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
+n=$((n+1))
+echo_i "testing pipe file as log file ($n)"
+ret=0
+nextpart ns1/named.run > /dev/null
+rm -f ns1/named_pipe
+if mkfifo ns1/named_pipe >/dev/null 2>&1; then
+    copy_setports ns1/named.pipeconf.in ns1/named.conf
+    rndc_reconfig ns1 10.53.0.1 > rndc.out.test$n
+    wait_for_log 5 "reloading configuration failed: invalid file" ns1/named.run || ret=1
+    if [ "$ret" -ne 0 ]; then echo_i "failed"; fi
+    status=$((status+ret))
 else
-       echo_i "skipping pipe test (unable to create pipe)"
+    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
+n=$((n+1))
+echo_i "testing symlink to plain file as log file ($n)"
+ret=0
+rm -f ns1/named_log ns1/named_sym
+touch ns1/named_log
+if ln -s $(pwd)/ns1/named_log $(pwd)/ns1/named_sym >/dev/null 2>&1; then
+    nextpart ns1/named.run > /dev/null
+    copy_setports ns1/named.symconf.in ns1/named.conf
+    rndc_reconfig ns1 10.53.0.1 > rndc.out.test$n
+    wait_for_log 5 "reloading configuration succeeded" ns1/named.run || ret=1
+    if [ "$ret" -ne 0 ]; then echo_i "failed"; fi
+    status=$((status+ret))
 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 logfileconfig 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 "repeat previous tests without named -g"
+copy_setports ns1/named.plain.in ns1/named.conf
+$PERL ../stop.pl --use-rndc --port ${CONTROLPORT} logfileconfig ns1
+cp named1.args ns1/named.args
+start_server --noclean --restart --port ${PORT} logfileconfig ns1
 
-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
+n=$((n+1))
+echo_i "testing log file validity (only plain files allowed) ($n)"
+ret=0
+cat /dev/null > ns1/named_log
+copy_setports ns1/named.plainconf.in ns1/named.conf
+nextpart ns1/named.run > /dev/null
+rndc_reconfig ns1 10.53.0.1 > rndc.out.test$n
+wait_for_log 5 "reloading configuration succeeded" ns1/named.run || ret=1
+if [ "$ret" -ne 0 ]; then echo_i "failed"; fi
+status=$((status+ret))
 
 # Now try directory, expect failure
-n=`expr $n + 1`
+n=$((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
+ret=0
+nextpart ns1/named.run > /dev/null
+copy_setports ns1/named.dirconf.in ns1/named.conf
+rndc_reconfig ns1 10.53.0.1 > rndc.out.test$n
+wait_for_log 5 "reloading configuration failed: invalid file" ns1/named.run || ret=1
+if [ "$ret" -ne 0 ]; then echo_i "failed"; fi
+status=$((status+ret))
 
 # Now try pipe file, expect failure
-n=`expr $n + 1`
+n=$((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
+ret=0
+nextpart ns1/named.run > /dev/null
+rm -f ns1/named_pipe
+if mkfifo ns1/named_pipe >/dev/null 2>&1; then
+    copy_setports ns1/named.pipeconf.in ns1/named.conf
+    rndc_reconfig ns1 10.53.0.1 > rndc.out.test$n
+    wait_for_log 5 "reloading configuration failed: invalid file" ns1/named.run || ret=1
+    if [ "$ret" -ne 0 ]; then echo_i "failed"; fi
+    status=$((status+ret))
 else
-       echo_i "skipping pipe test (unable to create pipe)"
+    echo_i "skipping pipe test (unable to create pipe)"
 fi
 
 # Now try symlink file to plain file, expect success
-n=`expr $n + 1`
+n=$((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
+ret=0
+rm -f ns1/named_log ns1/named_sym
+touch ns1/named_log
+if ln -s $(pwd)/ns1/named_log $(pwd)/ns1/named_sym >/dev/null 2>&1; then
+    nextpart ns1/named.run > /dev/null
+    copy_setports ns1/named.symconf.in ns1/named.conf
+    rndc_reconfig ns1 10.53.0.1 > rndc.out.test$n
+    wait_for_log 5 "reloading configuration succeeded" ns1/named.run || ret=1
+    if [ "$ret" -ne 0 ]; then echo_i "failed"; fi
+    status=$((status+ret))
 else
        echo_i "skipping symlink test (unable to create symlink)"
 fi
 
-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 logfileconfig 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`
+n=$((n+1))
+ret=0
 echo_i "testing iso8601 timestamp ($n)"
-copy_setports $ISOCONF named.conf
-$myRNDC reconfig > rndc.out.test$n 2>&1
-if grep '^....-..-..T..:..:..\.... ' $ISOFILE > /dev/null; then
-       echo_i "testing iso8601 timestamp succeeded"
-else
-       echo_i "testing iso8601 timestamp failed"
-       status=`expr $status + 1`
-fi
+copy_setports ns1/named.iso8601.in ns1/named.conf
+rndc_reconfig ns1 10.53.0.1 > rndc.out.test$n
+grep '^....-..-..T..:..:..\.... ' ns1/named_iso8601 > /dev/null || ret=1
+if [ "$ret" -ne 0 ]; then echo_i "failed"; fi
+status=$((status+ret))
 
-n=`expr $n + 1`
+n=$((n+1))
 echo_i "testing iso8601-utc timestamp ($n)"
-copy_setports $ISOCONFUTC named.conf
-$myRNDC reconfig > rndc.out.test$n 2>&1
-if grep '^....-..-..T..:..:..\....Z' $ISOUTCFILE > /dev/null; then
-       echo_i "testing iso8601-utc timestamp succeeded"
-else
-       echo_i "testing iso8601-utc timestamp failed"
-       status=`expr $status + 1`
-fi
-
-n=`expr $n + 1`
+ret=0
+copy_setports ns1/named.iso8601-utc.in ns1/named.conf
+rndc_reconfig ns1 10.53.0.1 > rndc.out.test$n
+grep '^....-..-..T..:..:..\....Z' ns1/named_iso8601_utc > /dev/null || ret=1
+if [ "$ret" -ne 0 ]; then echo_i "failed"; fi
+status=$((status+ret))
+
+n=$((n+1))
 echo_i "testing explicit versions ($n)"
-copy_setports $VERSCONF named.conf
+ret=0
+copy_setports ns1/named.versconf.in ns1/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
+touch ns1/named_vers.1480039317
+rndc_reconfig ns1 10.53.0.1 > rndc.out.test$n
 $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`
+grep "status: NOERROR" dig.out.test$n > /dev/null || ret=1
+# we are configured to retain five logfiles (a current file
+# and 4 backups). so files with version number 5 or higher
+# should be removed.
+test_with_retry -f ns1/named_vers.1480039317 && ret=1
+test_with_retry -f ns1/named_vers.5 && ret=1
+test_with_retry -f ns1/named_vers.4 || ret=1
+if [ "$ret" -ne 0 ]; then echo_i "failed"; fi
+status=$((status+ret))
+
+n=$((n+1))
 echo_i "testing timestamped versions ($n)"
-copy_setports $TSCONF named.conf
+ret=0
+copy_setports ns1/named.tsconf.in ns1/named.conf
 # a seconds since epoch version number
-touch $TSFILE.2015010112000012
-t1=`$PERL -e 'print time()."\n";'`
-$myRNDC reconfig > rndc.out.test$n 2>&1
+touch ns1/named_ts.1480039317
+rndc_reconfig ns1 10.53.0.1 > rndc.out.test$n
 $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 timestamped 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 timestamped versions failed: DiG lookup failed"
-       status=`expr $status + 1`
-fi
-if test_with_retry -f $TSFILE.1480039317
-then
-       echo_i "testing timestamped versions failed: $TSFILE.1480039317 not removed"
-       status=`expr $status + 1`
-fi
+grep "status: NOERROR" dig.out.test$n > /dev/null || ret=1
+test_with_retry -f ns1/named_ts.1480039317 && ret=1
+if [ "$ret" -ne 0 ]; then echo_i "failed"; fi
+status=$((status+ret))
 
-n=`expr $n + 1`
+n=$((n+1))
 echo_i "testing unlimited versions ($n)"
-copy_setports $UNLIMITEDCONF named.conf
+ret=0
+copy_setports ns1/named.unlimited.in ns1/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
+touch ns1/named_unlimited.1480039317
+rndc_reconfig ns1 10.53.0.1 > rndc.out.test$n
 $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
+grep "status: NOERROR" dig.out.test$n > /dev/null || ret=1
+test_with_retry -f ns1/named_unlimited.1480039317 || ret=1
+test_with_retry -f ns1/named_unlimited.4 || ret=1
+if [ "$ret" -ne 0 ]; then echo_i "failed"; fi
+status=$((status+ret))
+
+n=$((n+1))
+echo_i "testing default logfile using named -L file ($n)"
+ret=0
+$PERL ../stop.pl logfileconfig ns1
+cp named2.args ns1/named.args
+test -f ns1/named.pid && ret=1
+rm -f ns1/named_deflog
+copy_setports ns1/named.plainconf.in ns1/named.conf
+start_server --noclean --restart --port ${PORT} logfileconfig ns1
+[ -f "ns1/named_deflog" ] || ret=1
+if [ "$ret" -ne 0 ]; then echo_i "failed"; fi
+status=$((status+ret))
 
 echo_i "exit status: $status"
 [ $status -eq 0 ] || exit 1
index 68eb1b2d7b3fcaf8526012b600e29a9eeb4c3206..553ad003170051ffb81d808176ce6e6f3b6260e5 100644 (file)
 ./bin/tests/system/limits/setup.sh             SH      2018,2019,2020,2021
 ./bin/tests/system/limits/tests.sh             SH      2000,2001,2004,2007,2011,2012,2016,2018,2019,2020,2021
 ./bin/tests/system/logfileconfig/clean.sh      SH      2011,2012,2014,2015,2016,2017,2018,2019,2020,2021
-./bin/tests/system/logfileconfig/ns1/named.dirconf     X       2011,2013,2016,2018,2019,2020,2021
-./bin/tests/system/logfileconfig/ns1/named.iso8601     X       2016,2018,2019,2020,2021
-./bin/tests/system/logfileconfig/ns1/named.iso8601-utc X       2016,2018,2019,2020,2021
-./bin/tests/system/logfileconfig/ns1/named.pipeconf    X       2011,2013,2016,2018,2019,2020,2021
-./bin/tests/system/logfileconfig/ns1/named.plain       X       2011,2013,2014,2016,2018,2019,2020
-./bin/tests/system/logfileconfig/ns1/named.plainconf   X       2014,2016,2018,2019,2020,2021
-./bin/tests/system/logfileconfig/ns1/named.symconf     X       2011,2013,2016,2018,2019,2020,2021
-./bin/tests/system/logfileconfig/ns1/named.tsconf      X       2017,2018,2019,2020,2021
-./bin/tests/system/logfileconfig/ns1/named.unlimited   X       2016,2018,2019,2020,2021
-./bin/tests/system/logfileconfig/ns1/named.versconf    X       2016,2018,2019,2020,2021
+./bin/tests/system/logfileconfig/named1.args   X       2021
+./bin/tests/system/logfileconfig/named2.args   X       2021
+./bin/tests/system/logfileconfig/ns1/named.dirconf.in  X       2011,2013,2016,2018,2019,2020,2021
+./bin/tests/system/logfileconfig/ns1/named.iso8601-utc.in      X       2016,2018,2019,2020,2021
+./bin/tests/system/logfileconfig/ns1/named.iso8601.in  X       2016,2018,2019,2020,2021
+./bin/tests/system/logfileconfig/ns1/named.pipeconf.in X       2011,2013,2016,2018,2019,2020,2021
+./bin/tests/system/logfileconfig/ns1/named.plain.in    X       2011,2013,2014,2016,2018,2019,2020
+./bin/tests/system/logfileconfig/ns1/named.plainconf.in        X       2014,2016,2018,2019,2020,2021
+./bin/tests/system/logfileconfig/ns1/named.symconf.in  X       2011,2013,2016,2018,2019,2020,2021
+./bin/tests/system/logfileconfig/ns1/named.tsconf.in   X       2017,2018,2019,2020,2021
+./bin/tests/system/logfileconfig/ns1/named.unlimited.in        X       2016,2018,2019,2020,2021
+./bin/tests/system/logfileconfig/ns1/named.versconf.in X       2016,2018,2019,2020,2021
 ./bin/tests/system/logfileconfig/setup.sh      SH      2011,2012,2014,2016,2018,2019,2020,2021
 ./bin/tests/system/logfileconfig/tests.sh      SH      2011,2012,2013,2014,2016,2017,2018,2019,2020,2021
 ./bin/tests/system/makejournal.c               C       2013,2015,2016,2017,2018,2019,2020,2021