diff options
author | Michael Paquier | 2023-06-09 02:56:27 +0000 |
---|---|---|
committer | Michael Paquier | 2023-06-09 02:56:27 +0000 |
commit | 392ea0c78fdb6cb92f1af0793f6c2d48526e6fed (patch) | |
tree | 8dde0c244ab62a3c4d61a02c31f1484455266455 /src/test/authentication | |
parent | a83edeaf684a70da02fa2bce8b7e3aefa3f906f5 (diff) |
Refactor routine to find single log content pattern in TAP tests
The same routine to check if a specific pattern can be found in the
server logs was copied over four different test scripts. This refactors
the whole to use a single routine located in PostgreSQL::Test::Cluster,
named log_contains, to grab the contents of the server logs and check
for a specific pattern.
On HEAD, the code previously used assumed that slurp_file() could not
handle an undefined offset, setting it to zero, but slurp_file() does
do an extra fseek() before retrieving the log contents only if an offset
is defined. In two places, the test was retrieving the full log
contents with slurp_file() after calling substr() to apply an offset,
ignoring that slurp_file() would be able to handle that.
Backpatch all the way down to ease the introduction of new tests that
could rely on the new routine.
Author: Vignesh C
Reviewed-by: Andrew Dunstan, Dagfinn Ilmari Mannsåker, Michael Paquier
Discussion: https://postgr.es/m/CALDaNm0YSiLpjCmajwLfidQrFOrLNKPQir7s__PeVvh9U3uoTQ@mail.gmail.com
Backpatch-through: 11
Diffstat (limited to 'src/test/authentication')
-rw-r--r-- | src/test/authentication/t/003_peer.pl | 17 |
1 files changed, 3 insertions, 14 deletions
diff --git a/src/test/authentication/t/003_peer.pl b/src/test/authentication/t/003_peer.pl index 3272e52cae8..d8e49760726 100644 --- a/src/test/authentication/t/003_peer.pl +++ b/src/test/authentication/t/003_peer.pl @@ -69,17 +69,6 @@ sub test_role } } -# Find $pattern in log file of $node. -sub find_in_log -{ - my ($node, $offset, $pattern) = @_; - - my $log = PostgreSQL::Test::Utils::slurp_file($node->logfile, $offset); - return 0 if (length($log) <= 0); - - return $log =~ m/$pattern/; -} - my $node = PostgreSQL::Test::Cluster->new('node'); $node->init; $node->append_conf('postgresql.conf', "log_connections = on\n"); @@ -91,9 +80,9 @@ reset_pg_hba($node, 'peer'); # Check if peer authentication is supported on this platform. my $log_offset = -s $node->logfile; $node->psql('postgres'); -if (find_in_log( - $node, $log_offset, - qr/peer authentication is not supported on this platform/)) +if ($node->log_contains( + qr/peer authentication is not supported on this platform/, + $log_offset)) { plan skip_all => 'peer authentication is not supported on this platform'; } |