From: Michał Kępień Date: Tue, 19 Mar 2019 09:26:36 +0000 (+0100) Subject: Correctly invoke stop.pl when start.pl fails X-Git-Tag: v9.15.0~80^2~1 X-Git-Url: http://git.ipfire.org/gitweb/?a=commitdiff_plain;h=4afad2a047a9883e52fd3b7af2947b7917ece2a1;p=thirdparty%2Fbind9.git Correctly invoke stop.pl when start.pl fails MR !1141 broke the way stop.pl is invoked when start.pl fails: - start.pl changes the working directory to $testdir/$server before attempting to start $server, - commit 27ee629e6b583f60fea0ab78fb3ebd0d1d71d9d2 causes the $testdir variable in stop.pl to be determined using the $SYSTEMTESTTOP environment variable, which is set to ".." by all tests.sh scripts, - commit e227815af51c0656e22e5aebfe99e2399106b31c makes start.pl pass $test (the test's name) rather than $testdir (the path to the test's directory) to stop.pl when a given server fails to start. Thus, when a server is restarted from within a tests.sh script and such a restart fails, stop.pl attempts to look for the server directory in a nonexistent location ($testdir/$server/../$test, i.e. $testdir/$test, instead of $testdir/../$test). Fix the issue by changing the working directory before stop.pl is invoked in the scenario described above. --- diff --git a/bin/tests/system/start.pl b/bin/tests/system/start.pl index 30139c7ac39..869c1f0eb29 100755 --- a/bin/tests/system/start.pl +++ b/bin/tests/system/start.pl @@ -204,6 +204,7 @@ sub start_server { print "I:$test:Couldn't start server $command (pid=$child)\n"; print "I:$test:failed\n"; system "kill -9 $child" if ("$child" ne ""); + chdir "$testdir"; system "$PERL $topdir/stop.pl $test"; exit 1; }