Re: [HACKERS] Need a builtin way to run all tests faster manner - Mailing list pgsql-hackers

From Tom Lane
Subject Re: [HACKERS] Need a builtin way to run all tests faster manner
Date
Msg-id 17891.1489251923@sss.pgh.pa.us
Whole thread Raw
In response to Re: [HACKERS] Need a builtin way to run all tests faster manner  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: [HACKERS] Need a builtin way to run all tests faster manner  (Andres Freund <andres@anarazel.de>)
List pgsql-hackers
I wrote:
> I believe the core problem is that contrib/test_decoding's regresscheck
> and isolationcheck targets each want to use ./tmp_check as their
> --temp-instance.  make has no reason to believe it shouldn't run those
> two sub-jobs in parallel, but when it does, we get two postmasters trying
> to share the same directory.  This looks reasonably straightforward to
> solve, but I'm not entirely familiar with the code here, and am not
> sure what is the least ugly way to fix it.

Enlarging on that: if I cd into contrib/test_decoding and do
"make check -j4" or so, it reliably fails.  With the attached patch,
it passes.  This is a localized patch that only fixes things for
contrib/test_decoding; what I'm wondering is if it would be better to
establish a more widespread convention that $(pg_isolation_regress_check)
should use a different --temp-instance directory than $(pg_regress_check)
does.

            regards, tom lane

diff --git a/contrib/test_decoding/.gitignore b/contrib/test_decoding/.gitignore
index 1f95503..09d60bf 100644
*** a/contrib/test_decoding/.gitignore
--- b/contrib/test_decoding/.gitignore
***************
*** 3,5 ****
--- 3,6 ----
  /isolation_output/
  /regression_output/
  /tmp_check/
+ /tmp_check_iso/
diff --git a/contrib/test_decoding/Makefile b/contrib/test_decoding/Makefile
index d2bc8b8..ea31d88 100644
*** a/contrib/test_decoding/Makefile
--- b/contrib/test_decoding/Makefile
*************** PGFILEDESC = "test_decoding - example of
*** 5,11 ****

  # 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) ./regression_output ./isolation_output

  ifdef USE_PGXS
  PG_CONFIG = pg_config
--- 5,12 ----

  # 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) ./regression_output \
!     ./isolation_output ./tmp_check_iso

  ifdef USE_PGXS
  PG_CONFIG = pg_config
*************** isolationcheck: | submake-isolation subm
*** 59,64 ****
--- 60,66 ----
      $(MKDIR_P) isolation_output
      $(pg_isolation_regress_check) \
          --temp-config $(top_srcdir)/contrib/test_decoding/logical.conf \
+         --temp-instance=./tmp_check_iso \
          --outputdir=./isolation_output \
          $(ISOLATIONCHECKS)


-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: [HACKERS] make check-world output
Next
From: Oleg Bartunov
Date:
Subject: Re: [HACKERS] SQL/JSON in PostgreSQL