Hello, this is just an entry mail for the next CF.

The tap-test fails when the soruce directoy containing spaces. I
accidentially hit this by a Jenkins project with the name "test

The function system_log() is safe for such parameters but
backup() uses it in wrong way. On the other hand,
enable_restoring() and enable_archiving() forgets to quote such a
path containing spaces as already done for Windows. I don't see
the similar problem in other places.

Kyotaro Horiguchi
NTT Open Source Software Center

>From 4c38a3e95da1abb5360a80b9ad646c9c6309bd9b Mon Sep 17 00:00:00 2001
From: Kyotaro Horiguchi <horiguchi.kyot...@lab.ntt.co.jp>
Date: Mon, 4 Jul 2016 15:18:51 +0900
Subject: [PATCH] Allow spaces in working directory path on TAP-tests.

Several tap tests fails when the soruce directory path is containing
spaces. This patch fixes it.
 src/test/perl/PostgresNode.pm | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/src/test/perl/PostgresNode.pm b/src/test/perl/PostgresNode.pm
index 636dfec..5767919 100644
--- a/src/test/perl/PostgresNode.pm
+++ b/src/test/perl/PostgresNode.pm
@@ -475,7 +475,8 @@ sub backup
 	my $name        = $self->name;
 	print "# Taking pg_basebackup $backup_name from node \"$name\"\n";
-	TestLib::system_or_bail("pg_basebackup -D $backup_path -p $port -x");
+	TestLib::system_or_bail('pg_basebackup', '-D', $backup_path,
+							'-p', $port, '-x');
 	print "# Backup finished\n";
@@ -763,7 +764,7 @@ sub enable_restoring
 	my $copy_command =
 	  ? qq{copy "$path\\\\%f" "%p"}
-	  : qq{cp $path/%f %p};
+	  : qq{cp "$path/%f" "%p"};
 		'recovery.conf', qq(
@@ -791,7 +792,7 @@ sub enable_archiving
 	my $copy_command =
 	  ? qq{copy "%p" "$path\\\\%f"}
-	  : qq{cp %p $path/%f};
+	  : qq{cp "%p" "$path/%f"};
 	# Enable archive_mode and archive_command on node

Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:

Reply via email to