]> git.ipfire.org Git - thirdparty/postgresql.git/commitdiff
Fix some failures with connection tests on Windows hosts
authorMichael Paquier <michael@paquier.xyz>
Wed, 7 Apr 2021 21:55:00 +0000 (06:55 +0900)
committerMichael Paquier <michael@paquier.xyz>
Wed, 7 Apr 2021 21:55:00 +0000 (06:55 +0900)
The truncation of the log file, that this set of tests relies on to make
sure that a connection attempt matches with its expected backend log
pattern, fails, as reported by buildfarm member fairywren.  Instead of a
truncation, do a rotation of the log file and restart the node.  This
will ensure that the connection attempt data is unique for each test.

Discussion: https://postgr.es/m/YG05nCI8x8B+Ad3G@paquier.xyz

src/test/perl/PostgresNode.pm

index 598906ad6499956c62bae42e1ecdb9ea1a58fe44..e26b2b3f30e3b5047c5e1b32e9e6ccf3822fe4e3 100644 (file)
@@ -1920,7 +1920,17 @@ sub connect_ok
        if (@log_like or @log_unlike)
        {
                # Don't let previous log entries match for this connection.
-               truncate $self->logfile, 0;
+               # On Windows, the truncation would not work, so rotate the log
+               # file before restarting the server afresh.
+               if ($TestLib::windows_os)
+               {
+                       $self->rotate_logfile;
+                       $self->restart;
+               }
+               else
+               {
+                       truncate $self->logfile, 0;
+               }
        }
 
        # Never prompt for a password, any callers of this routine should
@@ -1994,7 +2004,17 @@ sub connect_fails
        if (@log_like or @log_unlike)
        {
                # Don't let previous log entries match for this connection.
-               truncate $self->logfile, 0;
+               # On Windows, the truncation would not work, so rotate the log
+               # file before restarting the server afresh.
+               if ($TestLib::windows_os)
+               {
+                       $self->rotate_logfile;
+                       $self->restart;
+               }
+               else
+               {
+                       truncate $self->logfile, 0;
+               }
        }
 
        # Never prompt for a password, any callers of this routine should