Re: pgsql: Reference test binary using TESTDIR in 001_libpq_pipeline.pl.

From: Andrew Dunstan <andrew(at)dunslane(dot)net>
To: Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
Cc: Andres Freund <andres(at)anarazel(dot)de>, pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: Re: pgsql: Reference test binary using TESTDIR in 001_libpq_pipeline.pl.
Date: 2021-10-18 15:39:08
Message-ID: ffca3f20-e0ed-5328-7793-cffe9cb7d59f@dunslane.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers


On 10/18/21 10:23 AM, Alvaro Herrera wrote:
> On 2021-Oct-17, Andrew Dunstan wrote:
>
>> +sub find_built_program
>> +{
>> + my $program = shift;
>> + my $path;
>> +
>> + if (defined $ENV{MSBUILDDIR})
>> + {
>> + # vcregress.pl sets MSBUILDDIR which is the root of all the build dirs
>> + my $wanted = sub { $_ eq "$program.exe" && $path = $File::Find::name;};
>> + File::Find::find($wanted,$ENV{MSBUILDDIR});
>> + }
> Hmm, it seems weird to have to use File::Find when we already know where
> the program is, right? I mean, per your previous patch, we know that
> the program is in $MSBUILDDIR/libpq_pipeline/libpq_pipeline.exe, so why
> don't we make this one be
>
> if (defined $ENV{MSBUILDDIR})
> {
> return $ENV{MSBUILDDIR} . "$program/$program.exe";
> }

Could do, but say the module had two programs? Mostly we don't do that
but Release/pg_isolation_regress has two executables, so it's more than
just theoretically possible.

File::Find on the build directory is likely to be fairly quick, but a
simpler way might be to use glob expansion:

maybe something like:

my @progs = glob("$ENV{MSBUILDDIR}/*/$program.exe");

plus some logic to disambiguate any duplicates.

>
> ?
>
> I noticed that drongo is still red, and reporting that no tests are
> being run. While this makes sense (because the list of tests is
> obtained by running libpq_pipeline), I am surprised that this isn't
> reported as such. I would have expected it to die with an error message
> starting with "oops: " ... did run_command() fail to return stderr?
>
> ... oh, run_command() seems a bit too optimistic: it doesn't check
> whether IPC::Run::run() failed. I think that's worth fixing
> independently.
>

Yeah.

cheers

andrew

--
Andrew Dunstan
EDB: https://www.enterprisedb.com

In response to

Responses

Browse pgsql-committers by date

  From Date Subject
Next Message Heikki Linnakangas 2021-10-18 17:49:09 pgsql: Fix parallel sort, broken by the balanced merge patch.
Previous Message Alvaro Herrera 2021-10-18 14:23:48 Re: pgsql: Reference test binary using TESTDIR in 001_libpq_pipeline.pl.