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