From 9ca7b0bf016364c74d38f66c7050be915bfea908 Mon Sep 17 00:00:00 2001 From: Peter Eisentraut Date: Mon, 14 Nov 2016 12:00:00 -0500 Subject: [PATCH] Allow individual TAP tests to be run via PROVE_TESTS Add a new optional Makefile variable PROVE_TESTS that, if passed as a space-separated list of paths relative to the Makefile invoking $(prove_check) or $(prove_installcheck), runs just those tests instead of t/*.pl . From: Craig Ringer Reviewed-by: Michael Paquier --- src/Makefile.global.in | 4 ++-- src/test/perl/README | 6 ++++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/Makefile.global.in b/src/Makefile.global.in index ea61eb518f..aa1fa658ed 100644 --- a/src/Makefile.global.in +++ b/src/Makefile.global.in @@ -354,12 +354,12 @@ ifeq ($(enable_tap_tests),yes) define prove_installcheck rm -rf $(CURDIR)/tmp_check/log -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' $(PROVE) $(PG_PROVE_FLAGS) $(PROVE_FLAGS) t/*.pl +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' $(PROVE) $(PG_PROVE_FLAGS) $(PROVE_FLAGS) $(if $(PROVE_TESTS),$(PROVE_TESTS),t/*.pl) endef define prove_check rm -rf $(CURDIR)/tmp_check/log -cd $(srcdir) && TESTDIR='$(CURDIR)' $(with_temp_install) PGPORT='6$(DEF_PGPORT)' PG_REGRESS='$(CURDIR)/$(top_builddir)/src/test/regress/pg_regress' $(PROVE) $(PG_PROVE_FLAGS) $(PROVE_FLAGS) t/*.pl +cd $(srcdir) && TESTDIR='$(CURDIR)' $(with_temp_install) PGPORT='6$(DEF_PGPORT)' PG_REGRESS='$(CURDIR)/$(top_builddir)/src/test/regress/pg_regress' $(PROVE) $(PG_PROVE_FLAGS) $(PROVE_FLAGS) $(if $(PROVE_TESTS),$(PROVE_TESTS),t/*.pl) endef else diff --git a/src/test/perl/README b/src/test/perl/README index 710a0d8bc3..cfb45a1547 100644 --- a/src/test/perl/README +++ b/src/test/perl/README @@ -6,6 +6,12 @@ across the source tree, particularly tests in src/bin and src/test. It's used to drive tests for backup and restore, replication, etc - anything that can't really be expressed using pg_regress or the isolation test framework. +The tests are invoked via perl's 'prove' command, wrapped in PostgreSQL +makefiles to handle instance setup etc. See the $(prove_check) and +$(prove_installcheck) targets in Makefile.global. By default every test in the +t/ subdirectory is run. Individual test(s) can be run instead by passing +something like PROVE_TESTS="t/001_testname.pl t/002_othertestname.pl" to make. + You should prefer to write tests using pg_regress in src/test/regress, or isolation tester specs in src/test/isolation, if possible. If not, check to see if your new tests make sense under an existing tree in src/test, like