aboutsummaryrefslogtreecommitdiff
path: root/src/test/perl/PostgresNode.pm
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2020-07-08 20:25:52 -0400
committerTom Lane <tgl@sss.pgh.pa.us>2020-07-08 20:25:52 -0400
commit91bdf499b37b0bbef34e2bab5cc40dde52bda52c (patch)
treeeaf3e17c4316cceece0724b5df1c69e98d8e2894 /src/test/perl/PostgresNode.pm
parent2b7dbc0db6ecf38fc305284d006a1ef8f5354fbb (diff)
downloadpostgresql-91bdf499b37b0bbef34e2bab5cc40dde52bda52c.tar.gz
postgresql-91bdf499b37b0bbef34e2bab5cc40dde52bda52c.zip
Tighten up Windows CRLF conversion in our TAP test scripts.
The previous approach was to search-and-destroy all \r occurrences no matter what. That seems more likely to hide bugs than anything else; indeed it seems to be hiding one now. Fix things so that we only transform \r\n to \n. Side effects: must do this before, not after, chomp'ing if we're going to chomp, else we'd fail to clean up a trailing \r\n. Also, remove safe_psql's redundant repetition of what psql already did; else it might reduce \r\r\n to \n, which is exactly the scenario I'm hoping to expose. Perhaps this should be back-patched, but for now I'm content to see what happens in HEAD. Discussion: https://postgr.es/m/412ae8da-76bb-640f-039a-f3513499e53d@gmx.net
Diffstat (limited to 'src/test/perl/PostgresNode.pm')
-rw-r--r--src/test/perl/PostgresNode.pm13
1 files changed, 6 insertions, 7 deletions
diff --git a/src/test/perl/PostgresNode.pm b/src/test/perl/PostgresNode.pm
index b216bbbe4bb..0914fdaa463 100644
--- a/src/test/perl/PostgresNode.pm
+++ b/src/test/perl/PostgresNode.pm
@@ -1324,7 +1324,6 @@ sub safe_psql
print "\n#### End standard error\n";
}
- $stdout =~ s/\r//g if $TestLib::windows_os;
return $stdout;
}
@@ -1515,14 +1514,14 @@ sub psql
if (defined $$stdout)
{
+ $$stdout =~ s/\r\n/\n/g if $TestLib::windows_os;
chomp $$stdout;
- $$stdout =~ s/\r//g if $TestLib::windows_os;
}
if (defined $$stderr)
{
+ $$stderr =~ s/\r\n/\n/g if $TestLib::windows_os;
chomp $$stderr;
- $$stderr =~ s/\r//g if $TestLib::windows_os;
}
# See http://perldoc.perl.org/perlvar.html#%24CHILD_ERROR
@@ -1652,8 +1651,8 @@ sub poll_query_until
{
my $result = IPC::Run::run $cmd, '>', \$stdout, '2>', \$stderr;
+ $stdout =~ s/\r\n/\n/g if $TestLib::windows_os;
chomp($stdout);
- $stdout =~ s/\r//g if $TestLib::windows_os;
if ($stdout eq $expected)
{
@@ -1668,8 +1667,8 @@ sub poll_query_until
# The query result didn't change in 180 seconds. Give up. Print the
# output from the last attempt, hopefully that's useful for debugging.
+ $stderr =~ s/\r\n/\n/g if $TestLib::windows_os;
chomp($stderr);
- $stderr =~ s/\r//g if $TestLib::windows_os;
diag qq(poll_query_until timed out executing this query:
$query
expecting this output:
@@ -2113,8 +2112,8 @@ sub pg_recvlogical_upto
}
};
- $stdout =~ s/\r//g if $TestLib::windows_os;
- $stderr =~ s/\r//g if $TestLib::windows_os;
+ $stdout =~ s/\r\n/\n/g if $TestLib::windows_os;
+ $stderr =~ s/\r\n/\n/g if $TestLib::windows_os;
if (wantarray)
{