]> granicus.if.org Git - postgresql/commitdiff
Make PostgresNode.pm's poll_query_until() more chatty about failures.
authorTom Lane <tgl@sss.pgh.pa.us>
Tue, 16 Oct 2018 16:27:14 +0000 (12:27 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Tue, 16 Oct 2018 16:27:14 +0000 (12:27 -0400)
Reporting only the stderr is unhelpful when the problem is that the
server output we're getting doesn't match what was expected.  So we
should report the query output too; and just for good measure, let's
print the query we used and the output we expected.

Back-patch to 9.5 where poll_query_until was introduced.

Discussion: https://postgr.es/m/17913.1539634756@sss.pgh.pa.us

src/test/perl/PostgresNode.pm

index ae3d8ee10cc96923bf5a8d434a981be02c91a366..efdebc3877c6a685ae754e07a3faa7c9c7b5a1db 100644 (file)
@@ -1369,9 +1369,18 @@ sub poll_query_until
                $attempts++;
        }
 
-       # The query result didn't change in 180 seconds. Give up. Print the stderr
-       # from the last attempt, hopefully that's useful for debugging.
-       diag $stderr;
+       # The query result didn't change in 180 seconds. Give up. Print the
+       # output from the last attempt, hopefully that's useful for debugging.
+       chomp($stderr);
+       $stderr =~ s/\r//g if $TestLib::windows_os;
+       diag qq(poll_query_until timed out executing this query:
+$query
+expecting this output:
+$expected
+last actual query output:
+$stdout
+with stderr:
+$stderr);
        return 0;
 }