diff options
author | Andrew Dunstan <andrew@dunslane.net> | 2013-10-28 11:45:50 -0400 |
---|---|---|
committer | Andrew Dunstan <andrew@dunslane.net> | 2013-10-28 11:55:57 -0400 |
commit | 9060cb96805e0d3cfe74c0919feb5e2ce1034ffc (patch) | |
tree | f3026361d43cffdf3bdcc44ce10ac2e98a299111 | |
parent | 4da24f12e63313b7dbb6b3e3d0317e04045df636 (diff) |
Work around NetBSD shell issue in pg_upgrade test script.
The NetBSD shell apparently returns non-zero from an unset command if
the variable is already unset. This matters when, as in pg_upgrade's
test.sh, we are working under 'set -e'. To protect against this, we
first set the PG variables to an empty string before unsetting them
completely.
Error found on buildfarm member coypu, solution from Rémi Zara.
-rw-r--r-- | contrib/pg_upgrade/test.sh | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/contrib/pg_upgrade/test.sh b/contrib/pg_upgrade/test.sh index 313701c4f23..3be0304d16f 100644 --- a/contrib/pg_upgrade/test.sh +++ b/contrib/pg_upgrade/test.sh @@ -67,14 +67,20 @@ PGDATA="$BASE_PGDATA.old" export PGDATA rm -rf "$BASE_PGDATA" "$PGDATA" -unset PGDATABASE -unset PGUSER -unset PGSERVICE -unset PGSSLMODE -unset PGREQUIRESSL -unset PGCONNECT_TIMEOUT -unset PGHOST -unset PGHOSTADDR +# Clear out any environment vars that might cause libpq to connect to +# the wrong postmaster (cf pg_regress.c) +# +# Some shells, such as NetBSD's, return non-zero from unset if the variable +# is already unset. Since we are operating under 'set -e', this causes the +# script to fail. To guard against this, set them all to an empty string first. +PGDATABASE=""; unset PGDATABASE +PGUSER=""; unset PGUSER +PGSERVICE=""; unset PGSERVICE +PGSSLMODE="" unset PGSSLMODE +PGREQUIRESSL=""; unset PGREQUIRESSL +PGCONNECT_TIMEOUT=""; unset PGCONNECT_TIMEOUT +PGHOST="" unset PGHOST +PGHOSTADDR=""; unset PGHOSTADDR logdir=$PWD/log rm -rf "$logdir" |