From b1063d2de644e5fdeb79ae049a9dad5d97c11a8c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20K=C4=99pie=C5=84?= Date: Wed, 26 Jan 2022 15:18:43 +0100 Subject: [PATCH] Retain all named.run files from each test run The bin/tests/system/start.pl script truncates the named.run file for a given named instance unless it is invoked with the --restart command-line option. Ever since Python-based tests were introduced, bin/tests/system/run.sh may start named instances used by a given system test multiple times within a single run, causing the bin/tests/system/start.pl script to truncate some of the log files written during the test. This makes troubleshooting certain test failures hard or even impossible. Fix by calling bin/tests/system/start.pl with the --restart command-line option for every start_servers() invocation except the first one. (cherry picked from commit 65abbca79b0c082e610f427c2b78608a4dc8b4bd) --- bin/tests/system/run.sh.in | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/bin/tests/system/run.sh.in b/bin/tests/system/run.sh.in index ee4a9077b2..057cd1f874 100644 --- a/bin/tests/system/run.sh.in +++ b/bin/tests/system/run.sh.in @@ -117,9 +117,13 @@ fi # Determine which ports to use for this system test. eval "$(cd "${srcdir}" && ./get_ports.sh -p "$baseport" -t "$systest")" +# Start all servers used by the system test. Ensure all log files written +# during a system test (tests.sh + potentially multiple *.py scripts) are +# retained for each run by calling start.pl with the --restart command-line +# option for all invocations except the first one. start_servers() { echoinfo "I:$systest:starting servers" - if $restart; then + if $restart || [ "$run" -gt 0 ]; then restart_opt="--restart" fi if ! $PERL start.pl ${restart_opt} --port "$PORT" "$systest"; then