diff options
author | Michael Paquier <michael@paquier.xyz> | 2021-06-25 20:15:24 +0900 |
---|---|---|
committer | Michael Paquier <michael@paquier.xyz> | 2021-06-25 20:15:24 +0900 |
commit | 38ff135d9466c35b506b1049fedef73047907be0 (patch) | |
tree | 24f517eaf3caa6ef4d7c0c39d8ec8ae483de6f12 /src | |
parent | 3af10943ce21450e299b3915b9cad47cd90369e9 (diff) | |
download | postgresql-38ff135d9466c35b506b1049fedef73047907be0.tar.gz postgresql-38ff135d9466c35b506b1049fedef73047907be0.zip |
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 c13585fe, 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
Diffstat (limited to 'src')
-rw-r--r-- | src/bin/pgbench/t/001_pgbench_with_server.pl | 37 |
1 files changed, 18 insertions, 19 deletions
diff --git a/src/bin/pgbench/t/001_pgbench_with_server.pl b/src/bin/pgbench/t/001_pgbench_with_server.pl index ff5b31d4df1..781cc08fb17 100644 --- a/src/bin/pgbench/t/001_pgbench_with_server.pl +++ b/src/bin/pgbench/t/001_pgbench_with_server.pl @@ -1193,28 +1193,27 @@ sub check_pgbench_logs my $log_number = 0; for my $log (sort @logs) { - eval { - open my $fh, '<', $log or die "$@"; - my @contents = <$fh>; - my $clen = @contents; - ok( $min <= $clen && $clen <= $max, - "transaction count for $log ($clen)"); - 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) + # Check the contents of each log file. + my $contents_raw = slurp_file($log); + + my @contents = split(/\n/, $contents_raw); + my $clen = @contents; + ok( $min <= $clen && $clen <= $max, + "transaction count for $log ($clen)"); + 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) { - foreach my $log (@contents) - { - print "# Log entry not matching: $log\n" - unless $log =~ /$re/; - } + print "# Log entry not matching: $log\n" + unless $log =~ /$re/; } - close $fh or die "$@"; - }; + } } - ok(unlink(@logs), "remove log files"); return; } |