postgres.git / summary / log / commit / refs

commit    df286a5b830ae8cc8aac4bd6c999ea4991f0b092
Author:   Michael Paquier <michael@paquier.xyz>
Date:     Wed Jul 09 06:46:31 2025 +0000

    libpq: Add TAP test for nested service file
    
    This test corresponds to the case of a "service" defined in a service
    file, that libpq is not able to support in parseServiceFile().
    
    This has come up during the review of a patch to add more features in
    this area, useful on its own.  Piece extracted from a larger patch by
    the same author.
    
    Author: Ryo Kanbayashi <kanbayashi.dev@gmail.com>
    Discussion: https://postgr.es/m/Zz2AE7NKKLIZTtEh@paquier.xyz


src/interfaces/libpq/t/006_service.pl | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/interfaces/libpq/t/006_service.pl b/src/interfaces/libpq/t/006_service.pl index 4fe5adc5c2a..d896558a6cc 100644 --- a/src/interfaces/libpq/t/006_service.pl +++ b/src/interfaces/libpq/t/006_service.pl @@ -47,6 +47,12 @@ my $srvfile_default = "$td/pg_service.conf"; # Missing service file. my $srvfile_missing = "$td/pg_service_missing.conf"; +# Service file with nested "service" defined. +my $srvfile_nested = "$td/pg_service_nested.conf"; +copy($srvfile_valid, $srvfile_nested) + or die "Could not copy $srvfile_valid to $srvfile_nested: $!"; +append_to_file($srvfile_nested, 'service=invalid_srv' . $newline); + # Set the fallback directory lookup of the service file to the temporary # directory of this test. PGSYSCONFDIR is used if the service file # defined in PGSERVICEFILE cannot be found, or when a service file is @@ -146,6 +152,17 @@ local $ENV{PGSERVICEFILE} = "$srvfile_empty"; unlink($srvfile_default); } +# Checks nested service file contents. +{ + local $ENV{PGSERVICEFILE} = $srvfile_nested; + + $dummy_node->connect_fails( + 'service=my_srv', + 'connection with nested service file', + expected_stderr => + qr/nested service specifications not supported in service file/); +} + $node->teardown_node; done_testing(); [parent: 24f608625f9a]