aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMichael Paquier <michael@paquier.xyz>2022-06-04 12:16:52 +0900
committerMichael Paquier <michael@paquier.xyz>2022-06-04 12:16:52 +0900
commit15b6d2155375dee2fcba072fffa03c1c8b44656c (patch)
tree7c9af1f237b84db132171b25fea7bdef83fbdc5e /src
parent1fbe94084fd34200e61dd1db6225e8c8c65c000d (diff)
downloadpostgresql-15b6d2155375dee2fcba072fffa03c1c8b44656c.tar.gz
postgresql-15b6d2155375dee2fcba072fffa03c1c8b44656c.zip
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
Diffstat (limited to 'src')
-rw-r--r--src/bin/pg_upgrade/.gitignore3
-rw-r--r--src/bin/pg_upgrade/Makefile3
-rw-r--r--src/bin/pg_upgrade/t/002_pg_upgrade.pl7
3 files changed, 7 insertions, 6 deletions
diff --git a/src/bin/pg_upgrade/.gitignore b/src/bin/pg_upgrade/.gitignore
index 939e50db6c5..05200a09f14 100644
--- a/src/bin/pg_upgrade/.gitignore
+++ b/src/bin/pg_upgrade/.gitignore
@@ -1,7 +1,4 @@
/pg_upgrade
# Generated by test suite
-/delete_old_cluster.sh
-/delete_old_cluster.bat
-/reindex_hash.sql
/log/
/tmp_check/
diff --git a/src/bin/pg_upgrade/Makefile b/src/bin/pg_upgrade/Makefile
index 587793e815b..80ebe9bd174 100644
--- a/src/bin/pg_upgrade/Makefile
+++ b/src/bin/pg_upgrade/Makefile
@@ -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)
diff --git a/src/bin/pg_upgrade/t/002_pg_upgrade.pl b/src/bin/pg_upgrade/t/002_pg_upgrade.pl
index 80437e93b71..55c7354ba2a 100644
--- a/src/bin/pg_upgrade/t/002_pg_upgrade.pl
+++ b/src/bin/pg_upgrade/t/002_pg_upgrade.pl
@@ -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");