aboutsummaryrefslogtreecommitdiffhomepage
path: root/test/test-lib.sh
diff options
context:
space:
mode:
authorGravatar Dmitry Kurochkin <dmitry.kurochkin@gmail.com>2012-02-01 11:19:54 +0400
committerGravatar David Bremner <bremner@debian.org>2012-09-01 23:09:26 -0300
commit1ffb38296121f8cdec3f4193b8f3d31495a652ec (patch)
treececc6b1985f9dd227fcc1c91f3090998a545fb54 /test/test-lib.sh
parentc62126238b2ce6194b3c6511553951497aedf295 (diff)
test: make test_expect_equal_file() arguments flexible
Before the change, test_expect_equal_file() function treated the first argument as "actual output file" and the second argument as "expected output file". When the test fails, the files are copied for later inspection. The first files was copied to "$testname.output" and the second file to "$testname.expected". The argument order for test_expect_equal_file() is often wrong which results in confusing diff output and incorrectly named files. The patch solves the issue by changing test_expect_equal_file() to treat arguments just as two files, without any special properties (like "actual" and "expected"). The file names for copying is now based on the given file name: "$testname.$file1" and "$testname.$file2". E.g. if test_expect_equal_file() is called with "OUTPUT" and "EXPECTED", the copied files can be named "emacs.1.OUTPUT" and "emacs.1.EXPECTED". The down side of this approach is that diff argument order depends on test_expect_equal_file() argument order. So sometimes we get diff from expected to actual results, and sometimes the other way around. But the files are always named correctly.
Diffstat (limited to 'test/test-lib.sh')
-rw-r--r--test/test-lib.sh12
1 files changed, 6 insertions, 6 deletions
diff --git a/test/test-lib.sh b/test/test-lib.sh
index 791d2dc6..663b18e6 100644
--- a/test/test-lib.sh
+++ b/test/test-lib.sh
@@ -497,17 +497,17 @@ test_expect_equal_file ()
test "$#" = 2 ||
error "bug in the test script: not 2 or 3 parameters to test_expect_equal"
- output="$1"
- expected="$2"
+ file1="$1"
+ file2="$2"
if ! test_skip "$test_subtest_name"
then
- if diff -q "$expected" "$output" >/dev/null ; then
+ if diff -q "$file1" "$file2" >/dev/null ; then
test_ok_ "$test_subtest_name"
else
testname=$this_test.$test_count
- cp "$output" $testname.output
- cp "$expected" $testname.expected
- test_failure_ "$test_subtest_name" "$(diff -u $testname.expected $testname.output)"
+ cp "$file1" "$testname.$file1"
+ cp "$file2" "$testname.$file2"
+ test_failure_ "$test_subtest_name" "$(diff -u "$testname.$file1" "$testname.$file2")"
fi
fi
}