From 937f67800a7d3c30870af7b1115a76f44bc26e78 Mon Sep 17 00:00:00 2001
From: Noah Misch <noah@leadboat.com>
Date: Sun, 5 Nov 2017 18:51:08 -0800
Subject: [PATCH] Add a temp-install prerequisite to "check"-like targets not
 having one.

Makefile.global assigns this prerequisite to every target named "check",
but similar targets must mention it explicitly.  Affected targets
failed, tested $PATH binaries, or tested a stale temporary installation.
The src/test/modules examples worked properly when called as "make -C
src/test/modules/$FOO check", but "make -j" allowed the test to start
before the temporary installation was in place.  Back-patch to 9.5,
where commit dcae5faccab64776376d354decda0017c648bb53 introduced the
shared temp-install.
---
 src/interfaces/ecpg/test/Makefile      | 4 ++--
 src/test/locale/Makefile               | 1 +
 src/test/modules/brin/Makefile         | 4 ++--
 src/test/modules/commit_ts/Makefile    | 2 +-
 src/test/modules/test_pg_dump/Makefile | 2 +-
 src/test/regress/GNUmakefile           | 4 ++--
 6 files changed, 9 insertions(+), 8 deletions(-)

diff --git a/src/interfaces/ecpg/test/Makefile b/src/interfaces/ecpg/test/Makefile
index 73ac9e2ac0e..6097fea900b 100644
--- a/src/interfaces/ecpg/test/Makefile
+++ b/src/interfaces/ecpg/test/Makefile
@@ -81,7 +81,7 @@ check: all
 	$(with_temp_install) ./pg_regress $(REGRESS_OPTS) --temp-instance=./tmp_check $(TEMP_CONF) --bindir= $(pg_regress_locale_flags) $(THREAD) --schedule=$(srcdir)/ecpg_schedule sql/twophase
 
 # the same options, but with --listen-on-tcp
-checktcp: all
+checktcp: all | temp-install
 	$(with_temp_install) ./pg_regress $(REGRESS_OPTS) --temp-instance=./tmp_check $(TEMP_CONF) --bindir= $(pg_regress_locale_flags) $(THREAD) --schedule=$(srcdir)/ecpg_schedule_tcp --host=localhost
 
 installcheck: all
@@ -95,5 +95,5 @@ installcheck: all
 installcheck-prepared-txns: all
 	./pg_regress $(REGRESS_OPTS) --bindir='$(bindir)' $(pg_regress_locale_flags) $(THREAD) --schedule=$(srcdir)/ecpg_schedule sql/twophase
 
-check-prepared-txns: all
+check-prepared-txns: all | temp-install
 	$(with_temp_install) ./pg_regress $(REGRESS_OPTS) --temp-instance=./tmp_check $(TEMP_CONF) --bindir= $(pg_regress_locale_flags) $(THREAD) --schedule=$(srcdir)/ecpg_schedule sql/twophase
diff --git a/src/test/locale/Makefile b/src/test/locale/Makefile
index 26ec5c9a904..22a45b65f2c 100644
--- a/src/test/locale/Makefile
+++ b/src/test/locale/Makefile
@@ -16,5 +16,6 @@ clean distclean maintainer-clean:
 		$(MAKE) -C $$d clean || exit; \
 	done
 
+# These behave like installcheck targets.
 check-%: all
 	@$(MAKE) -C `echo $@ | sed 's/^check-//'` test
diff --git a/src/test/modules/brin/Makefile b/src/test/modules/brin/Makefile
index 912dca80097..566655cd61d 100644
--- a/src/test/modules/brin/Makefile
+++ b/src/test/modules/brin/Makefile
@@ -21,13 +21,13 @@ endif
 
 check: isolation-check prove-check
 
-isolation-check: | submake-isolation
+isolation-check: | submake-isolation temp-install
 	$(MKDIR_P) isolation_output
 	$(pg_isolation_regress_check) \
 	    --outputdir=./isolation_output \
 	    $(ISOLATIONCHECKS)
 
-prove-check:
+prove-check: | temp-install
 	$(prove_check)
 
 .PHONY: check isolation-check prove-check
diff --git a/src/test/modules/commit_ts/Makefile b/src/test/modules/commit_ts/Makefile
index 86b93b5e762..6d4f3be358e 100644
--- a/src/test/modules/commit_ts/Makefile
+++ b/src/test/modules/commit_ts/Makefile
@@ -16,5 +16,5 @@ endif
 
 check: prove-check
 
-prove-check:
+prove-check: | temp-install
 	$(prove_check)
diff --git a/src/test/modules/test_pg_dump/Makefile b/src/test/modules/test_pg_dump/Makefile
index 5050572777d..c64b3537072 100644
--- a/src/test/modules/test_pg_dump/Makefile
+++ b/src/test/modules/test_pg_dump/Makefile
@@ -21,5 +21,5 @@ endif
 
 check: prove-check
 
-prove-check:
+prove-check: | temp-install
 	$(prove_check)
diff --git a/src/test/regress/GNUmakefile b/src/test/regress/GNUmakefile
index b923ea14203..3ab5d7c7232 100644
--- a/src/test/regress/GNUmakefile
+++ b/src/test/regress/GNUmakefile
@@ -129,7 +129,7 @@ REGRESS_OPTS = --dlpath=. $(EXTRA_REGRESS_OPTS)
 check: all tablespace-setup
 	$(pg_regress_check) $(REGRESS_OPTS) --schedule=$(srcdir)/parallel_schedule $(MAXCONNOPT) $(EXTRA_TESTS)
 
-check-tests: all tablespace-setup
+check-tests: all tablespace-setup | temp-install
 	$(pg_regress_check) $(REGRESS_OPTS) $(MAXCONNOPT) $(TESTS) $(EXTRA_TESTS)
 
 installcheck: all tablespace-setup
@@ -153,7 +153,7 @@ runtest-parallel: installcheck-parallel
 bigtest: all tablespace-setup
 	$(pg_regress_installcheck) $(REGRESS_OPTS) --schedule=$(srcdir)/serial_schedule numeric_big
 
-bigcheck: all tablespace-setup
+bigcheck: all tablespace-setup | temp-install
 	$(pg_regress_check) $(REGRESS_OPTS) --schedule=$(srcdir)/parallel_schedule $(MAXCONNOPT) numeric_big
 
 
-- 
GitLab