Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
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