postgres.git / summary / log / commit / refs

commit    8fd28a7baaccaba89987f9628632e9c39235c6b5
Author:   Michael Paquier <michael@paquier.xyz>
Date:     Tue Dec 03 04:01:43 2019 +0000
First released in: 13.0, 11.7, 12.2

    Fix failures with TAP tests of pg_ctl on Windows
    
    On Windows, all the hosts spawned by the TAP tests bind to 127.0.0.1.
    Hence, if there is a port conflict, starting a cluster would immediately
    fail.  One of the test scripts of pg_ctl initializes a node without
    PostgresNode.pm, using the default port 5432.  This could cause
    unexpected startup failures in the tests if an independent server was up
    and running on the same host (the reverse is also possible, though more
    unlikely).  Fix this issue by assigning properly a free port to the node
    configured, in the same range used as for the other nodes part of the
    tests.
    
    Author: Michael Paquier
    Reviewed-by: Andrew Dunstan
    Discussion: https://postgr.es/m/20191202031444.GC1696@paquier.xyz
    Backpatch-through: 11


src/bin/pg_ctl/t/001_start_stop.pl | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/bin/pg_ctl/t/001_start_stop.pl b/src/bin/pg_ctl/t/001_start_stop.pl index a1143e34519..eb48a3fb83a 100644 --- a/src/bin/pg_ctl/t/001_start_stop.pl +++ b/src/bin/pg_ctl/t/001_start_stop.pl @@ -22,8 +22,10 @@ command_ok([ 'pg_ctl', 'initdb', '-D', "$tempdir/data", '-o', '-N' ], 'pg_ctl initdb'); command_ok([ $ENV{PG_REGRESS}, '--config-auth', "$tempdir/data" ], 'configure authentication'); +my $node_port = get_free_port(); open my $conf, '>>', "$tempdir/data/postgresql.conf"; print $conf "fsync = off\n"; +print $conf "port = $node_port\n"; print $conf TestLib::slurp_file($ENV{TEMP_CONFIG}) if defined $ENV{TEMP_CONFIG}; if (!$windows_os) [parent: 768a401e242d]