aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Paquier <michael@paquier.xyz>2021-06-03 11:50:56 +0900
committerMichael Paquier <michael@paquier.xyz>2021-06-03 11:50:56 +0900
commit8279f68a1b13d58a0c9869a60081009d8995e4df (patch)
tree67f68446bdc072dc7dafc4410da5e8b736c9d523
parent2955c2be79b35fa369c83fa3b5f44661cb88afa9 (diff)
downloadpostgresql-8279f68a1b13d58a0c9869a60081009d8995e4df.tar.gz
postgresql-8279f68a1b13d58a0c9869a60081009d8995e4df.zip
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
-rw-r--r--src/test/perl/TestLib.pm43
1 files 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);