Hi,

In a test I'd like to use wait_for_log() to find a bunch of log messages
emitted in sequence. A reasonable looking pattern for that would be:

        $log_location = -s $node->logfile;

        $log_location = $node->wait_for_log(qr/first-message/, $log_location);
        $log_location = $node->wait_for_log(qr/second-message/, $log_location);

Except that that doesn't work, because what wait_for_log returns is:

                my $log =
                  PostgreSQL::Test::Utils::slurp_file($self->logfile, $offset);

                return $offset + length($log) if ($log =~ m/$regexp/);

Which, afaict, boils down to the current end of the logfile.

Could we instead determine where in the string our regex matched, and return
   $offset + $that_magic_number

Assuming that could be made work, does anybody see a reason not to do that?

Greetings,

Andres Freund


Reply via email to