pg_dump test: Make concatenated create_sql commands more readable

Started by Peter Eisentrautabout 3 years ago1 messages
#1Peter Eisentraut
peter.eisentraut@enterprisedb.com
1 attachment(s)

When the pg_dump 002_pg_dump.pl test generates the command to load the
schema, it does

# Add terminating semicolon
$create_sql{$test_db} .= $tests{$test}->{create_sql} . ";";

In some cases, this creates a duplicate semicolon, but more importantly,
this doesn't add any newline. So if you look at the result in either
the server log or in tmp_check/log/regress_log_002_pg_dump, it looks
like a complete mess. The attached patch makes the output look cleaner
for manual inspection: add semicolon only if necessary, and add two
newlines.

Attachments:

0001-pg_dump-test-Make-concatenated-create_sql-commands-m.patchtext/plain; charset=UTF-8; name=0001-pg_dump-test-Make-concatenated-create_sql-commands-m.patchDownload
From 28e70332050e81c3faebc1bd0fe31e5863adcb78 Mon Sep 17 00:00:00 2001
From: Peter Eisentraut <peter@eisentraut.org>
Date: Sat, 22 Oct 2022 12:29:26 +0200
Subject: [PATCH] pg_dump test: Make concatenated create_sql commands more
 readable

---
 src/bin/pg_dump/t/002_pg_dump.pl | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/src/bin/pg_dump/t/002_pg_dump.pl b/src/bin/pg_dump/t/002_pg_dump.pl
index a869321cdfc3..5df5a0ad59ef 100644
--- a/src/bin/pg_dump/t/002_pg_dump.pl
+++ b/src/bin/pg_dump/t/002_pg_dump.pl
@@ -3984,8 +3984,12 @@
 			next;
 		}
 
-		# Add terminating semicolon
-		$create_sql{$test_db} .= $tests{$test}->{create_sql} . ";";
+		# Normalize command ending: strip all line endings, add
+		# semicolon if missing, add two newlines.
+		my $create_sql = $tests{$test}->{create_sql};
+		chomp $create_sql;
+		$create_sql .= ';' unless substr($create_sql, -1) eq ';';
+		$create_sql{$test_db} .= $create_sql . "\n\n";
 	}
 }
 
-- 
2.37.3