diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2020-07-08 20:25:52 -0400 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2020-07-08 20:25:52 -0400 |
commit | 91bdf499b37b0bbef34e2bab5cc40dde52bda52c (patch) | |
tree | eaf3e17c4316cceece0724b5df1c69e98d8e2894 /src/test/perl/PostgresNode.pm | |
parent | 2b7dbc0db6ecf38fc305284d006a1ef8f5354fbb (diff) | |
download | postgresql-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.pm | 13 |
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) { |