Обсуждение: REGRESS_OPTS default

Поиск
Список
Период
Сортировка

REGRESS_OPTS default

От
Tom Lane
Дата:
I got burnt tonight by the fact that the earthdistance contrib module
runs its regression test in database "regression", not
"contrib_regression" as I was expecting and as every other contrib
module does.  The reason turns out to be that 
earthdistance/Makefile does this:

REGRESS_OPTS = --extra-install=contrib/cube

while pgxs.mk does this:

# Calling makefile can set REGRESS_OPTS, but this is the default:
ifndef REGRESS_OPTS
REGRESS_OPTS = --dbname=$(CONTRIB_TESTDB)
endif

so of course the dbname provided here doesn't take effect and we fall
back to pg_regress' default.

There are at least two ways we could fix this: change
earthdistance/Makefile to do this:

REGRESS_OPTS = --extra-install=contrib/cube --dbname=$(CONTRIB_TESTDB)

or change pgxs.mk to do this:

REGRESS_OPTS += --dbname=$(CONTRIB_TESTDB)

I'm leaning towards the latter as being less prone to mistakes of
omission.  If there's some reason for a pgxs-using makefile to override
the target DB name, it can set CONTRIB_TESTDB instead of messing with
REGRESS_OPTS.

Comments?
        regards, tom lane


Re: REGRESS_OPTS default

От
Peter Eisentraut
Дата:
On tis, 2011-08-23 at 21:17 -0400, Tom Lane wrote:
> There are at least two ways we could fix this: change
> earthdistance/Makefile to do this:
> 
> REGRESS_OPTS = --extra-install=contrib/cube --dbname=$(CONTRIB_TESTDB)
> 
> or change pgxs.mk to do this:
> 
> REGRESS_OPTS += --dbname=$(CONTRIB_TESTDB)
> 
> I'm leaning towards the latter as being less prone to mistakes of
> omission.  If there's some reason for a pgxs-using makefile to
> override
> the target DB name, it can set CONTRIB_TESTDB instead of messing with
> REGRESS_OPTS.

I like the latter solution as well.