diff options
author | Alvaro Herrera <alvherre@alvh.no-ip.org> | 2021-07-06 17:48:41 -0400 |
---|---|---|
committer | Alvaro Herrera <alvherre@alvh.no-ip.org> | 2021-07-06 17:51:59 -0400 |
commit | 5798ca529935698ab976780565fb2b4d8d34d810 (patch) | |
tree | cc054df033d7e0b8d5e5653d6baff24e4cddfdf9 /src | |
parent | 64919aaab45076445051245c9bcd48dd84abebe7 (diff) | |
download | postgresql-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.pm | 24 |
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 |