On Sun, Feb 13, 2022 at 5:50 PM Andres Freund <and...@anarazel.de> wrote: > On 2022-01-18 11:20:16 +0900, Michael Paquier wrote: > > +REGRESS_OUTPUTDIR=$(abs_top_builddir)/src/bin/pg_upgrade > > +export REGRESS_OUTPUTDIR > > I don't really understand why 027_stream_regress.pl is using this (and thus > not why it's used here). The tap tests create files all the time, why is this > different? > > It's not like make / msvc put the data in different places: > src/test/recovery/Makefile:REGRESS_OUTPUTDIR=$(abs_top_builddir)/src/test/recovery/tmp_check > src/tools/msvc/vcregress.pl: $ENV{REGRESS_OUTPUTDIR} = > "$topdir/src/test/recovery/tmp_check";
As I wrote in https://www.postgresql.org/message-id/CA%2BhUKGK-%2Bmg6RWiDu0JudF6jWeL5%2BgPmi8EKUm1eAzmdbwiE_A%40mail.gmail.com, >> > +# required for 027_stream_regress.pl >> > +REGRESS_OUTPUTDIR=$(abs_top_builddir)/src/test/recovery >> > +export REGRESS_OUTPUTDIR >> >> Why do we need this? > > The Make macro "prove_check" (src/Makefile.global.in) always changes > to the source directory to run TAP tests. Without an explicit > directive to control where regression test output goes, it got > splattered all over the source tree in VPATH builds. I didn't see an > existing way to adjust that (did I miss something?). Hence desire to > pass down a path in the build tree. Better ideas welcome. I thought it was a goal that VPATH builds shouldn't pollute the source tree, but the Make macro prove_check is explicitly doing so by default. Perhaps *that* should be fixed?