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

Normally each module is tested in aq database named contrib_regression,
which is dropped and recreated at the beginhning of each pg_regress run.
This 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.

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.
This commit is contained in:
Andrew Dunstan 2012-12-02 17:30:18 -05:00
parent 194bb37eba
commit c8f666abde
3 changed files with 17 additions and 1 deletions

View File

@ -10,6 +10,9 @@ DATA = uninstall_dblink.sql
REGRESS = dblink
# the db name is hard-coded in the tests
override undefine USE_MODULE_DB
ifdef USE_PGXS
PG_CONFIG = pg_config
PGXS := $(shell $(PG_CONFIG) --pgxs)

View File

@ -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.

View File

@ -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)
ifdef 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