From ea458b95e10c319e47b8c6e70395b147066b2357 Mon Sep 17 00:00:00 2001 From: Simon Marchi Date: Thu, 8 Aug 2019 13:58:47 -0400 Subject: [PATCH] tests: print executed CLI command line in bt_cli When debugging a test, it is often useful to have the complete CLI command line executed, so we can copy paste it and reproduce the failure by hand. This patch makes bt_cli echo the executed CLI command line to stderr, such that it will show up when running one test by hand and in the test logs when running "make check". This allows simplifying bt_diff: we no longer have to pass the CLI arguments to have them included in the error message, since the full CLI command line will typically be printed just above. Change-Id: I64f8c80f648d06319efe4e7544447183ba8069cc Signed-off-by: Simon Marchi Reviewed-on: https://review.lttng.org/c/babeltrace/+/1839 Tested-by: jenkins Reviewed-by: Philippe Proulx --- tests/utils/utils.sh | 22 ++++++---------------- 1 file changed, 6 insertions(+), 16 deletions(-) diff --git a/tests/utils/utils.sh b/tests/utils/utils.sh index 09480506..4b545d09 100644 --- a/tests/utils/utils.sh +++ b/tests/utils/utils.sh @@ -148,6 +148,7 @@ bt_cli() { shift 2 local args=("$@") + echo "Running: $BT_TESTS_BT2_BIN ${args[*]}" >&2 run_python_bt2 "$BT_TESTS_BT2_BIN" "${args[@]}" 1>"$stdout_file" 2>"$stderr_file" } @@ -159,7 +160,7 @@ bt_cli() { # $1: file 1 (expected) # $2: file 2 (actual) # -# Return 0 if there's no difference, and 1 if there are. +# Return 0 if there's no difference, and non-zero if there are. # # Note that this function modifies the actual output file ($2) _in-place_ to # remove any \r character. @@ -167,27 +168,16 @@ bt_cli() { bt_diff() { local expected_file="$1" local actual_file="$2" - shift 2 - local args=("$@") local ret=0 - local temp_diff - - temp_diff="$(mktemp -t diff.XXXXXX)" # Strip any \r present due to Windows (\n -> \r\n). # "diff --string-trailing-cr" is not used since it is not present on # Solaris. "$BT_TESTS_SED_BIN" -i 's/\r//g' "$actual_file" - if ! diff -u "$expected_file" "$actual_file" > "$temp_diff"; then - echo "ERROR: for '${args[*]}': output does not match:" >&2 - cat "$temp_diff" >&2 - ret=1 - fi + diff -u "$expected_file" "$actual_file" 1>&2 - rm -f "$temp_diff" - - return $ret + return $? } # Checks the difference between: @@ -272,9 +262,9 @@ bt_diff_cli_sorted() { # shellcheck disable=SC2005 echo "$(LC_ALL=C sort "$temp_stdout_output_file")" > "$temp_stdout_output_file" - bt_diff "$expected_stdout_file" "$temp_stdout_output_file" "${args[@]}" + bt_diff "$expected_stdout_file" "$temp_stdout_output_file" ret_stdout=$? - bt_diff "$expected_stderr_file" "$temp_stderr_output_file" "${args[@]}" + bt_diff "$expected_stderr_file" "$temp_stderr_output_file" ret_stderr=$? if ((ret_stdout != 0 || ret_stderr != 0)); then -- 2.34.1