- file1="$1"
- file2="$2"
- if ! test_skip "$test_subtest_name"
- then
- if diff -q "$file1" "$file2" >/dev/null ; then
- test_ok_
- else
- testname=$this_test.$test_count
- basename1=`basename "$file1"`
- basename2=`basename "$file2"`
- cp "$file1" "$testname.$basename1"
- cp "$file2" "$testname.$basename2"
- test_failure_ "$(diff -u "$testname.$basename1" "$testname.$basename2")"
- fi
+ test_diff_file_ "$1" "$2"
+}
+
+# Like test_expect_equal_file, but compare the part of the two files after the first blank line
+test_expect_equal_message_body () {
+ exec 1>&6 2>&7 # Restore stdout and stderr
+ if [ -z "$inside_subtest" ]; then
+ error "bug in the test script: test_expect_equal_file without test_begin_subtest"
+ fi
+ test "$#" = 2 ||
+ error "bug in the test script: not 2 parameters to test_expect_equal_file"
+
+ for file in "$1" "$2"; do
+ if [ ! -s "$file" ]; then
+ test_failure_ "Missing or zero length file: $file"
+ inside_subtest=
+ return 1
+ fi
+ done
+
+ expected=$(sed '1,/^$/d' "$1")
+ output=$(sed '1,/^$/d' "$2")
+ test_expect_equal "$expected" "$output"
+}
+
+# Like test_expect_equal, but takes two filenames. Fails if either is empty
+test_expect_equal_file_nonempty () {
+ exec 1>&6 2>&7 # Restore stdout and stderr
+ if [ -z "$inside_subtest" ]; then
+ error "bug in the test script: test_expect_equal_file_nonempty without test_begin_subtest"