Log regression.diffs in 027_stream_regress.pl.
authorThomas Munro <tmunro@postgresql.org>
Sun, 20 Mar 2022 20:31:22 +0000 (09:31 +1300)
committerThomas Munro <tmunro@postgresql.org>
Sun, 20 Mar 2022 20:31:51 +0000 (09:31 +1300)
To help diagnose the reasons for a regression test failure inside this
TAP test, dump the contents of regression.diffs to the log.  While the
CI scripts show it automatically, the build farm client does not.

Reviewed-by: Andrew Dunstan <andrew@dunslane.net>
Discussion: https://postgr.es/m/CA%2BhUKGLsrWbiCcMxBLRBAP6Z%3DykFRHWzdmP9YKujSKoSnEJECQ%40mail.gmail.com

src/test/recovery/t/027_stream_regress.pl

index c40951b7baf3d47df1b5b565df5664398c719ed6..aa972f89584c6bc2f45eba92f1573c581ee374c1 100644 (file)
@@ -53,15 +53,27 @@ my $outputdir = $PostgreSQL::Test::Utils::tmp_check;
 
 # Run the regression tests against the primary.
 my $extra_opts = $ENV{EXTRA_REGRESS_OPTS} || "";
-system_or_bail($ENV{PG_REGRESS} . " $extra_opts " .
-                          "--dlpath=\"$dlpath\" " .
-                          "--bindir= " .
-                          "--host=" . $node_primary->host . " " .
-                          "--port=" . $node_primary->port . " " .
-                          "--schedule=../regress/parallel_schedule " .
-                          "--max-concurrent-tests=20 " .
-                          "--inputdir=../regress " .
-                          "--outputdir=\"$outputdir\"");
+my $rc = system($ENV{PG_REGRESS} . " $extra_opts " .
+                           "--dlpath=\"$dlpath\" " .
+                           "--bindir= " .
+                           "--host=" . $node_primary->host . " " .
+                           "--port=" . $node_primary->port . " " .
+                           "--schedule=../regress/parallel_schedule " .
+                           "--max-concurrent-tests=20 " .
+                           "--inputdir=../regress " .
+                           "--outputdir=\"$outputdir\"");
+if ($rc != 0)
+{
+       # Dump out the regression diffs file, if there is one
+       my $diffs = "$outputdir/regression.diffs";
+       if (-e $diffs)
+       {
+               print "=== dumping $diffs ===\n";
+               print slurp_file($diffs);
+               print "=== EOF ===\n";
+       }
+}
+is($rc, 0, 'regression tests pass');
 
 # Clobber all sequences with their next value, so that we don't have
 # differences between nodes due to caching.