Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
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:33 +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 d9aeb277d96da44b5e38bd0038e234b8f2d5811f..98a2c8f690a35ceb31f020d2c7e2f4fc5686a85a 100644 (file)
@@ -1257,9 +1257,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;
 }