From 58121f5f6d13834566ae8472b0b34b44115210b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20K=C4=99pie=C5=84?= Date: Fri, 29 Nov 2019 08:47:33 +0100 Subject: [PATCH] Improve portability of the "runtime" system test The "runtime" system test currently fails on Windows because it waits for named to log a message indicating successful startup ("running"), but that never happens since named on Windows fails to open the configuration file as its path includes control characters. Instead of putting control characters in directory names, put them in the value of the -D command line switch passed to named, which is used for identifying an instance of named in a process listing and whose value is completely ignored by named, but still logged. While a similar check using special characters appears to be working fine on Windows for the time being, modify it in the same way to avoid potential future problems on other platforms and make the test cleaner. --- bin/tests/system/runtime/clean.sh | 2 -- .../runtime/{ctrl-char-dir-name => ctrl-chars} | 0 bin/tests/system/runtime/setup.sh | 1 + bin/tests/system/runtime/tests.sh | 13 ++++--------- util/copyrights | 2 +- 5 files changed, 6 insertions(+), 12 deletions(-) rename bin/tests/system/runtime/{ctrl-char-dir-name => ctrl-chars} (100%) diff --git a/bin/tests/system/runtime/clean.sh b/bin/tests/system/runtime/clean.sh index 961857a4c0..4a756b3d38 100644 --- a/bin/tests/system/runtime/clean.sh +++ b/bin/tests/system/runtime/clean.sh @@ -19,5 +19,3 @@ rm -f rndc.out* rm -rf ns2/nope rm -rf ns2/tmp.* rm -f ns*/managed-keys.bind* -rm -rf "ns2/`cat ctrl-char-dir-name`" -rm -rf "ns2/$;" diff --git a/bin/tests/system/runtime/ctrl-char-dir-name b/bin/tests/system/runtime/ctrl-chars similarity index 100% rename from bin/tests/system/runtime/ctrl-char-dir-name rename to bin/tests/system/runtime/ctrl-chars diff --git a/bin/tests/system/runtime/setup.sh b/bin/tests/system/runtime/setup.sh index 55bfd33655..417ba70829 100644 --- a/bin/tests/system/runtime/setup.sh +++ b/bin/tests/system/runtime/setup.sh @@ -22,6 +22,7 @@ copy_setports ns2/named-alt3.conf.in ns2/named-alt3.conf copy_setports ns2/named-alt4.conf.in ns2/named-alt4.conf copy_setports ns2/named-alt5.conf.in ns2/named-alt5.conf copy_setports ns2/named-alt6.conf.in ns2/named-alt6.conf +copy_setports ns2/named-alt7.conf.in ns2/named-alt7.conf mkdir ns2/nope diff --git a/bin/tests/system/runtime/tests.sh b/bin/tests/system/runtime/tests.sh index 9fb45bf85f..f65ad20b85 100644 --- a/bin/tests/system/runtime/tests.sh +++ b/bin/tests/system/runtime/tests.sh @@ -165,10 +165,8 @@ status=$((status+ret)) n=$((n+1)) echo_i "checking that named logs control characters in octal notation ($n)" ret=0 -SPEC_DIR=$(cat ctrl-char-dir-name) -mkdir "ns2/${SPEC_DIR}" -copy_setports ns2/named-alt7.conf.in "ns2/${SPEC_DIR}/named.conf" -(cd ns2 && $NAMED -c "${SPEC_DIR}/named.conf" -d 99 -g > named$n.run 2>&1 &) +INSTANCE_NAME="runtime-ns2-extra-7-$(cat ctrl-chars)" +(cd ns2 && $NAMED -c named-alt7.conf -D "${INSTANCE_NAME}" -d 99 -g > named$n.run 2>&1 &) wait_for_named "running$" ns2/named$n.run || ret=1 grep 'running as.*\\177\\033' ns2/named$n.run > /dev/null || ret=1 kill_named ns2/named.pid || ret=1 @@ -178,10 +176,8 @@ status=$((status+ret)) n=$((n+1)) echo_i "checking that named escapes special characters in the logs ($n)" ret=0 -SPEC_DIR="$;" -mkdir "ns2/${SPEC_DIR}" -copy_setports ns2/named-alt7.conf.in "ns2/${SPEC_DIR}/named.conf" -(cd ns2 && $NAMED -c "${SPEC_DIR}/named.conf" -d 99 -g > named$n.run 2>&1 &) +INSTANCE_NAME="runtime-ns2-extra-8-$;" +(cd ns2 && $NAMED -c named-alt7.conf -D "${INSTANCE_NAME}" -d 99 -g > named$n.run 2>&1 &) wait_for_named "running$" ns2/named$n.run || ret=1 grep 'running as.*\\$\\;' ns2/named$n.run > /dev/null || ret=1 kill_named ns2/named.pid || ret=1 @@ -192,7 +188,6 @@ n=$((n+1)) echo_i "checking that named logs an ellipsis when the command line is larger than 8k bytes ($n)" ret=0 LONG_CMD_LINE=$(cat long-cmd-line) -copy_setports ns2/named-alt7.conf.in "ns2/named-alt7.conf" # shellcheck disable=SC2086 (cd ns2 && $NAMED $LONG_CMD_LINE -c "named-alt7.conf" -g > named$n.run 2>&1 &) wait_for_named "running$" ns2/named$n.run || ret=1 diff --git a/util/copyrights b/util/copyrights index 8460b00ed4..3e87c024f3 100644 --- a/util/copyrights +++ b/util/copyrights @@ -1008,7 +1008,7 @@ ./bin/tests/system/runsequential.sh SH 2018,2019 ./bin/tests/system/runtime/README TXT.BRIEF 2014,2016,2018,2019 ./bin/tests/system/runtime/clean.sh SH 2014,2015,2016,2017,2018,2019 -./bin/tests/system/runtime/ctrl-char-dir-name X 2019 +./bin/tests/system/runtime/ctrl-chars X 2019 ./bin/tests/system/runtime/long-cmd-line X 2019 ./bin/tests/system/runtime/setup.sh SH 2015,2016,2017,2018,2019 ./bin/tests/system/runtime/tests.sh SH 2014,2015,2016,2017,2018,2019