Re: pg_upgrade test writes to source directory

Michael Paquier <michael@paquier.xyz>

From: Michael Paquier <michael@paquier.xyz>
To: Peter Eisentraut <peter.eisentraut@enterprisedb.com>
Cc: pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2022-05-25T07:25:24Z
Lists: pgsql-hackers

Attachments

On Wed, May 25, 2022 at 08:21:26AM +0200, Peter Eisentraut wrote:
> The 002_pg_upgrade.pl test leaves a file delete_old_cluster.sh in the source
> directory.  In vpath builds, there shouldn't be any files written to the
> source directory.
>
> Note that the TAP tests run with the source directory as the current
> directory, so this is the result of pg_upgrade leaving its output files in
> the current directory.

Good catch, thanks.

> It looks like an addition of
> 
>     chdir $ENV{TESTOUTDIR};
> 
> could fix it.  Please check the patch.

I think that you mean TESTDIR, and not TESTOUTDIR?  Doing a chdir at
the beginning of the tests would cause pg_regress to fail as we would
not find anymore the regression schedule in a VPATH build, but it is
possible to chdir before the execution of pg_upgrade, like the
attached.
--
Michael

Commits

  1. Split TESTDIR into TESTLOGDIR and TESTDATADIR

  2. Don't hardcode tmp_check/ as test directory for tap tests

  3. Force run of pg_upgrade in the build directory in its TAP test

  4. Add missing test names in TAP tests of pg_upgrade