-# The file with path "$3", and the file with path "$4"
-#
-# Returns 0 if there's no difference, and 1 if there is, also printing
-# said difference to the standard error, and an error message with the
-# args starting at "$5".
-bt_diff() {
- local expected_stdout_file="$1"
- local actual_stdout_file="$2"
- local expected_stderr_file="$3"
- local actual_stderr_file="$4"
- shift 4
- 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_stdout_file"
- "$BT_TESTS_SED_BIN" -i 's/\r//g' "$actual_stderr_file"
-
- # Compare stdout output with expected stdout output
- if ! diff -u "$actual_stdout_file" "$expected_stdout_file" 2>/dev/null >"$temp_diff"; then
- echo "ERROR: for '${args[*]}': actual standard output and expected output differ:" >&2
- cat "$temp_diff" >&2
- ret=1
- fi
+# We can't use the `--string-trailing-cr` option of `diff` because
+# Solaris doesn't have it.
+bt_remove_cr() {
+ "$BT_TESTS_SED_BIN" -i'' -e 's/\r//g' "$1"
+}