Skip to content

Commit 15b6d21

Browse files
committed
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
1 parent 1fbe940 commit 15b6d21

File tree

3 files changed

+7
-6
lines changed

3 files changed

+7
-6
lines changed

src/bin/pg_upgrade/.gitignore

-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,4 @@
11
/pg_upgrade
22
# Generated by test suite
3-
/delete_old_cluster.sh
4-
/delete_old_cluster.bat
5-
/reindex_hash.sql
63
/log/
74
/tmp_check/

src/bin/pg_upgrade/Makefile

+1-2
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,7 @@ uninstall:
4848

4949
clean distclean maintainer-clean:
5050
rm -f pg_upgrade$(X) $(OBJS)
51-
rm -rf delete_old_cluster.sh log/ tmp_check/ \
52-
reindex_hash.sql
51+
rm -rf log/ tmp_check/
5352

5453
check:
5554
$(prove_check)

src/bin/pg_upgrade/t/002_pg_upgrade.pl

+6-1
Original file line numberDiff line numberDiff line change
@@ -206,6 +206,11 @@ sub generate_db
206206
}
207207
}
208208

209+
# In a VPATH build, we'll be started in the source directory, but we want
210+
# to run pg_upgrade in the build directory so that any files generated finish
211+
# in it, like delete_old_cluster.{sh,bat}.
212+
chdir ${PostgreSQL::Test::Utils::tmp_check};
213+
209214
# Upgrade the instance.
210215
$oldnode->stop;
211216
command_ok(
@@ -238,7 +243,7 @@ sub generate_db
238243
'-d', $newnode->connstr('postgres'),
239244
'-f', "$tempdir/dump2.sql"
240245
],
241-
'dump before running pg_upgrade');
246+
'dump after running pg_upgrade');
242247

243248
# Compare the two dumps, there should be no differences.
244249
my $compare_res = compare("$tempdir/dump1.sql", "$tempdir/dump2.sql");

0 commit comments

Comments
 (0)