On 3/31/22 11:32, Tom Lane wrote:
> Robert Haas <robertmh...@gmail.com> writes:
>> On Thu, Mar 31, 2022 at 10:52 AM Andrew Dunstan <and...@dunslane.net> wrote:
>>> We should probably fix the test though, so it doesn't require Unix
>>> sockets. It should be possible, although I haven't looked yet to see how.
>> Our mutual colleague Neha Sharma pointed out this email message to me:
>> http://postgr.es/m/106926.1643842...@sss.pgh.pa.us


Yep, that's kinda what I was expecting.


>> I actually don't understand why using pg_regress --auth-extra would
>> fix it, or what that option does, or why we're even running pg_regress
>> at all in PostgreSQL::Test::Cluster::init. I think it might be to fix
>> this exact issue, but there's no SGML documentation for pg_regress,



I really don't know why this stuff is in pg_regress at all. It seems
rather odd to me and it's annoyed me for a while. But that's a fight for
another day.


> I'm not volunteering to fix that, but this comment in pg_regress.c
> is probably adequately illuminating:
>
>  * Rewrite pg_hba.conf and pg_ident.conf to use SSPI authentication.  Permit
>  * the current OS user to authenticate as the bootstrap superuser and as any
>  * user named in a --create-role option.
>
> This script is creating users manually rather than letting the TAP
> infrastructure do it, which is an antipattern.
>
>                       


Yeah, I think the fix is as simple as the attached.


cheers


andrew



--
Andrew Dunstan
EDB: https://www.enterprisedb.com
diff --git a/contrib/basebackup_to_shell/t/001_basic.pl b/contrib/basebackup_to_shell/t/001_basic.pl
index 57534b62c8..d246a01cfa 100644
--- a/contrib/basebackup_to_shell/t/001_basic.pl
+++ b/contrib/basebackup_to_shell/t/001_basic.pl
@@ -17,11 +17,12 @@ if (!defined $gzip || $gzip eq '')
 }
 
 my $node = PostgreSQL::Test::Cluster->new('primary');
-$node->init('allows_streaming' => 1);
+$node->init('allows_streaming' => 1),
+  auth_extra       => [ '--create-role', 'backupuser' ]);
 $node->append_conf('postgresql.conf',
 				   "shared_preload_libraries = 'basebackup_to_shell'");
 $node->start;
-$node->safe_psql('postgres', 'CREATE USER backupuser REPLICATION');
+$node->safe_psql('postgres', 'ALTER USER backupuser REPLICATION');
 $node->safe_psql('postgres', 'CREATE ROLE trustworthy');
 
 # For nearly all pg_basebackup invocations some options should be specified,

Reply via email to