mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-22 02:48:08 +01:00
test: new test-lib function to test for equality between files
We need to be able to test for the presence of a newline at the end of output. There's no good way to capture trailing newlines in bash, so redirecting output to a file is the next best thing. This new function should be used when testing for output that is expected to have trailing newlines. The next commit will demonstrate the use of this.
This commit is contained in:
parent
d92146d3a6
commit
b596fbbcd3
1 changed files with 23 additions and 0 deletions
|
@ -441,6 +441,29 @@ test_expect_equal ()
|
|||
fi
|
||||
}
|
||||
|
||||
test_expect_equal_file ()
|
||||
{
|
||||
exec 1>&6 2>&7 # Restore stdout and stderr
|
||||
inside_subtest=
|
||||
test "$#" = 3 && { prereq=$1; shift; } || prereq=
|
||||
test "$#" = 2 ||
|
||||
error "bug in the test script: not 2 or 3 parameters to test_expect_equal"
|
||||
|
||||
output="$1"
|
||||
expected="$2"
|
||||
if ! test_skip "$@"
|
||||
then
|
||||
if diff -q "$expected" "$output" >/dev/null ; then
|
||||
test_ok_ "$test_subtest_name"
|
||||
else
|
||||
testname=$this_test.$test_count
|
||||
mv "$output" $testname.output
|
||||
mv "$expected" $testname.expected
|
||||
test_failure_ "$test_subtest_name" "$(diff -u $testname.expected $testname.output)"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
test_expect_equal_failure ()
|
||||
{
|
||||
exec 1>&6 2>&7 # Restore stdout and stderr
|
||||
|
|
Loading…
Reference in a new issue