Re: Making background psql nicer to use in tap tests

Andrew Dunstan <andrew@dunslane.net>

From: Andrew Dunstan <andrew@dunslane.net>
To: Daniel Gustafsson <daniel@yesql.se>, Andres Freund <andres@anarazel.de>
Cc: Tom Lane <tgl@sss.pgh.pa.us>, PostgreSQL Hackers <pgsql-hackers@postgresql.org>, Melanie Plageman <melanieplageman@gmail.com>, Amit Kapila <amit.kapila16@gmail.com>
Date: 2023-04-07T14:55:19Z
Lists: pgsql-hackers
On 2023-04-07 Fr 09:32, Daniel Gustafsson wrote:
>> On 5 Apr 2023, at 23:44, Daniel Gustafsson<daniel@yesql.se>  wrote:
>>
>> Unless there are objections I plan to get this in before the freeze, in order
>> to have better interactive tests starting with 16.  With a little bit of
>> documentation polish I think it's ready.
> When looking at the CFBot failure on Linux and Windows (not on macOS) I noticed
> that it was down to the instance lacking IO::Pty.
>
> [19:59:12.609](1.606s) ok 1 - scram_iterations in server side ROLE
> Can't locate IO/Pty.pm in @INC (you may need to install the IO::Pty module) (@INC contains: /tmp/cirrus-ci-build/src/test/perl /tmp/cirrus-ci-build/src/test/authentication /etc/perl /usr/local/lib/i386-linux-gnu/perl/5.32.1 /usr/local/share/perl/5.32.1 /usr/lib/i386-linux-gnu/perl5/5.32 /usr/share/perl5 /usr/lib/i386-linux-gnu/perl/5.32 /usr/share/perl/5.32 /usr/local/lib/site_perl) at /usr/share/perl5/IPC/Run.pm line 1828.
>
> Skimming the VM creation [0] it seems like it should be though?  On macOS the
> module is installed inside Cirrus and the test runs fine.
>
> I don't think we should go ahead with a patch that refactors interactive_psql
> only to SKIP over it in CI (which is what the tab_completion test does now), so
> let's wait until we have that sorted before going ahead.


It should probably be added to config/check_modules.pl if we're going to 
use it, but it seems to be missing for Strawberry Perl and msys/ucrt64 
perl and I'm not sure how easy it will be to add there. It would 
certainly add an installation burden for test instances at the very least.


cheers


andrew


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

Commits

  1. Fix missing installation/uninstallation rules for BackgroundPsql.pm

  2. Backport BackgroundPsql perl test module

  3. Add missing uninstallation rule for BackgroundPsql.pm

  4. Fix missing installation rules for BackgroundPsql.pm

  5. Skip \password TAP test on old IPC::Run versions

  6. Test SCRAM iteration changes with psql \password

  7. Refactor background psql TAP functions