Add more debugging information with log checks in TAP tests of pgbench
authorMichael Paquier <michael@paquier.xyz>
Fri, 25 Jun 2021 00:56:44 +0000 (09:56 +0900)
committerMichael Paquier <michael@paquier.xyz>
Fri, 25 Jun 2021 00:56:44 +0000 (09:56 +0900)
fairywren is not happy with the pattern checks introduced by c13585f.
I am not sure if this outlines a bug in pgbench or if the regex patterns
used in the tests are too restrictive for this buildfarm member's
environment.  This adds more debugging information to show the log
entries that do not match with the expected pattern, to help in finding
out what's happening.  That seems like a good addition in the long-term
anyway as that may not be the only issue in this area.

Discussion: https://postgr.es/m/YNUad2HvgW+6eXyo@paquier.xyz

src/bin/pgbench/t/001_pgbench_with_server.pl

index 0cf80aba972f4435cceadea82b31ee126503df1f..ff5b31d4df14be12fb1b8eb32d54ae06cab2f9e4 100644 (file)
@@ -1199,8 +1199,18 @@ sub check_pgbench_logs
            my $clen     = @contents;
            ok( $min <= $clen && $clen <= $max,
                "transaction count for $log ($clen)");
-           ok( grep(/$re/, @contents) == $clen,
-               "transaction format for $prefix");
+           my $clen_match = grep(/$re/, @contents);
+           ok($clen_match == $clen, "transaction format for $prefix");
+           # Show more information if some logs don't match
+           # to help with debugging.
+           if ($clen_match != $clen)
+           {
+               foreach my $log (@contents)
+               {
+                   print "# Log entry not matching: $log\n"
+                     unless $log =~ /$re/;
+               }
+           }
            close $fh or die "$@";
        };
    }