summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2020-07-09 17:38:52 -0400
committerTom Lane <tgl@sss.pgh.pa.us>2020-07-09 17:38:52 -0400
commitd0390509a1823d5cb29ae3ed7cbbedf8684d3d6c (patch)
tree363eacf68d169e2017bd0277c6a76093fc4e0f42 /src
parente3ed833e0c566c106b00b9a0728bc2cb1db8161a (diff)
Tighten up Windows CRLF conversion in our TAP test scripts.
Back-patch commits 91bdf499b and ffb4cee43, so that all branches agree on when and how to do Windows CRLF conversion. This should close the referenced thread. Thanks to Andrew Dunstan for discussion/review. Discussion: https://postgr.es/m/412ae8da-76bb-640f-039a-f3513499e53d@gmx.net
Diffstat (limited to 'src')
-rw-r--r--src/bin/pg_rewind/t/RewindTest.pm6
-rw-r--r--src/test/perl/PostgresNode.pm13
-rw-r--r--src/test/perl/TestLib.pm4
3 files changed, 13 insertions, 10 deletions
diff --git a/src/bin/pg_rewind/t/RewindTest.pm b/src/bin/pg_rewind/t/RewindTest.pm
index 734adb72ec5..2c00b823fdb 100644
--- a/src/bin/pg_rewind/t/RewindTest.pm
+++ b/src/bin/pg_rewind/t/RewindTest.pm
@@ -120,7 +120,7 @@ sub check_query
}
else
{
- $stdout =~ s/\r//g if $Config{osname} eq 'msys';
+ $stdout =~ s/\r\n/\n/g if $Config{osname} eq 'msys';
is($stdout, $expected_stdout, "$test_name: query result matches");
}
}
@@ -139,8 +139,8 @@ sub poll_query_until
my $cmd = [ 'psql', '-At', '-c', "$query", '-d', "$connstr" ];
my $result = run $cmd, '>', \$stdout, '2>', \$stderr;
+ $stdout =~ s/\r\n/\n/g if $Config{osname} eq 'msys';
chomp($stdout);
- $stdout =~ s/\r//g if $Config{osname} eq 'msys';
if ($stdout eq "t")
{
return 1;
@@ -153,8 +153,8 @@ sub poll_query_until
# The query result didn't change in 90 seconds. Give up. Print the
# output from the last attempt, hopefully that's useful for debugging.
+ $stderr =~ s/\r\n/\n/g if $Config{osname} eq 'msys';
chomp($stderr);
- $stderr =~ s/\r//g if $Config{osname} eq 'msys';
diag qq(poll_query_until timed out executing this query:
$query
expecting this output:
diff --git a/src/test/perl/PostgresNode.pm b/src/test/perl/PostgresNode.pm
index 3e39fd6979d..6d3fa1370b5 100644
--- a/src/test/perl/PostgresNode.pm
+++ b/src/test/perl/PostgresNode.pm
@@ -1122,7 +1122,6 @@ sub safe_psql
print "\n#### End standard error\n";
}
- $stdout =~ s/\r//g if $TestLib::windows_os;
return $stdout;
}
@@ -1297,16 +1296,20 @@ sub psql
}
};
+ # Note: on Windows, IPC::Run seems to convert \r\n to \n in program output
+ # if we're using native Perl, but not if we're using MSys Perl. So do it
+ # by hand in the latter case, here and elsewhere.
+
if (defined $$stdout)
{
+ $$stdout =~ s/\r\n/\n/g if $Config{osname} eq 'msys';
chomp $$stdout;
- $$stdout =~ s/\r//g if $TestLib::windows_os;
}
if (defined $$stderr)
{
+ $$stderr =~ s/\r\n/\n/g if $Config{osname} eq 'msys';
chomp $$stderr;
- $$stderr =~ s/\r//g if $TestLib::windows_os;
}
# See http://perldoc.perl.org/perlvar.html#%24CHILD_ERROR
@@ -1364,8 +1367,8 @@ sub poll_query_until
[ 'psql', '-XAt', '-c', $query, '-d', $self->connstr($dbname) ];
my $result = IPC::Run::run $cmd, '>', \$stdout, '2>', \$stderr;
+ $stdout =~ s/\r\n/\n/g if $Config{osname} eq 'msys';
chomp($stdout);
- $stdout =~ s/\r//g if $TestLib::windows_os;
if ($stdout eq "t")
{
return 1;
@@ -1378,8 +1381,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 $Config{osname} eq 'msys';
chomp($stderr);
- $stderr =~ s/\r//g if $TestLib::windows_os;
diag qq(poll_query_until timed out executing this query:
$query
expecting this output:
diff --git a/src/test/perl/TestLib.pm b/src/test/perl/TestLib.pm
index b2c536b044a..b606e1b173f 100644
--- a/src/test/perl/TestLib.pm
+++ b/src/test/perl/TestLib.pm
@@ -259,8 +259,8 @@ sub psql
my ($stdout, $stderr);
print("# Running SQL command: $sql\n");
run [ 'psql', '-X', '-A', '-t', '-q', '-d', $dbname, '-f', '-' ], '<', \$sql, '>', \$stdout, '2>', \$stderr or die;
+ $stdout =~ s/\r\n/\n/g if $Config{osname} eq 'msys';
chomp $stdout;
- $stdout =~ s/\r//g if $Config{osname} eq 'msys';
return $stdout;
}
@@ -281,7 +281,7 @@ sub slurp_file
or die "could not read \"$filename\": $!";
my $contents = <$in>;
close $in;
- $contents =~ s/\r//g if $Config{osname} eq 'msys';
+ $contents =~ s/\r\n/\n/g if $Config{osname} eq 'msys';
return $contents;
}