On Sat, Mar 20, 2021 at 05:37:47PM +0900, Michael Paquier wrote: > It seems to me that this would make the tests faster, that the test > would not need to wait for the logging collector and that the code > could just use slurp_file($node->logfile) to get the data it wants to > check for a given pattern without looking at current_logfiles. I also > think that not using truncate() on the logfile generated has the > disadvantage to make the code fuzzy for its verification once we > introduce patterns close to each other, as there could easily be an > overlap. That's one problem that SQL pattern checks had to deal with > in the past. Thoughts?
And, in terms of code, this really simplifies things. Please see the attached that I would like to apply. -- Michael
diff --git a/src/test/kerberos/t/001_auth.pl b/src/test/kerberos/t/001_auth.pl
index 079321bbfc..38e9ef7b1f 100644
--- a/src/test/kerberos/t/001_auth.pl
+++ b/src/test/kerberos/t/001_auth.pl
@@ -20,7 +20,7 @@ use Time::HiRes qw(usleep);
if ($ENV{with_gssapi} eq 'yes')
{
- plan tests => 34;
+ plan tests => 26;
}
else
{
@@ -170,10 +170,7 @@ $node->append_conf(
'postgresql.conf', qq{
listen_addresses = '$hostaddr'
krb_server_keyfile = '$keytab'
-logging_collector = on
log_connections = on
-# these ensure stability of test results:
-log_rotation_age = 0
lc_messages = 'C'
});
$node->start;
@@ -212,29 +209,15 @@ sub test_access
# Verify specified log message is logged in the log file.
if ($expect_log_msg ne '')
{
- my $current_logfiles = slurp_file($node->data_dir . '/current_logfiles');
- note "current_logfiles = $current_logfiles";
- like($current_logfiles, qr|^stderr log/postgresql-.*log$|,
- 'current_logfiles is sane');
-
- my $lfname = $current_logfiles;
- $lfname =~ s/^stderr //;
- chomp $lfname;
-
- # might need to retry if logging collector process is slow...
- my $max_attempts = 180 * 10;
- my $first_logfile;
- for (my $attempts = 0; $attempts < $max_attempts; $attempts++)
- {
- $first_logfile = slurp_file($node->data_dir . '/' . $lfname);
- last if $first_logfile =~ m/\Q$expect_log_msg\E/;
- usleep(100_000);
- }
+ my $first_logfile = slurp_file($node->logfile);
like($first_logfile, qr/\Q$expect_log_msg\E/,
'found expected log file content');
}
+ # Clean up any existing contents in the node's log file so as
+ # future tests don't step on each other's generated contents.
+ truncate $node->logfile, 0;
return;
}
signature.asc
Description: PGP signature
