postgres.git / summary / log / commit / refs

commit    52c0c11367fdac78a59997de2b24031c0501fbe7
Author:   Andrew Dunstan <andrew@dunslane.net>
Date:     Fri Oct 22 13:11:52 2021 +0000

    Add module build directory to the PATH for TAP tests
    
    For non-MSVC builds this is make's $(CURDIR), while for MSVC builds it
    is $topdir/$Config/$module. The directory is added as the second element
    in the PATH, so that the install location takes precedence, but the
    added PATH element takes precedence over the rest of the PATH.
    
    The reason for this is to allow tests to find built products that are
    not installed, such as the libpq_pipeline test driver.
    
    The libpq_pipeline test is adjusted to take advantage of this.
    
    Based on a suggestion from Andres Freund.
    
    Backpatch to release 14.
    
    Discussion: https://postgr.es/m/4941f5a5-2d50-1a0e-6701-14c5fefe92d6@dunslane.net


src/Makefile.global.in | 10 +++++----- src/test/modules/libpq_pipeline/t/001_libpq_pipeline.pl | 7 +++---- src/tools/msvc/vcregress.pl | 3 +++ 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/src/Makefile.global.in b/src/Makefile.global.in index 6e2f224cc46..3b65f716cd2 100644 --- a/src/Makefile.global.in +++ b/src/Makefile.global.in @@ -438,7 +438,7 @@ ld_library_path_var = LD_LIBRARY_PATH # need something more here. If not defined then the expansion does # nothing. with_temp_install = \ - PATH="$(abs_top_builddir)/tmp_install$(bindir):$$PATH" \ + PATH="$(abs_top_builddir)/tmp_install$(bindir):$(CURDIR):$$PATH" \ $(call add_to_path,$(strip $(ld_library_path_var)),$(abs_top_builddir)/tmp_install$(libdir)) \ $(with_temp_install_extra) @@ -449,8 +449,8 @@ define prove_installcheck rm -rf '$(CURDIR)'/tmp_check $(MKDIR_P) '$(CURDIR)'/tmp_check cd $(srcdir) && \ - TESTDIR='$(CURDIR)' PATH="$(bindir):$$PATH" PGPORT='6$(DEF_PGPORT)' \ - top_builddir='$(CURDIR)/$(top_builddir)' \ + TESTDIR='$(CURDIR)' 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) endef @@ -459,8 +459,8 @@ define prove_installcheck rm -rf '$(CURDIR)'/tmp_check $(MKDIR_P) '$(CURDIR)'/tmp_check cd $(srcdir) && \ - TESTDIR='$(CURDIR)' PATH="$(bindir):$$PATH" PGPORT='6$(DEF_PGPORT)' \ - top_builddir='$(top_builddir)' \ + TESTDIR='$(CURDIR)' 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) endef diff --git a/src/test/modules/libpq_pipeline/t/001_libpq_pipeline.pl b/src/test/modules/libpq_pipeline/t/001_libpq_pipeline.pl index bf71eabd067..d8d496c995a 100644 --- a/src/test/modules/libpq_pipeline/t/001_libpq_pipeline.pl +++ b/src/test/modules/libpq_pipeline/t/001_libpq_pipeline.pl @@ -14,9 +14,8 @@ $node->init; $node->start; my $numrows = 700; -my $libpq_pipeline = "$ENV{TESTDIR}/libpq_pipeline"; -my ($out, $err) = run_command([ $libpq_pipeline, 'tests' ]); +my ($out, $err) = run_command([ 'libpq_pipeline', 'tests' ]); die "oops: $err" unless $err eq ''; my @tests = split(/\s+/, $out); @@ -39,8 +38,8 @@ for my $testname (@tests) # Execute the test $node->command_ok( [ - $libpq_pipeline, @extraargs, - $testname, $node->connstr('postgres') + 'libpq_pipeline', @extraargs, + $testname, $node->connstr('postgres') ], "libpq_pipeline $testname"); diff --git a/src/tools/msvc/vcregress.pl b/src/tools/msvc/vcregress.pl index 35e8f67f013..fc826da3ff2 100644 --- a/src/tools/msvc/vcregress.pl +++ b/src/tools/msvc/vcregress.pl @@ -248,6 +248,9 @@ sub tap_check $ENV{REGRESS_SHLIB} = "$topdir/src/test/regress/regress.dll"; $ENV{TESTDIR} = "$dir"; + my $module = basename $dir; + # add the module build dir as the second element in the PATH + $ENV{PATH} =~ s!;!;$topdir/$Config/$module;!; rmtree('tmp_check'); system(@args); [parent: 9e84f6a72133]