Skip to content

Commit af2e67b

Browse files
committed
Cleanup some code related to pgbench log checks in TAP tests
This fixes a couple of problems within the so-said code of this commit subject: - Replace the use of open() with slurp_file(), fixing an issue reported by buildfarm member fairywren whose perl installation keep around CRLF characters, causing the matching patterns for the logs to fail. - Remove the eval block, which is not really necessary. This set of issues has come into light after fixing a different issue with c13585f, and this is wrong since this code has been introduced. Reported-by: Andrew Dunstan, and buildfarm member fairywren Author: Michael Paquier Reviewed-by: Andrew Dunstan Discussion: https://postgr.es/m/0f49303e-7784-b3ee-200b-cbf67be2eb9e@dunslane.net Backpatch-through: 11
1 parent 372a280 commit af2e67b

File tree

1 file changed

+20
-11
lines changed

1 file changed

+20
-11
lines changed

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

Lines changed: 20 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1063,18 +1063,27 @@ sub check_pgbench_logs
10631063
my $log_number = 0;
10641064
for my $log (sort @logs)
10651065
{
1066-
eval {
1067-
open my $fh, '<', $log or die "$@";
1068-
my @contents = <$fh>;
1069-
my $clen = @contents;
1070-
ok( $min <= $clen && $clen <= $max,
1071-
"transaction count for $log ($clen)");
1072-
ok( grep(/$re/, @contents) == $clen,
1073-
"transaction format for $prefix");
1074-
close $fh or die "$@";
1075-
};
1066+
# Check the contents of each log file.
1067+
my $contents_raw = slurp_file($log);
1068+
1069+
my @contents = split(/\n/, $contents_raw);
1070+
my $clen = @contents;
1071+
ok( $min <= $clen && $clen <= $max,
1072+
"transaction count for $log ($clen)");
1073+
my $clen_match = grep(/$re/, @contents);
1074+
ok($clen_match == $clen, "transaction format for $prefix");
1075+
1076+
# Show more information if some logs don't match
1077+
# to help with debugging.
1078+
if ($clen_match != $clen)
1079+
{
1080+
foreach my $log (@contents)
1081+
{
1082+
print "# Log entry not matching: $log\n"
1083+
unless $log =~ /$re/;
1084+
}
1085+
}
10761086
}
1077-
ok(unlink(@logs), "remove log files");
10781087
return;
10791088
}
10801089

0 commit comments

Comments
 (0)