When PostgresNode::system_or_bail() fails, it's quite opaque as to what
is happening. This patch improves things by printing some detail, as
suggested in Perl's doc for system().
--
Álvaro Herrera 39°49'30"S 73°17'W
https://www.EnterpriseDB.com/
AuthorDate: Tue Jun 15 12:46:42 2021 -0400
CommitDate: Tue Jun 15 12:46:54 2021 -0400
improve TestLib::system_or_bail reporting of system() failures
diff --git a/src/test/perl/TestLib.pm b/src/test/perl/TestLib.pm
index 26fbe08d4b..eb49923b42 100644
--- a/src/test/perl/TestLib.pm
+++ b/src/test/perl/TestLib.pm
@@ -375,7 +375,18 @@ sub system_or_bail
{
if (system_log(@_) != 0)
{
- BAIL_OUT("system $_[0] failed");
+ if ($? == -1)
+ {
+ BAIL_OUT("system $_[0] failed: $!\n");
+ }
+ elsif ($? & 127)
+ {
+ BAIL_OUT(sprintf("system $_[0] died with signal %d\n", $? & 127));
+ }
+ else
+ {
+ BAIL_OUT(sprintf("system $_[0] exited with value %d\n", $? >> 8));
+ }
}
return;
}