test: save buffer content to file instead of printing it in Emacs tests
[notmuch] / test / emacs-large-search-buffer
index f827bb14ea66d086a5c537c1211dbe8fbe490709..6095e9da85bb9399e9b2568e1a87d0da08e94626 100755 (executable)
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/usr/bin/env bash
 test_description="Emacs with large search results buffer"
 . test-lib.sh
 
@@ -18,10 +18,26 @@ done
 
 notmuch new > /dev/null
 
-test_begin_subtest 'Comparing emacs result to "notmuch search"'
-expected="$(notmuch search '*' | sed -e 's/^thread:[0-9a-f]*  //' -e 's/;//' -e  's/xx*/[BLOB]/')
-End of search results."
-output=$(test_emacs '(notmuch-search "*") (notmuch-test-wait) (message (buffer-string))' 2>&1 | sed -e s',  *, ,g' -e 's/xx*/[BLOB]/')
-test_expect_equal "$output" "$expected"
+test_begin_subtest "Ensure that emacs doesn't drop results"
+notmuch search '*' > EXPEXTED
+sed -i -e 's/^thread:[0-9a-f]*  //' -e 's/;//' -e 's/xx*/[BLOB]/' EXPEXTED
+echo 'End of search results.' >> EXPEXTED
+
+test_emacs '(notmuch-search "*")
+           (notmuch-test-wait)
+           (test-output)'
+sed -i -e s',  *, ,g' -e 's/xxx*/[BLOB]/g' OUTPUT
+test_expect_equal_file OUTPUT EXPEXTED
+
+test_begin_subtest "Ensure that emacs doesn't drop error messages"
+test_emacs '(notmuch-search "--this-option-does-not-exist")
+           (notmuch-test-wait)
+           (test-output)'
+cat <<EOF >EXPEXTED
+Error: Unexpected output from notmuch search:
+Unrecognized option: --this-option-does-not-exist
+End of search results. (process returned 1)
+EOF
+test_expect_equal_file OUTPUT EXPEXTED
 
 test_done