"make check" supports EXTRA_REGRESS_OPTS to pass extra options to
pg_regress, but all the other places where pg_regress is used do not
allow this. The attached patch adds EXTRA_REGRESS_OPTS to
Makefile.global.in (for contrib modules) and two more special
Makefiles (isolation and pg_upgrade).

The use case here is that Debian needs to be able to redirect the unix
socket directory used to /tmp, because /var/run/postgresql isn't
writable for the buildd user. The matching part for this inside
pg_regress is still in discussion here, but the addition of
EXTRA_REGRESS_OPTS is an independent step that is also useful for
others, so I'd like to propose it for inclusion.

Christoph
-- 
c...@df7cb.de | http://www.df7cb.de/
diff --git a/contrib/pg_upgrade/Makefile b/contrib/pg_upgrade/Makefile
new file mode 100644
index bbb14a1..ffcdad8
*** a/contrib/pg_upgrade/Makefile
--- b/contrib/pg_upgrade/Makefile
*************** include $(top_srcdir)/contrib/contrib-gl
*** 25,31 ****
  endif
  
  check: test.sh all
! 	MAKE=$(MAKE) bindir=$(bindir) libdir=$(libdir) $(SHELL) $< --install
  
  # disabled because it upsets the build farm
  #installcheck: test.sh
--- 25,31 ----
  endif
  
  check: test.sh all
! 	MAKE=$(MAKE) bindir=$(bindir) libdir=$(libdir) EXTRA_REGRESS_OPTS="$(EXTRA_REGRESS_OPTS)" $(SHELL) $< --install
  
  # disabled because it upsets the build farm
  #installcheck: test.sh
diff --git a/src/Makefile.global.in b/src/Makefile.global.in
new file mode 100644
index 89e39d2..d0f08a9
*** a/src/Makefile.global.in
--- b/src/Makefile.global.in
*************** endif
*** 448,455 ****
  
  pg_regress_locale_flags = $(if $(ENCODING),--encoding=$(ENCODING)) $(NOLOCALE)
  
! pg_regress_check = $(top_builddir)/src/test/regress/pg_regress --inputdir=$(srcdir) --temp-install=./tmp_check --top-builddir=$(top_builddir) $(pg_regress_locale_flags)
! pg_regress_installcheck = $(top_builddir)/src/test/regress/pg_regress --inputdir=$(srcdir) --psqldir='$(PSQLDIR)' $(pg_regress_locale_flags)
  
  pg_regress_clean_files = results/ regression.diffs regression.out tmp_check/ log/
  
--- 448,455 ----
  
  pg_regress_locale_flags = $(if $(ENCODING),--encoding=$(ENCODING)) $(NOLOCALE)
  
! pg_regress_check = $(top_builddir)/src/test/regress/pg_regress --inputdir=$(srcdir) --temp-install=./tmp_check --top-builddir=$(top_builddir) $(pg_regress_locale_flags) $(EXTRA_REGRESS_OPTS)
! pg_regress_installcheck = $(top_builddir)/src/test/regress/pg_regress --inputdir=$(srcdir) --psqldir='$(PSQLDIR)' $(pg_regress_locale_flags) $(EXTRA_REGRESS_OPTS)
  
  pg_regress_clean_files = results/ regression.diffs regression.out tmp_check/ log/
  
diff --git a/src/test/isolation/Makefile b/src/test/isolation/Makefile
new file mode 100644
index 5e5c9bb..26bcf22
*** a/src/test/isolation/Makefile
--- b/src/test/isolation/Makefile
*************** maintainer-clean: distclean
*** 52,68 ****
  	rm -f specparse.c specscanner.c
  
  installcheck: all
! 	./pg_isolation_regress --psqldir='$(PSQLDIR)' --inputdir=$(srcdir) --schedule=$(srcdir)/isolation_schedule
  
  check: all
! 	./pg_isolation_regress --temp-install=./tmp_check --inputdir=$(srcdir) --top-builddir=$(top_builddir) --schedule=$(srcdir)/isolation_schedule
  
  # Versions of the check tests that include the prepared_transactions test
  # It only makes sense to run these if set up to use prepared transactions,
  # via TEMP_CONFIG for the check case, or via the postgresql.conf for the
  # installcheck case.
  installcheck-prepared-txns: all
! 	./pg_isolation_regress --psqldir='$(PSQLDIR)' --inputdir=$(srcdir) --schedule=$(srcdir)/isolation_schedule prepared-transactions
  
  check-prepared-txns: all
! 	./pg_isolation_regress --temp-install=./tmp_check --inputdir=$(srcdir) --top-builddir=$(top_builddir) --schedule=$(srcdir)/isolation_schedule prepared-transactions
--- 52,68 ----
  	rm -f specparse.c specscanner.c
  
  installcheck: all
! 	./pg_isolation_regress --psqldir='$(PSQLDIR)' $(EXTRA_REGRESS_OPTS) --inputdir=$(srcdir) --schedule=$(srcdir)/isolation_schedule
  
  check: all
! 	./pg_isolation_regress --temp-install=./tmp_check --inputdir=$(srcdir) --top-builddir=$(top_builddir) $(EXTRA_REGRESS_OPTS) --schedule=$(srcdir)/isolation_schedule
  
  # Versions of the check tests that include the prepared_transactions test
  # It only makes sense to run these if set up to use prepared transactions,
  # via TEMP_CONFIG for the check case, or via the postgresql.conf for the
  # installcheck case.
  installcheck-prepared-txns: all
! 	./pg_isolation_regress --psqldir='$(PSQLDIR)' $(EXTRA_REGRESS_OPTS) --inputdir=$(srcdir) --schedule=$(srcdir)/isolation_schedule prepared-transactions
  
  check-prepared-txns: all
! 	./pg_isolation_regress --temp-install=./tmp_check $(EXTRA_REGRESS_OPTS) --inputdir=$(srcdir) --top-builddir=$(top_builddir) --schedule=$(srcdir)/isolation_schedule prepared-transactions

Attachment: signature.asc
Description: Digital signature

Reply via email to