From: Dan Fandrich Date: Wed, 14 Jun 2023 22:18:36 +0000 (-0700) Subject: runtests: better handle ^C during slow tests X-Git-Tag: curl-8_2_0~73 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=847e42d8683204d5f1ff64fb23b9deb8bf6403f4;p=thirdparty%2Fcurl.git runtests: better handle ^C during slow tests Since the SIGINT handler now just sets a flag that must be checked in the main controller loop, make sure that runs periodically. Rather than blocking on a response from a test runner near the end of the test run, add a short timeout to allow it. --- diff --git a/tests/runtests.pl b/tests/runtests.pl index b1d894d720..83933bd7b1 100755 --- a/tests/runtests.pl +++ b/tests/runtests.pl @@ -2775,10 +2775,10 @@ while () { } # See if a test runner needs attention - # If we could be running more tests, wait just a moment so we can schedule - # a new one shortly. If all runners are busy, wait indefinitely for one to - # finish. - my $runnerwait = scalar(@runnersidle) && scalar(@runtests) ? 0 : undef; + # If we could be running more tests, don't wait so we can schedule a new + # one immediately. If all runners are busy, wait a fraction of a second + # for one to finish so we can still loop around to check the abort flag. + my $runnerwait = scalar(@runnersidle) && scalar(@runtests) ? 0 : 0.5; my $ridready = runnerar_ready($runnerwait); if($ridready) { # This runner is ready to be serviced