From: Alvaro Herrera Date: Tue, 6 Jul 2021 21:48:41 +0000 (-0400) Subject: Improve TestLib::system_or_bail error reporting X-Git-Tag: REL_15_BETA1~1924 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=5798ca529935698ab976780565fb2b4d8d34d810;p=thirdparty%2Fpostgresql.git 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 Reviewed-by: Tom Lane Reviewed-by: Daniel Gustafsson Discussion: https://postgr.es/m/202106301524.eq5pblzstapj@alvherre.pgsql --- 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