Testsuite: add option to insert delays, for very slow test platforms
authorJeremy Harris <jgh146exb@wizmail.org>
Sat, 18 Feb 2017 23:07:14 +0000 (23:07 +0000)
committerJeremy Harris <jgh146exb@wizmail.org>
Sat, 18 Feb 2017 23:07:14 +0000 (23:07 +0000)
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.

test/README
test/runtest

index 8453d317b27213405cd0011e5d8771a05ccdc31b..8164cb2c8cd43dac26b49f497b23ad9a108f9e9e 100644 (file)
@@ -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
index d117751c4573c0380f92a30c16dc1ac59818395b..b82b6b98ccf4ea5dd88ef733d8431469deb6937b 100755 (executable)
@@ -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)