Very confusing installcheck behavior with PGXS

From: Jim Nasby <Jim(dot)Nasby(at)BlueTreble(dot)com>
To: Pg Hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Very confusing installcheck behavior with PGXS
Date: 2016-01-03 22:22:46
Message-ID: 56899F36.9000607@BlueTreble.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

The rule that gets executed if you do `make installcheck` with something
using PGXS is

pgxs.mk: $(pg_regress_installcheck) $(REGRESS_OPTS) $(REGRESS)

where $(pg_regress_installcheck) is set in Makefile.global.in to

> pg_regress_installcheck = $(top_builddir)/src/test/regress/pg_regress --inputdir=$(srcdir) --bindir='$(bindir)' $(pg_regress_locale_flags) $(EXTRA_REGRESS_OPTS)

The problem here is that in a PGXS make, srcdir is set to '.'[1], and
--inputdir is specified a second time in REGRESS_OPTS. Normally that
works OK (for some reason ignoring what's in ./sql), but if you happen
to have a file in your test/sql directory that matches a file in ./sql,
pg_regress runs the first file and not the second.

Presumably that's exactly what you'd want in most of the tree, but it's
definitely not what you want in an extension.

Is the best way to fix this to add a pg_regress_installcheck_pgxs
variable in Makefile.global.in and modify pgxs.mk accordingly?

[1]:
> decibel(at)decina:[16:18]~/git/trunklet (master=)$make print-pg_regress_installcheck print-REGRESS_OPTS print-REGRESS
> pg_regress_installcheck = /Users/decibel/pgsql/9.4/i/lib/pgxs/src/makefiles/../../src/test/regress/pg_regress --inputdir=./ --psqldir=/Users/decibel/pgsql/9.4/i/bin
> REGRESS_OPTS = --inputdir=test --load-language=plpgsql --dbname=contrib_regression
> REGRESS = all build
--
Jim Nasby, Data Architect, Blue Treble Consulting, Austin TX
Experts in Analytics, Data Architecture and PostgreSQL
Data in Trouble? Get it in Treble! http://BlueTreble.com

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Robert Haas 2016-01-03 23:19:55 Re: [PATCH] Refactoring of LWLock tranches
Previous Message Dan Langille 2016-01-03 21:58:15 PGCon 2016 call for papers