From 9d660670541ccc803e1d48576b4a6d02a19321b0 Mon Sep 17 00:00:00 2001 From: Michael Paquier Date: Thu, 3 Jun 2021 11:51:05 +0900 Subject: [PATCH] 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 | 42 +++++++++++++++++++++++++++++----------- 1 file changed, 31 insertions(+), 11 deletions(-) diff --git a/src/test/perl/TestLib.pm b/src/test/perl/TestLib.pm index fecc6733da..0c1712ab50 100644 --- a/src/test/perl/TestLib.pm +++ b/src/test/perl/TestLib.pm @@ -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);