v11-0001-add-test-for-nested-options-in-servie-file.patch

application/octet-stream

Filename: v11-0001-add-test-for-nested-options-in-servie-file.patch
Type: application/octet-stream
Part: 0
Message: Re: [PATCH] PGSERVICEFILE as part of a normal connection string

Patch

Same data as JSON: GET /api/v1/attachments/:id/patch the parsed metadata as JSON — format, series position, per-file stats; never the diff bytes. API reference →
Format: format-patch
Series: patch v11-0001
Subject: add test for nested options in servie file
File+
src/interfaces/libpq/t/006_service.pl 31 0
From 34bc97a197b926abf86f80576e9f3bf2bc4cce69 Mon Sep 17 00:00:00 2001
From: Ryo Kanbayashi <ryo.contact@gmail.com>
Date: Fri, 27 Jun 2025 20:46:38 +0900
Subject: [PATCH v11 1/3] add test for nested options in servie file

---
 src/interfaces/libpq/t/006_service.pl | 31 +++++++++++++++++++++++++++
 1 file changed, 31 insertions(+)

diff --git a/src/interfaces/libpq/t/006_service.pl b/src/interfaces/libpq/t/006_service.pl
index 4fe5adc5c2a..65abbf8df89 100644
--- a/src/interfaces/libpq/t/006_service.pl
+++ b/src/interfaces/libpq/t/006_service.pl
@@ -47,6 +47,18 @@ my $srvfile_default = "$td/pg_service.conf";
 # Missing service file.
 my $srvfile_missing = "$td/pg_service_missing.conf";
 
+# Service file with service defined (invalid).
+my $srvfile_service_nested = "$td/pg_service_service_nested.conf";
+copy($srvfile_valid, $srvfile_service_nested) or
+	die "Could not copy $srvfile_valid to $srvfile_service_nested: $!";
+append_to_file($srvfile_service_nested, 'service=tmp_srv' . $newline);
+
+# Service file with servicefile defined (invalid).
+my $srvfile_servicefile_nested = "$td/pg_service_servicefile_nested.conf";
+copy($srvfile_valid, $srvfile_servicefile_nested) or
+	die "Could not copy $srvfile_valid to $srvfile_servicefile_nested: $!";
+append_to_file($srvfile_servicefile_nested, 'servicefile=' . $srvfile_default . $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 +158,25 @@ local $ENV{PGSERVICEFILE} = "$srvfile_empty";
 	unlink($srvfile_default);
 }
 
+# Check that service file which contains nested service and servicefile options fails
+{
+	local $ENV{PGSERVICEFILE} = $srvfile_service_nested;
+
+	$dummy_node->connect_fails(
+		'service=my_srv',
+		'service=... fails with nested service option in service file',
+		expected_stderr => qr/nested "service" specifications not supported in service file/
+	);
+
+	local $ENV{PGSERVICEFILE} = $srvfile_servicefile_nested;
+
+	$dummy_node->connect_fails(
+		'service=my_srv',
+		'servicefile=... fails with nested service option in service file',
+		expected_stderr => qr/nested "servicefile" specifications not supported in service file/
+	);
+}
+
 $node->teardown_node;
 
 done_testing();
-- 
2.34.1