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,