Split TESTDIR into TESTLOGDIR and TESTDATADIR
authorAndres Freund <andres@anarazel.de>
Tue, 20 Sep 2022 01:03:17 +0000 (18:03 -0700)
committerAndres Freund <andres@anarazel.de>
Tue, 20 Sep 2022 01:03:17 +0000 (18:03 -0700)
The motivation for this is twofold. For one the meson patchset would like to
have more control over the logfiles. For another, the log file location for
tap tests (tmp_check/log) is not symmetric to the log location for
pg_regress/isolation tests (log/).

This commit does not change the default location for log files for tap tests,
as that'd break the buildfarm log collection, it just provides the
infrastructure for doing so.

Reviewed-by: Tom Lane <tgl@sss.pgh.pa.us>
Reviewed-by: Peter Eisentraut <peter.eisentraut@enterprisedb.com>
Reviewed-by: Justin Pryzby <pryzby@telsasoft.com>
Discussion: https://postgr.es/m/1131990.1660661896@sss.pgh.pa.us
Discussion: https://postgr.es/m/20220828170806.GN2342@telsasoft.com

src/Makefile.global.in
src/bin/psql/t/010_tab_completion.pl
src/test/perl/PostgreSQL/Test/Utils.pm
src/tools/msvc/vcregress.pl

index 829613f26cb379dcfdd0316c6895fba030169c93..d8ea2da583c7034639999667b1a99773d6e99ed6 100644 (file)
@@ -451,7 +451,9 @@ echo "+++ tap install-check in $(subdir) +++" && \
 rm -rf '$(CURDIR)'/tmp_check && \
 $(MKDIR_P) '$(CURDIR)'/tmp_check && \
 cd $(srcdir) && \
-   TESTDIR='$(CURDIR)/tmp_check' PATH="$(bindir):$(CURDIR):$$PATH" \
+   TESTLOGDIR='$(CURDIR)/tmp_check/log' \
+   TESTDATADIR='$(CURDIR)/tmp_check' \
+   PATH="$(bindir):$(CURDIR):$$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)
@@ -462,7 +464,9 @@ echo "+++ tap install-check in $(subdir) +++" && \
 rm -rf '$(CURDIR)'/tmp_check && \
 $(MKDIR_P) '$(CURDIR)'/tmp_check && \
 cd $(srcdir) && \
-   TESTDIR='$(CURDIR)/tmp_check' PATH="$(bindir):$(CURDIR):$$PATH" \
+   TESTLOGDIR='$(CURDIR)/tmp_check/log' \
+   TESTDATADIR='$(CURDIR)/tmp_check' \
+   PATH="$(bindir):$(CURDIR):$$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)
@@ -474,7 +478,10 @@ echo "+++ tap check in $(subdir) +++" && \
 rm -rf '$(CURDIR)'/tmp_check && \
 $(MKDIR_P) '$(CURDIR)'/tmp_check && \
 cd $(srcdir) && \
-   TESTDIR='$(CURDIR)/tmp_check' $(with_temp_install) PGPORT='6$(DEF_PGPORT)' \
+   TESTLOGDIR='$(CURDIR)/tmp_check/log' \
+   TESTDATADIR='$(CURDIR)/tmp_check' \
+   $(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
index cb36e8e4811ccb1b39f2614a82b571ce86160c61..4aa6dd5fe13cf6e93a972a1543bf5d2c508ecc53 100644 (file)
@@ -70,9 +70,9 @@ delete $ENV{LS_COLORS};
 # to run in the build directory so that we can use relative paths to
 # access the tab_comp_dir subdirectory; otherwise the output from filename
 # completion tests is too variable.
-if ($ENV{TESTDIR})
+if ($ENV{TESTDATADIR})
 {
-   chdir $ENV{TESTDIR} or die "could not chdir to \"$ENV{TESTDIR}\": $!";
+   chdir $ENV{TESTDATADIR} or die "could not chdir to \"$ENV{TESTDATADIR}\": $!";
 }
 
 # Create some junk files for filename completion testing.
index 88a472f24424d0558fd336a4e7d251099aa64d12..99d334510642b7f7eed811b0777bcec6d7cd9925 100644 (file)
@@ -189,11 +189,11 @@ INIT
    # test may still fail, but it's more likely to report useful facts.
    $SIG{PIPE} = 'IGNORE';
 
-   # Determine output directories, and create them.  The base path is the
-   # TESTDIR environment variable, which is normally set by the invoking
-   # Makefile.
-   $tmp_check = $ENV{TESTDIR} ? "$ENV{TESTDIR}" : "tmp_check";
-   $log_path = "$tmp_check/log";
+   # Determine output directories, and create them.  The base paths are the
+   # TESTDATADIR / TESTLOGDIR environment variables, which are normally set
+   # by the invoking Makefile.
+   $tmp_check = $ENV{TESTDATADIR} ? "$ENV{TESTDATADIR}" : "tmp_check";
+   $log_path = $ENV{TESTLOGDIR} ? "$ENV{TESTLOGDIR}" : "log";
 
    mkdir $tmp_check;
    mkdir $log_path;
index da152da8e5fb534b9cfc47874b96f8d387c19048..5182721eb79f8deed2ac88f4d5393b3775697082 100644 (file)
@@ -291,7 +291,9 @@ sub tap_check
    $ENV{PG_REGRESS}    = "$topdir/$Config/pg_regress/pg_regress";
    $ENV{REGRESS_SHLIB} = "$topdir/src/test/regress/regress.dll";
 
-   $ENV{TESTDIR} = "$dir/tmp_check";
+   $ENV{TESTDATADIR} = "$dir/tmp_check";
+   $ENV{TESTLOGDIR} = "$dir/tmp_check/log";
+
    my $module = basename $dir;
    # add the module build dir as the second element in the PATH
    $ENV{PATH} =~ s!;!;$topdir/$Config/$module;!;