aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNoah Misch <noah@leadboat.com>2019-04-03 17:06:01 -0700
committerNoah Misch <noah@leadboat.com>2019-04-03 17:09:58 -0700
commit426d93d24429a0144838c3832674c48b48dd1237 (patch)
treee4377998b0fc0b35def5aca172116acb664785ec
parentb2307f8e3184fcfa7a1a789918c455c4e4e5bc06 (diff)
downloadpostgresql-426d93d24429a0144838c3832674c48b48dd1237.tar.gz
postgresql-426d93d24429a0144838c3832674c48b48dd1237.zip
Handle USE_MODULE_DB for all tests able to use an installed postmaster.
When $(MODULES) and $(MODULE_big) are empty, derive the database name from the first element of $(REGRESS) instead of using a constant string. When deriving the database name from $(MODULES), use its first element instead of the entire list; the earlier approach would fail if any multi-module directory had $(REGRESS) tests. Treat isolation suites and src/pl correspondingly. Under USE_MODULE_DB=1, installcheck-world and check-world no longer reuse any database name in a given postmaster. Buildfarm members axolotl, mandrill and frogfish saw spurious "is being accessed by other users" failures that would not have happened without database name reuse. (The CountOtherDBBackends() 5s deadline expired during DROP DATABASE; a backend for an earlier test suite had used the same database name and had not yet exited.) Back-patch to 9.4 (all supported versions), except bits pertaining to isolation suites. Concept reviewed by Andrew Dunstan, Andres Freund and Tom Lane. Discussion: https://postgr.es/m/20190401135213.GE891537@rfd.leadboat.com
-rw-r--r--src/Makefile.global.in21
-rw-r--r--src/makefiles/pgxs.mk7
2 files changed, 14 insertions, 14 deletions
diff --git a/src/Makefile.global.in b/src/Makefile.global.in
index 7817a7b63e5..64ce7557bad 100644
--- a/src/Makefile.global.in
+++ b/src/Makefile.global.in
@@ -595,16 +595,21 @@ submake-libpgfeutils: | submake-generated-headers
#
# Testing support
-PL_TESTDB = pl_regression
-CONTRIB_TESTDB = contrib_regression
-ifneq ($(MODULE_big),)
- CONTRIB_TESTDB_MODULE = contrib_regression_$(MODULE_big)
-else
- ifneq ($(MODULES),)
- CONTRIB_TESTDB_MODULE = contrib_regression_$(MODULES)
+ifneq ($(USE_MODULE_DB),)
+ PL_TESTDB = pl_regression_$(NAME)
+ # Replace this with $(or ...) if we ever require GNU make 3.81.
+ ifneq ($(MODULE_big),)
+ CONTRIB_TESTDB=contrib_regression_$(MODULE_big)
else
- CONTRIB_TESTDB_MODULE = contrib_regression
+ ifneq ($(MODULES),)
+ CONTRIB_TESTDB=contrib_regression_$(word 1,$(MODULES))
+ else
+ CONTRIB_TESTDB=contrib_regression_$(word 1,$(REGRESS))
+ endif
endif
+else
+ PL_TESTDB = pl_regression
+ CONTRIB_TESTDB = contrib_regression
endif
ifdef NO_LOCALE
diff --git a/src/makefiles/pgxs.mk b/src/makefiles/pgxs.mk
index 123bdffaa6a..037307c076f 100644
--- a/src/makefiles/pgxs.mk
+++ b/src/makefiles/pgxs.mk
@@ -371,12 +371,7 @@ distclean maintainer-clean: clean
ifdef REGRESS
-# Select database to use for running the tests
-ifneq ($(USE_MODULE_DB),)
- REGRESS_OPTS += --dbname=$(CONTRIB_TESTDB_MODULE)
-else
- REGRESS_OPTS += --dbname=$(CONTRIB_TESTDB)
-endif
+REGRESS_OPTS += --dbname=$(CONTRIB_TESTDB)
# When doing a VPATH build, must copy over the data files so that the
# driver script can find them. We have to use an absolute path for