mirror of
https://github.com/postgres/postgres.git
synced 2025-06-23 14:01:44 +03:00
Force run of pg_upgrade in the build directory in its TAP test
TAP tests are run from their own directory in the source tree, and in a
VPATH build the execution of the pg_upgrade command was leaving behind a
file in the source tree, that should be left untouched. In order to
avoid this issue, the test moves to PostgreSQL::Test::Utils::tmp_check,
so as any files generated by pg_upgrade do not impact the source tree,
but the build tree. This has as nice side-effect to make unnessary the
presence of such files in pg_upgrade's .gitignore and Makefile. This
strategy is similar to psql's test 010_tab_completion.pl, though the
reasons behind this choice are different.
In passing, fix one misleading test name that was added by 99f6f19
.
Per discussion with Peter Eisentraut, Andrew Dunstan, Tom Lane, Andres
Freund and myself.
Discussion: https://postgr.es/m/f80ace33-11fb-1cd3-20f8-98f51d151088@enterprisedb.com
This commit is contained in:
3
src/bin/pg_upgrade/.gitignore
vendored
3
src/bin/pg_upgrade/.gitignore
vendored
@ -1,7 +1,4 @@
|
||||
/pg_upgrade
|
||||
# Generated by test suite
|
||||
/delete_old_cluster.sh
|
||||
/delete_old_cluster.bat
|
||||
/reindex_hash.sql
|
||||
/log/
|
||||
/tmp_check/
|
||||
|
@ -48,8 +48,7 @@ uninstall:
|
||||
|
||||
clean distclean maintainer-clean:
|
||||
rm -f pg_upgrade$(X) $(OBJS)
|
||||
rm -rf delete_old_cluster.sh log/ tmp_check/ \
|
||||
reindex_hash.sql
|
||||
rm -rf log/ tmp_check/
|
||||
|
||||
check:
|
||||
$(prove_check)
|
||||
|
@ -206,6 +206,11 @@ if (defined($ENV{oldinstall}))
|
||||
}
|
||||
}
|
||||
|
||||
# In a VPATH build, we'll be started in the source directory, but we want
|
||||
# to run pg_upgrade in the build directory so that any files generated finish
|
||||
# in it, like delete_old_cluster.{sh,bat}.
|
||||
chdir ${PostgreSQL::Test::Utils::tmp_check};
|
||||
|
||||
# Upgrade the instance.
|
||||
$oldnode->stop;
|
||||
command_ok(
|
||||
@ -238,7 +243,7 @@ $newnode->command_ok(
|
||||
'-d', $newnode->connstr('postgres'),
|
||||
'-f', "$tempdir/dump2.sql"
|
||||
],
|
||||
'dump before running pg_upgrade');
|
||||
'dump after running pg_upgrade');
|
||||
|
||||
# Compare the two dumps, there should be no differences.
|
||||
my $compare_res = compare("$tempdir/dump1.sql", "$tempdir/dump2.sql");
|
||||
|
Reference in New Issue
Block a user