]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Add log rotation test with absolute file path
authorMatthijs Mekking <matthijs@isc.org>
Thu, 6 Apr 2023 07:24:43 +0000 (09:24 +0200)
committerMatthijs Mekking <matthijs@isc.org>
Wed, 3 May 2023 07:12:11 +0000 (09:12 +0200)
Add a test to the logfileconfig system test to test log file rotation
when using absolute file paths.

bin/tests/system/conf.sh.common
bin/tests/system/logfileconfig/ns1/named.abspathconf.in [new file with mode: 0644]
bin/tests/system/logfileconfig/tests.sh

index e4e96d1739e81c8109772920ebc90081a42d7569..118b898e7f77cc82456ef6848b2633a843bbc91f 100644 (file)
@@ -702,9 +702,12 @@ get_named_xfer_stats() {
 #   copy_setports infile outfile
 #
 copy_setports() {
-    sed -e "s/@PORT@/${PORT}/g" \
+    dir=$(echo "$TMPDIR" | sed 's/\//\\\//g')
+
+    sed -e "s/@TMPDIR@/${dir}/g" \
+        -e "s/@PORT@/${PORT}/g" \
         -e "s/@TLSPORT@/${TLSPORT}/g" \
-               -e "s/@HTTPPORT@/${HTTPPORT}/g" \
+        -e "s/@HTTPPORT@/${HTTPPORT}/g" \
         -e "s/@HTTPSPORT@/${HTTPSPORT}/g" \
         -e "s/@EXTRAPORT1@/${EXTRAPORT1}/g" \
         -e "s/@EXTRAPORT2@/${EXTRAPORT2}/g" \
diff --git a/bin/tests/system/logfileconfig/ns1/named.abspathconf.in b/bin/tests/system/logfileconfig/ns1/named.abspathconf.in
new file mode 100644 (file)
index 0000000..fdf8a8a
--- /dev/null
@@ -0,0 +1,52 @@
+/*
+ * 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; };
+       dnssec-validation no;
+       recursion no;
+       notify yes;
+};
+
+logging {
+       channel default_log {
+         buffered no;
+         file "@TMPDIR@/example.log" versions 1 size 1k suffix increment; # 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; };
+};
+
+controls {
+       inet 10.53.0.1 port @CONTROLPORT@ allow { any; } keys { "rndc-key"; };
+};
+
+key rndc-key {
+       secret "1234abcd8765";
+       algorithm hmac-sha256;
+};
index 8c433b07f77cf3a5b917b3236ef6fbca7e9be019..3abf17540adb60976e241d70805381108234e0b3 100644 (file)
@@ -236,6 +236,34 @@ retry_quiet 5 _found2 || ret=1
 if [ "$ret" -ne 0 ]; then echo_i "failed"; fi
 status=$((status+ret))
 
+n=$((n+1))
+echo_i "testing absolute file path versions ($n)"
+ret=0
+copy_setports ns1/named.abspathconf.in ns1/named.conf
+try=0
+while test $try -lt 12
+do
+       touch $TMPDIR/example.log.$try
+       try=`expr $try + 1`
+done
+rndc_reconfig ns1 10.53.0.1 > rndc.out.test$n
+_found2() (
+        $DIG version.bind txt ch @10.53.0.1 -p ${PORT} > dig.out.test$n
+        grep "status: NOERROR" dig.out.test$n > /dev/null || ret=1
+
+       try=1
+       while test $try -lt 12
+       do
+               [ -f $TMPDIR/example.log.$try ] && return 1
+               try=`expr $try + 1`
+       done
+       set -- $TMPDIR/example.log.*
+       [ "$#" -eq 1 ] || return 1
+)
+retry_quiet 5 _found2 || ret=1
+if [ "$ret" -ne 0 ]; then echo_i "failed"; fi
+status=$((status+ret))
+
 n=$((n+1))
 echo_i "testing unlimited versions ($n)"
 ret=0