Re: pgsql: Skip \password TAP test on old IPC::Run versions

From: Andrew Dunstan <andrew(at)dunslane(dot)net>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Daniel Gustafsson <daniel(at)yesql(dot)se>
Cc: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: Re: pgsql: Skip \password TAP test on old IPC::Run versions
Date: 2023-04-08 20:40:12
Message-ID: e5262673-8958-298a-faba-d25c79dd9807@dunslane.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers


On 2023-04-08 Sa 16:30, Tom Lane wrote:
> Daniel Gustafsson<daniel(at)yesql(dot)se> writes:
>> On 8 Apr 2023, at 18:23, Tom Lane<tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
>>> Can't we write "use IPC::Run 0.98;" and let
>>> some other code manage the version comparison?
>> We can, but that AFAIK (Andrew might have a better answer) requires the below
>> diff which I think leaves some readability to be desired:
>> - (eval { require IO::Pty; } && eval { $IPC::Run::VERSION >= '0.98' });
>> + (eval { require IO::Pty; } && !!eval { IPC::Run->VERSION('0.98'); 1 });
> Maybe I'm missing something, but I was envisioning
>
> eval { require IO::Pty; use IPC::Run 0.98; }
>
> with no need to do more than check if the eval traps an error.
>
>

You need to be careful with "use". It is executed in the compile phase,
so I'd avoid it here.

cheers

andrew

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

In response to

Browse pgsql-committers by date

  From Date Subject
Next Message Daniel Gustafsson 2023-04-08 20:46:08 Re: pgsql: Skip \password TAP test on old IPC::Run versions
Previous Message Andrew Dunstan 2023-04-08 20:37:04 Re: pgsql: Skip \password TAP test on old IPC::Run versions