test: Clear test-output output file before running Emacs tests

Most Emacs tests end with a call to (test-output), which saves the
buffer to a filed called OUTPUT.  Previously, if the test code failed
with an exception before this call, the test framework would then
compare against the OUTPUT file from the last Emacs test, resulting in
confusing diffs.

This requires one tweak to an emacs test that made two calls to
test_emacs and expected an OUTPUT file from the first call.  We simply
reverse the order of the test_emacs calls.
This commit is contained in:
Austin Clements 2012-09-29 13:55:12 -04:00 committed by David Bremner
parent 1ecacab28f
commit 61a9448b58
2 changed files with 10 additions and 2 deletions

View file

@ -653,6 +653,8 @@ test_expect_equal "$(cat OUTPUT)" "thread:XXX"
test_begin_subtest 'notmuch-show-advance-and-archive with invisible signature' test_begin_subtest 'notmuch-show-advance-and-archive with invisible signature'
message1='id:20091118010116.GC25380@dottiness.seas.harvard.edu' message1='id:20091118010116.GC25380@dottiness.seas.harvard.edu'
message2='id:1258491078-29658-1-git-send-email-dottedmag@dottedmag.net' message2='id:1258491078-29658-1-git-send-email-dottedmag@dottedmag.net'
test_emacs "(notmuch-show \"$message2\")
(test-output \"EXPECTED\")"
test_emacs "(notmuch-search \"$message1 or $message2\") test_emacs "(notmuch-search \"$message1 or $message2\")
(notmuch-test-wait) (notmuch-test-wait)
(notmuch-search-show-thread) (notmuch-search-show-thread)
@ -660,8 +662,6 @@ test_emacs "(notmuch-search \"$message1 or $message2\")
(redisplay) (redisplay)
(notmuch-show-advance-and-archive) (notmuch-show-advance-and-archive)
(test-output)" (test-output)"
test_emacs "(notmuch-show \"$message2\")
(test-output \"EXPECTED\")"
test_expect_equal_file OUTPUT EXPECTED test_expect_equal_file OUTPUT EXPECTED
test_begin_subtest "Refresh show buffer" test_begin_subtest "Refresh show buffer"

View file

@ -985,6 +985,14 @@ test_emacs () {
done done
fi fi
# Clear test-output output file. Most Emacs tests end with a
# call to (test-output). If the test code fails with an
# exception before this call, the output file won't get
# updated. Since we don't want to compare against an output
# file from another test, so start out with an empty file.
rm -f OUTPUT
touch OUTPUT
emacsclient --socket-name="$EMACS_SERVER" --eval "(progn $@)" emacsclient --socket-name="$EMACS_SERVER" --eval "(progn $@)"
} }