From cf8bf1e0840eeaadc19b3df0fe2466f0f9b15c4e Mon Sep 17 00:00:00 2001 From: Matthijs Mekking Date: Thu, 6 Apr 2023 09:24:43 +0200 Subject: [PATCH] Add log rotation test with absolute file path Add a test to the logfileconfig system test to test log file rotation when using absolute file paths. (cherry picked from commit d9b1df3b5d23ade36dbf8c251f4fb2fb20556a78) --- bin/tests/system/conf.sh.common | 7 ++- .../logfileconfig/ns1/named.abspathconf.in | 52 +++++++++++++++++++ bin/tests/system/logfileconfig/tests.sh | 28 ++++++++++ 3 files changed, 85 insertions(+), 2 deletions(-) create mode 100644 bin/tests/system/logfileconfig/ns1/named.abspathconf.in diff --git a/bin/tests/system/conf.sh.common b/bin/tests/system/conf.sh.common index 5474332ca5..1f3bb68d3e 100644 --- a/bin/tests/system/conf.sh.common +++ b/bin/tests/system/conf.sh.common @@ -709,9 +709,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 index 0000000000..fdf8a8ace2 --- /dev/null +++ b/bin/tests/system/logfileconfig/ns1/named.abspathconf.in @@ -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; +}; diff --git a/bin/tests/system/logfileconfig/tests.sh b/bin/tests/system/logfileconfig/tests.sh index 8c433b07f7..3abf17540a 100644 --- a/bin/tests/system/logfileconfig/tests.sh +++ b/bin/tests/system/logfileconfig/tests.sh @@ -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