postgres.git / summary / log / commit / refs

commit    8279f68a1b13d58a0c9869a60081009d8995e4df
Author:   Michael Paquier <michael@paquier.xyz>
Date:     Thu Jun 03 02:50:56 2021 +0000
First released in: 14.0, 9.6.23, 10.18, 11.13, 12.8, 13.4

    Ignore more environment variables in TAP tests
    
    Various environment variables were not getting reset in the TAP tests,
    which would cause failures depending on the tests or the environment
    variables involved.  For example, PGSSL{MAX,MIN}PROTOCOLVERSION could
    cause failures in the SSL tests.  Even worse, a junk value of
    PGCLIENTENCODING makes a server startup fail.  The list of variables
    reset is adjusted in each stable branch depending on what is supported.
    
    While on it, simplify a bit the code per a suggestion from Andrew
    Dunstan, using a list of variables instead of doing single deletions.
    
    Reviewed-by: Andrew Dunstan, Daniel Gustafsson
    Discussion: https://postgr.es/m/YLbjjRpucIeZ78VQ@paquier.xyz
    Backpatch-through: 9.6


src/test/perl/TestLib.pm | 43 ++++++++++++++++++++++++++++++++----------- 1 file changed, 32 insertions(+), 11 deletions(-) diff --git a/src/test/perl/TestLib.pm b/src/test/perl/TestLib.pm index d6c3eb87232..47d7f31e94c 100644 --- a/src/test/perl/TestLib.pm +++ b/src/test/perl/TestLib.pm @@ -104,17 +104,38 @@ BEGIN delete $ENV{LC_ALL}; $ENV{LC_MESSAGES} = 'C'; - delete $ENV{PGCONNECT_TIMEOUT}; - delete $ENV{PGDATA}; - delete $ENV{PGDATABASE}; - delete $ENV{PGHOSTADDR}; - delete $ENV{PGREQUIRESSL}; - delete $ENV{PGSERVICE}; - delete $ENV{PGSSLMODE}; - delete $ENV{PGUSER}; - delete $ENV{PGPORT}; - delete $ENV{PGHOST}; - delete $ENV{PG_COLOR}; + my @envkeys = qw ( + PGCHANNELBINDING + PGCLIENTENCODING + PGCONNECT_TIMEOUT + PGDATA + PGDATABASE + PGGSSENCMODE + PGGSSLIB + PGHOSTADDR + PGKRBSRVNAME + PGPASSFILE + PGPASSWORD + PGREQUIREPEER + PGREQUIRESSL + PGSERVICE + PGSERVICEFILE + PGSSLCERT + PGSSLCRL + PGSSLCRLDIR + PGSSLKEY + PGSSLMAXPROTOCOLVERSION + PGSSLMINPROTOCOLVERSION + PGSSLMODE + PGSSLROOTCERT + PGSSLSNI + PGTARGETSESSIONATTRS + PGUSER + PGPORT + PGHOST + PG_COLOR + ); + delete @ENV{@envkeys}; $ENV{PGAPPNAME} = basename($0); [parent: 2955c2be79b3]