From: Jeremy Harris Date: Sat, 18 Feb 2017 23:07:14 +0000 (+0000) Subject: Testsuite: add option to insert delays, for very slow test platforms X-Git-Tag: exim-4_90_RC1~262 X-Git-Url: https://git.exim.org/users/heiko/exim.git/commitdiff_plain/1a13c13c325cdb119fdf68a6d9ecffcaa2c3756d?ds=inline Testsuite: add option to insert delays, for very slow test platforms An emulated PPC, running as a VM on x86_64, was seeing testcase fails where the trailing few log line were missing in munged output, despite on inspection being present in the spool. Adding a delay before the munge-and-compare made the issue go away. --- diff --git a/test/README b/test/README index 8453d317b..8164cb2c8 100644 --- a/test/README +++ b/test/README @@ -298,6 +298,9 @@ There are some options for the ./runtest script itself: maintainer after making a change to the code that affects a lot of tests (for example, the wording of a message). + -SLOW For very slow hosts that appear to have Heisenbugs, delay before + comparing output files from a testcase + The options for ./runtest must be given first (but after the name of the binary, if present). Any further options, that is, items on the command line that start with a hyphen, are passed to the Exim binary when it is run as part diff --git a/test/runtest b/test/runtest index d117751c4..b82b6b98c 100755 --- a/test/runtest +++ b/test/runtest @@ -61,6 +61,7 @@ my $more = 'less -XF'; my $optargs = ''; my $save_output = 0; my $server_opts = ''; +my $slow = 0; my $valgrind = 0; my $have_ipv4 = 1; @@ -2550,6 +2551,7 @@ while (@ARGV > 0 && $ARGV[0] =~ /^-/) if ($arg eq "-NOIPV4") { $have_ipv4 = 0; next; } if ($arg eq "-NOIPV6") { $have_ipv6 = 0; next; } if ($arg eq "-KEEP") { $save_output = 1; next; } + if ($arg eq "-SLOW") { $slow = 1; next; } if ($arg eq "-VALGRIND") { $valgrind = 1; next; } if ($arg =~ /^-FLAVOU?R$/) { $flavour = shift; next; } } @@ -3997,6 +3999,7 @@ foreach $test (@test_list) if ($docheck) { + sleep 1 if $slow; my $rc = check_output($TEST_STATE->{munge}); log_test($log_summary_filename, $testno, 'P') if ($rc == 0); if ($rc < 2)