From: Andrew Dunstan <andrew@dunslane.net>
Date: Tue, 11 Dec 2012 16:48:00 +0000 (-0500)
Subject: Add mode where contrib installcheck runs each module in a separately named database.
X-Git-Tag: REL9_0_12~33
X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=fe20ff0c5646c49c14cd944c284d20bea91fba52;p=postgresql

Add mode where contrib installcheck runs each module in a separately named database.

Normally each module is tested in a database named contrib_regression,
which is dropped and recreated at the beginhning of each pg_regress run.
This new mode, enabled by adding USE_MODULE_DB=1 to the make command
line, runs most modules in a database with the module name embedded in
it.

This will make testing pg_upgrade on clusters with the contrib modules
a lot easier.

Second attempt at this, this time accomodating make versions older
than 3.82.

Still to be done: adapt to the MSVC build system.

Backpatch to 9.0, which is the earliest version it is reasonably
possible to test upgrading from.
---

diff --git a/contrib/dblink/Makefile b/contrib/dblink/Makefile
index 519c73b68f..5d92045bf8 100644
--- a/contrib/dblink/Makefile
+++ b/contrib/dblink/Makefile
@@ -10,6 +10,9 @@ DATA = uninstall_dblink.sql
 REGRESS = dblink
 
 
+# the db name is hard-coded in the tests
+override USE_MODULE_DB =
+
 ifdef USE_PGXS
 PG_CONFIG = pg_config
 PGXS := $(shell $(PG_CONFIG) --pgxs)
diff --git a/src/Makefile.global.in b/src/Makefile.global.in
index 280578a4c3..6fe87f33c3 100644
--- a/src/Makefile.global.in
+++ b/src/Makefile.global.in
@@ -284,6 +284,15 @@ BZIP2	= bzip2
 
 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)
+  else
+    CONTRIB_TESTDB_MODULE = contrib_regression
+  endif
+endif
 
 # Installation.
 
diff --git a/src/makefiles/pgxs.mk b/src/makefiles/pgxs.mk
index 4f1ae19101..2415038821 100644
--- a/src/makefiles/pgxs.mk
+++ b/src/makefiles/pgxs.mk
@@ -233,7 +233,11 @@ ifdef REGRESS
 
 # Calling makefile can set REGRESS_OPTS, but this is the default:
 ifndef REGRESS_OPTS
-REGRESS_OPTS = --dbname=$(CONTRIB_TESTDB)
+ifneq ($(USE_MODULE_DB),)
+  REGRESS_OPTS = --dbname=$(CONTRIB_TESTDB_MODULE)
+else
+  REGRESS_OPTS = --dbname=$(CONTRIB_TESTDB)
+endif
 endif
 
 # where to find psql for running the tests