tests: print executed CLI command line in bt_cli
authorSimon Marchi <simon.marchi@efficios.com>
Thu, 8 Aug 2019 17:58:47 +0000 (13:58 -0400)
committerPhilippe Proulx <eeppeliteloop@gmail.com>
Mon, 12 Aug 2019 02:19:51 +0000 (22:19 -0400)
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 <simon.marchi@efficios.com>
Reviewed-on: https://review.lttng.org/c/babeltrace/+/1839
Tested-by: jenkins <jenkins@lttng.org>
Reviewed-by: Philippe Proulx <eeppeliteloop@gmail.com>
tests/utils/utils.sh

index 094805066f2624cb53e752cfc6cc3cc3c75988ec..4b545d09c602ce28675ab9218c47dce9eb4f3bad 100644 (file)
@@ -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
This page took 0.025304 seconds and 4 git commands to generate.