]> granicus.if.org Git - postgresql/commitdiff
Revert all new recent changes to add PGXS options for TAP and isolation
authorMichael Paquier <michael@paquier.xyz>
Mon, 26 Nov 2018 02:12:11 +0000 (11:12 +0900)
committerMichael Paquier <michael@paquier.xyz>
Mon, 26 Nov 2018 02:12:11 +0000 (11:12 +0900)
A set of failures in buildfarm machines are proving that this is not
quite ready yet because of another set of issues:
- MSVC scripts assume that REGRESS_OPTS can only use top_builddir.  Some
test suites actually finish by using top_srcdir, like pg_stat_statements
which cause the regression tests to never run.
- Trying to enforce top_builddir does not work either when using VPATH
as this is not recognized properly.
- TAP tests of bloom are unstable on various platforms, causing various
failures.

contrib/bloom/Makefile
contrib/oid2name/Makefile
contrib/test_decoding/Makefile
contrib/vacuumlo/Makefile
doc/src/sgml/extend.sgml
src/makefiles/pgxs.mk
src/test/modules/brin/.gitignore
src/test/modules/brin/Makefile
src/test/modules/commit_ts/Makefile
src/test/modules/snapshot_too_old/Makefile
src/test/modules/test_pg_dump/Makefile

index 839c14d9fbb80bf2ffe08906714b03e95dcdcf4e..13bd397b705bd648e70f220138ede0737069a5f3 100644 (file)
@@ -9,10 +9,6 @@ PGFILEDESC = "bloom access method - signature file based index"
 
 REGRESS = bloom
 
-# Disable TAP tests for this module for now, as these are unstable on several
-# platforms, including recent Windows and macOS.
-# TAP_TESTS = 1
-
 ifdef USE_PGXS
 PG_CONFIG = pg_config
 PGXS := $(shell $(PG_CONFIG) --pgxs)
@@ -23,3 +19,6 @@ top_builddir = ../..
 include $(top_builddir)/src/Makefile.global
 include $(top_srcdir)/contrib/contrib-global.mk
 endif
+
+wal-check: temp-install
+       $(prove_check)
index 361a80a7a12272f7ef9fd49df846912230b90de7..908e078714b9b21b7c1517a171d45b632f450575 100644 (file)
@@ -6,11 +6,11 @@ PGAPPICON = win32
 PROGRAM = oid2name
 OBJS   = oid2name.o $(WIN32RES)
 
-TAP_TESTS = 1
-
 PG_CPPFLAGS = -I$(libpq_srcdir)
 PG_LIBS_INTERNAL = $(libpq_pgport)
 
+EXTRA_CLEAN = tmp_check
+
 ifdef USE_PGXS
 PG_CONFIG = pg_config
 PGXS := $(shell $(PG_CONFIG) --pgxs)
@@ -21,3 +21,9 @@ top_builddir = ../..
 include $(top_builddir)/src/Makefile.global
 include $(top_srcdir)/contrib/contrib-global.mk
 endif
+
+check:
+       $(prove_check)
+
+installcheck:
+       $(prove_installcheck)
index 06af254f1dd1f0d03eeb8554343b02b7dad1327e..afcab930f7a6cdba63a79566bb6cf3d1f50365c5 100644 (file)
@@ -3,20 +3,9 @@
 MODULES = test_decoding
 PGFILEDESC = "test_decoding - example of a logical decoding output plugin"
 
-EXTRA_INSTALL=contrib/test_decoding
-
-REGRESS = ddl xact rewrite toast permissions decoding_in_xact \
-       decoding_into_rel binary prepared replorigin time messages \
-       spill slot truncate
-ISOLATION = mxact delayed_startup ondisk_startup concurrent_ddl_dml \
-       oldest_xmin snapshot_transfer
-
-REGRESS_OPTS = --temp-config=$(top_builddir)/contrib/test_decoding/logical.conf
-ISOLATION_OPTS = --temp-config=$(top_builddir)/contrib/test_decoding/logical.conf
-
-# Disabled because these tests require "wal_level=logical", which
-# typical installcheck users do not have (e.g. buildfarm clients).
-NO_INSTALLCHECK = 1
+# Note: because we don't tell the Makefile there are any regression tests,
+# we have to clean those result files explicitly
+EXTRA_CLEAN = $(pg_regress_clean_files)
 
 ifdef USE_PGXS
 PG_CONFIG = pg_config
@@ -29,8 +18,52 @@ include $(top_builddir)/src/Makefile.global
 include $(top_srcdir)/contrib/contrib-global.mk
 endif
 
+# Disabled because these tests require "wal_level=logical", which
+# typical installcheck users do not have (e.g. buildfarm clients).
+installcheck:;
+
 # But it can nonetheless be very helpful to run tests on preexisting
 # installation, allow to do so, but only if requested explicitly.
-installcheck-force:
-       $(pg_regress_installcheck) $(REGRESS)
-       $(pg_isolation_regress_installcheck) $(ISOLATION)
+installcheck-force: regresscheck-install-force isolationcheck-install-force
+
+check: regresscheck isolationcheck
+
+submake-regress:
+       $(MAKE) -C $(top_builddir)/src/test/regress all
+
+submake-isolation:
+       $(MAKE) -C $(top_builddir)/src/test/isolation all
+
+submake-test_decoding:
+       $(MAKE) -C $(top_builddir)/contrib/test_decoding
+
+REGRESSCHECKS=ddl xact rewrite toast permissions decoding_in_xact \
+       decoding_into_rel binary prepared replorigin time messages \
+       spill slot truncate
+
+regresscheck: | submake-regress submake-test_decoding temp-install
+       $(pg_regress_check) \
+           --temp-config $(top_srcdir)/contrib/test_decoding/logical.conf \
+           $(REGRESSCHECKS)
+
+regresscheck-install-force: | submake-regress submake-test_decoding temp-install
+       $(pg_regress_installcheck) \
+           $(REGRESSCHECKS)
+
+ISOLATIONCHECKS=mxact delayed_startup ondisk_startup concurrent_ddl_dml \
+       oldest_xmin snapshot_transfer
+
+isolationcheck: | submake-isolation submake-test_decoding temp-install
+       $(pg_isolation_regress_check) \
+           --temp-config $(top_srcdir)/contrib/test_decoding/logical.conf \
+           $(ISOLATIONCHECKS)
+
+isolationcheck-install-force: all | submake-isolation submake-test_decoding temp-install
+       $(pg_isolation_regress_installcheck) \
+           $(ISOLATIONCHECKS)
+
+.PHONY: submake-test_decoding submake-regress check \
+       regresscheck regresscheck-install-force \
+       isolationcheck isolationcheck-install-force
+
+temp-install: EXTRA_INSTALL=contrib/test_decoding
index 3efcb46735ce6f78bbd36407ed77e22205246f9d..5de506151e42ebe3e32dbb4cb23bebd186262385 100644 (file)
@@ -6,11 +6,11 @@ PGAPPICON = win32
 PROGRAM = vacuumlo
 OBJS   = vacuumlo.o $(WIN32RES)
 
-TAP_TESTS = 1
-
 PG_CPPFLAGS = -I$(libpq_srcdir)
 PG_LIBS_INTERNAL = $(libpq_pgport)
 
+EXTRA_CLEAN = tmp_check
+
 ifdef USE_PGXS
 PG_CONFIG = pg_config
 PGXS := $(shell $(PG_CONFIG) --pgxs)
@@ -21,3 +21,9 @@ top_builddir = ../..
 include $(top_builddir)/src/Makefile.global
 include $(top_srcdir)/contrib/contrib-global.mk
 endif
+
+check:
+       $(prove_check)
+
+installcheck:
+       $(prove_installcheck)
index a6b77c1cfe05e00f0ab55151da619eaa873c89f3..695e07fb3842a1294fdfcbe5c33e3c6acf28bae9 100644 (file)
@@ -1303,34 +1303,6 @@ include $(PGXS)
       </listitem>
      </varlistentry>
 
-     <varlistentry>
-      <term><varname>ISOLATION</varname></term>
-      <listitem>
-       <para>
-        list of isolation test cases, see below for more details
-       </para>
-      </listitem>
-     </varlistentry>
-
-     <varlistentry>
-      <term><varname>ISOLATION_OPTS</varname></term>
-      <listitem>
-       <para>
-        additional switches to pass to
-        <application>pg_isolation_regress</application>
-       </para>
-      </listitem>
-     </varlistentry>
-
-     <varlistentry>
-      <term><varname>TAP_TESTS</varname></term>
-      <listitem>
-       <para>
-        switch defining if TAP tests need to be run, see below
-       </para>
-      </listitem>
-     </varlistentry>
-
      <varlistentry>
       <term><varname>NO_INSTALLCHECK</varname></term>
       <listitem>
@@ -1451,42 +1423,13 @@ make VPATH=/path/to/extension/source/tree install
     have all expected files.
    </para>
 
-   <para>
-    The scripts listed in the <varname>ISOLATION</varname> variable are used
-    for tests stressing behavior of concurrent session with your module, which
-    can be invoked by <literal>make installcheck</literal> after doing
-    <literal>make install</literal>.  For this to work you must have a
-    running <productname>PostgreSQL</productname> server.  The script files
-    listed in <varname>ISOLATION</varname> must appear in a subdirectory
-    named <literal>specs/</literal> in your extension's directory.  These files
-    must have extension <literal>.spec</literal>, which must not be included
-    in the <varname>ISOLATION</varname> list in the makefile.  For each test
-    there should also be a file containing the expected output in a
-    subdirectory named <literal>expected/</literal>, with the same stem and
-    extension <literal>.out</literal>.  <literal>make installcheck</literal>
-    executes each test script, and compares the resulting output to the
-    matching expected file.  Any differences will be written to the file
-    <literal>output_iso/regression.diffs</literal> in
-    <command>diff -c</command> format.  Note that trying to run a test that is
-    missing its expected file will be reported as <quote>trouble</quote>, so
-    make sure you have all expected files.
-   </para>
-
-   <para>
-    <literal>TAP_TESTS</literal> enables the use of TAP tests.  Data from each
-    run is present in a subdirectory named <literal>tmp_check/</literal>.
-    See also <xref linkend="regress-tap"/> for more details.
-   </para>
-
    <tip>
     <para>
      The easiest way to create the expected files is to create empty files,
      then do a test run (which will of course report differences).  Inspect
      the actual result files found in the <literal>results/</literal>
-     directory (for tests in <literal>REGRESS</literal>), or
-     <literal>output_iso/results/</literal> directory (for tests in
-     <literal>ISOLATION</literal>), then copy them to
-     <literal>expected/</literal> if they match what you expect from the test.
+     directory, then copy them to <literal>expected/</literal> if they match
+     what you expect from the test.
     </para>
 
    </tip>
index e8fecaec0febddf42cd8c7b91b42a763748eb4d7..070d151018be0bad3f512897a7c9db534bd51a21 100644 (file)
@@ -46,9 +46,6 @@
 #   HEADERS_built_$(MODULE) -- as above but built first (also NOT cleaned)
 #   REGRESS -- list of regression test cases (without suffix)
 #   REGRESS_OPTS -- additional switches to pass to pg_regress
-#   TAP_TESTS -- switch to enable TAP tests
-#   ISOLATION -- list of isolation test cases
-#   ISOLATION_OPTS -- additional switches to pass to pg_isolation_regress
 #   NO_INSTALLCHECK -- don't define an installcheck target, useful e.g. if
 #     tests require special configuration, or don't use pg_regress
 #   EXTRA_CLEAN -- extra files to remove in 'make clean'
@@ -352,12 +349,6 @@ ifeq ($(PORTNAME), win)
        rm -f regress.def
 endif
 endif # REGRESS
-ifdef TAP_TESTS
-       rm -rf tmp_check/
-endif
-ifdef ISOLATION
-       rm -rf output_iso/ tmp_check_iso/
-endif
 
 ifdef MODULE_big
 clean: clean-lib
@@ -392,47 +383,28 @@ $(test_files_build): $(abs_builddir)/%: $(srcdir)/%
        $(MKDIR_P) $(dir $@)
        ln -s $< $@
 endif # VPATH
-endif # REGRESS
 
 .PHONY: submake
 submake:
 ifndef PGXS
        $(MAKE) -C $(top_builddir)/src/test/regress pg_regress$(X)
-       $(MAKE) -C $(top_builddir)/src/test/isolation all
 endif
 
-# Standard rules to run regression tests including multiple test suites.
-# Runs against an installed postmaster
+# against installed postmaster
 ifndef NO_INSTALLCHECK
 installcheck: submake $(REGRESS_PREP)
-ifdef REGRESS
        $(pg_regress_installcheck) $(REGRESS_OPTS) $(REGRESS)
 endif
-ifdef ISOLATION
-       $(pg_isolation_regress_installcheck) $(ISOLATION_OPTS) $(ISOLATION)
-endif
-ifdef TAP_TESTS
-       $(prove_installcheck)
-endif
-endif # NO_INSTALLCHECK
 
-# Runs independently of any installation
 ifdef PGXS
 check:
        @echo '"$(MAKE) check" is not supported.'
        @echo 'Do "$(MAKE) install", then "$(MAKE) installcheck" instead.'
 else
 check: submake $(REGRESS_PREP)
-ifdef REGRESS
        $(pg_regress_check) $(REGRESS_OPTS) $(REGRESS)
 endif
-ifdef ISOLATION
-       $(pg_isolation_regress_check) $(ISOLATION_OPTS) $(ISOLATION)
-endif
-ifdef TAP_TESTS
-       $(prove_check)
-endif
-endif # PGXS
+endif # REGRESS
 
 ifndef NO_TEMP_INSTALL
 temp-install: EXTRA_INSTALL+=$(subdir)
index 44f600cb6c790abe336dc1a7c3f9c8351869f81d..62bbe8f6b1a51bf7b57c3d139e1544b14f8fbe00 100644 (file)
@@ -1,3 +1,3 @@
 # Generated subdirectories
-/output_iso/
+/isolation_output/
 /tmp_check/
index c8715939060ec2d70e41988b2392f68f7d71df1f..566655cd61d5946e3b3c6f3fbcc38d0b8a1d91c5 100644 (file)
@@ -1,9 +1,12 @@
 # src/test/modules/brin/Makefile
 
-EXTRA_INSTALL = contrib/pageinspect
+# Note: because we don't tell the Makefile there are any regression tests,
+# we have to clean those result files explicitly
+EXTRA_CLEAN = $(pg_regress_clean_files) ./isolation_output
 
-ISOLATION = summarization-and-inprogress-insertion
-TAP_TESTS = 1
+EXTRA_INSTALL=contrib/pageinspect
+
+ISOLATIONCHECKS=summarization-and-inprogress-insertion
 
 ifdef USE_PGXS
 PG_CONFIG = pg_config
@@ -15,3 +18,19 @@ top_builddir = ../../../..
 include $(top_builddir)/src/Makefile.global
 include $(top_srcdir)/contrib/contrib-global.mk
 endif
+
+check: isolation-check prove-check
+
+isolation-check: | submake-isolation temp-install
+       $(MKDIR_P) isolation_output
+       $(pg_isolation_regress_check) \
+           --outputdir=./isolation_output \
+           $(ISOLATIONCHECKS)
+
+prove-check: | temp-install
+       $(prove_check)
+
+.PHONY: check isolation-check prove-check
+
+submake-isolation:
+       $(MAKE) -C $(top_builddir)/src/test/isolation all
index 7a24bb3c6d96c167a3a2b1950fa699b70ef1ebbc..6d4f3be358e7c6d61709b2ebf7f8533bb2ef79e1 100644 (file)
@@ -2,7 +2,6 @@
 
 REGRESS = commit_timestamp
 REGRESS_OPTS = --temp-config=$(top_srcdir)/src/test/modules/commit_ts/commit_ts.conf
-TAP_TESTS = 1
 
 ifdef USE_PGXS
 PG_CONFIG = pg_config
@@ -14,3 +13,8 @@ top_builddir = ../../../..
 include $(top_builddir)/src/Makefile.global
 include $(top_srcdir)/contrib/contrib-global.mk
 endif
+
+check: prove-check
+
+prove-check: | temp-install
+       $(prove_check)
index dfb4537f63c77f347d498c4e69965ec816127495..b6d998f3207582eac6c242db7442d7be607ceffd 100644 (file)
@@ -4,12 +4,7 @@
 # we have to clean those result files explicitly
 EXTRA_CLEAN = $(pg_regress_clean_files)
 
-ISOLATION = sto_using_cursor sto_using_select sto_using_hash_index
-ISOLATION_OPTS = --temp-config $(top_srcdir)/src/test/modules/snapshot_too_old/sto.conf
-
-# Disabled because these tests require "old_snapshot_threshold" >= 0, which
-# typical installcheck users do not have (e.g. buildfarm clients).
-NO_INSTALLCHECK = 1
+ISOLATIONCHECKS=sto_using_cursor sto_using_select sto_using_hash_index
 
 ifdef USE_PGXS
 PG_CONFIG = pg_config
@@ -22,7 +17,31 @@ include $(top_builddir)/src/Makefile.global
 include $(top_srcdir)/contrib/contrib-global.mk
 endif
 
+# Disabled because these tests require "old_snapshot_threshold" >= 0, which
+# typical installcheck users do not have (e.g. buildfarm clients).
+installcheck:;
+
 # But it can nonetheless be very helpful to run tests on preexisting
 # installation, allow to do so, but only if requested explicitly.
-installcheck-force:
-       $(pg_isolation_regress_installcheck) $(ISOLATION)
+installcheck-force: isolationcheck-install-force
+
+check: isolationcheck
+
+submake-isolation:
+       $(MAKE) -C $(top_builddir)/src/test/isolation all
+
+submake-test_snapshot_too_old:
+       $(MAKE) -C $(top_builddir)/src/test/modules/snapshot_too_old
+
+isolationcheck: | submake-isolation submake-test_snapshot_too_old temp-install
+       $(pg_isolation_regress_check) \
+           --temp-config $(top_srcdir)/src/test/modules/snapshot_too_old/sto.conf \
+           $(ISOLATIONCHECKS)
+
+isolationcheck-install-force: all | submake-isolation submake-test_snapshot_too_old temp-install
+       $(pg_isolation_regress_installcheck) \
+           $(ISOLATIONCHECKS)
+
+.PHONY: check submake-test_snapshot_too_old isolationcheck isolationcheck-install-force
+
+temp-install: EXTRA_INSTALL=src/test/modules/snapshot_too_old
index 6123b994f60bbaa73594c78b79f22fd94061ce85..c64b35370729ffbdbbe2f2b47f585d3dff1b5f2f 100644 (file)
@@ -7,7 +7,6 @@ EXTENSION = test_pg_dump
 DATA = test_pg_dump--1.0.sql
 
 REGRESS = test_pg_dump
-TAP_TESTS = 1
 
 ifdef USE_PGXS
 PG_CONFIG = pg_config
@@ -19,3 +18,8 @@ top_builddir = ../../../..
 include $(top_builddir)/src/Makefile.global
 include $(top_srcdir)/contrib/contrib-global.mk
 endif
+
+check: prove-check
+
+prove-check: | temp-install
+       $(prove_check)