The recipe for running TAP tests in src/Makefile.global doesn't work for the PGXS case. If you try it you get something like this:
andrew@emma:tests $ make PG_CONFIG=../inst.head.5701/bin/pg_config installcheck rm -rf '/home/andrew/pgl/tests'/tmp_check /usr/bin/mkdir -p '/home/andrew/pgl/tests'/tmp_check cd ./ && TESTDIR='/home/andrew/pgl/tests' PATH="/home/andrew/pgl/inst.head.5701/bin:$PATH" PGPORT='65701' \ top_builddir='/home/andrew/pgl/tests//home/andrew/pgl/inst.head.5701/lib/postgresql/pgxs/src/makefiles/../..' \ PG_REGRESS='/home/andrew/pgl/tests//home/andrew/pgl/inst.head.5701/lib/postgresql/pgxs/src/makefiles/../../src/test/regress/pg_regress' \ REGRESS_SHLIB='/src/test/regress/regress.so' \ /usr/bin/prove -I /home/andrew/pgl/inst.head.5701/lib/postgresql/pgxs/src/makefiles/../../src/test/perl/ -I ./ t/*.pl Notice those bogus settings for top_builddir, PG_REGRESS and REGRESS_SHLIB. The attached patch fixes this bug. With it you can get by with a Makefile as simple as this for running TAP tests under PGXS: TAP_TESTS = 1 PG_CONFIG = pg_config PGXS := $(shell $(PG_CONFIG) --pgxs) include $(PGXS) I removed the REGRESS_SHLIB setting altogether for the PGXS case - it's not clear to me why we need it in a TAP test recipe at all. Certainly it's not installed anywhere in a standard install so it seems entirely bogus for the PGXS case. This seems like a bug fix that should be patched all the way back, although I haven't yet investigated the back branches. cheers andrew -- Andrew Dunstan EDB: https://www.enterprisedb.com
diff --git a/src/Makefile.global.in b/src/Makefile.global.in index 8f05840821..ab74535918 100644 --- a/src/Makefile.global.in +++ b/src/Makefile.global.in @@ -444,11 +444,19 @@ with_temp_install = \ ifeq ($(enable_tap_tests),yes) +ifndef PGXS define prove_installcheck rm -rf '$(CURDIR)'/tmp_check $(MKDIR_P) '$(CURDIR)'/tmp_check cd $(srcdir) && TESTDIR='$(CURDIR)' PATH="$(bindir):$$PATH" PGPORT='6$(DEF_PGPORT)' top_builddir='$(CURDIR)/$(top_builddir)' PG_REGRESS='$(CURDIR)/$(top_builddir)/src/test/regress/pg_regress' REGRESS_SHLIB='$(abs_top_builddir)/src/test/regress/regress$(DLSUFFIX)' $(PROVE) $(PG_PROVE_FLAGS) $(PROVE_FLAGS) $(if $(PROVE_TESTS),$(PROVE_TESTS),t/*.pl) endef +else # PGXS case +define prove_installcheck +rm -rf '$(CURDIR)'/tmp_check +$(MKDIR_P) '$(CURDIR)'/tmp_check +cd $(srcdir) && TESTDIR='$(CURDIR)' PATH="$(bindir):$$PATH" PGPORT='6$(DEF_PGPORT)' top_builddir='$(top_builddir)' PG_REGRESS='$(top_builddir)/src/test/regress/pg_regress' $(PROVE) $(PG_PROVE_FLAGS) $(PROVE_FLAGS) $(if $(PROVE_TESTS),$(PROVE_TESTS),t/*.pl) +endef +endif # PGXS define prove_check rm -rf '$(CURDIR)'/tmp_check