aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAlvaro Herrera <alvherre@alvh.no-ip.org>2021-07-06 17:48:41 -0400
committerAlvaro Herrera <alvherre@alvh.no-ip.org>2021-07-06 17:51:59 -0400
commit5798ca529935698ab976780565fb2b4d8d34d810 (patch)
treecc054df033d7e0b8d5e5653d6baff24e4cddfdf9 /src
parent64919aaab45076445051245c9bcd48dd84abebe7 (diff)
downloadpostgresql-5798ca529935698ab976780565fb2b4d8d34d810.tar.gz
postgresql-5798ca529935698ab976780565fb2b4d8d34d810.zip
Improve TestLib::system_or_bail error reporting
The original coding was not quoting the complete failing command, and it wasn't printing the reason for the failure either. Do both. This is cosmetic only, so no backpatch. Author: Álvaro Herrera <alvherre@alvh.no-ip.org> Reviewed-by: Tom Lane <tgl@sss.pgh.pa.us> Reviewed-by: Daniel Gustafsson <daniel@yesql.se> Discussion: https://postgr.es/m/202106301524.eq5pblzstapj@alvherre.pgsql
Diffstat (limited to 'src')
-rw-r--r--src/test/perl/TestLib.pm24
1 files changed, 22 insertions, 2 deletions
diff --git a/src/test/perl/TestLib.pm b/src/test/perl/TestLib.pm
index 26fbe08d4be..15572abbea4 100644
--- a/src/test/perl/TestLib.pm
+++ b/src/test/perl/TestLib.pm
@@ -375,9 +375,29 @@ sub system_or_bail
{
if (system_log(@_) != 0)
{
- BAIL_OUT("system $_[0] failed");
+ if ($? == -1)
+ {
+ BAIL_OUT(
+ sprintf(
+ "failed to execute command \"%s\": $!", join(" ", @_)));
+ }
+ elsif ($? & 127)
+ {
+ BAIL_OUT(
+ sprintf(
+ "command \"%s\" died with signal %d",
+ join(" ", @_),
+ $? & 127));
+ }
+ else
+ {
+ BAIL_OUT(
+ sprintf(
+ "command \"%s\" exited with value %d",
+ join(" ", @_),
+ $? >> 8));
+ }
}
- return;
}
=pod