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
This commit is contained in:
Michael Paquier 2021-06-03 11:51:05 +09:00
parent 6753a5b7e8
commit 9d66067054
1 changed files with 31 additions and 11 deletions

View File

@ -98,17 +98,37 @@ 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
PGTARGETSESSIONATTRS
PGUSER
PGPORT
PGHOST
PG_COLOR
);
delete @ENV{@envkeys};
$ENV{PGAPPNAME} = basename($0);