X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=blobdiff_plain;f=test%2Femacs;h=863219d9f9e973395e66a8507eeac6b5e044a9c9;hp=f033bdf5d2d9fd2822946058bd38355421eab734;hb=84719b08f757a6079f4c3331d0c476d19b265948;hpb=401dbebd4803477563eff03d719605ed37a8e44d diff --git a/test/emacs b/test/emacs index f033bdf5..863219d9 100755 --- a/test/emacs +++ b/test/emacs @@ -86,15 +86,16 @@ add_message "[subject]=\"message-with-invalid-from\"" \ "[from]=\"\\\"Invalid \\\" From\\\" \"" thread=$(notmuch search --output=threads subject:message-with-invalid-from) test_emacs "(notmuch-show \"$thread\") - (test-output)" + (test-output \"OUTPUT.raw\")" cat <EXPECTED "Invalid " (2001-01-05) (inbox) Subject: message-with-invalid-from To: Notmuch Test Suite -Date: Fri, 05 Jan 2001 15:43:57 +0000 +Date: GENERATED_DATE This is just a test message (#1) EOF +notmuch_date_sanitize < OUTPUT.raw > OUTPUT test_expect_equal_file OUTPUT EXPECTED test_begin_subtest "Navigation of notmuch-search to thread view" @@ -122,6 +123,14 @@ test_emacs "(notmuch-search \"$os_x_darwin_thread\") output=$(notmuch search $os_x_darwin_thread | notmuch_search_sanitize) test_expect_equal "$output" "thread:XXX 2009-11-18 [4/4] Jjgod Jiang, Alexander Botero-Lowry; [notmuch] Mac OS X/Darwin compatibility issues (inbox unread)" +test_begin_subtest "Add tag (large query)" +# We use a long query to force us into batch mode and use a funny tag +# that requires escaping for batch tagging. +test_emacs "(notmuch-tag (concat \"$os_x_darwin_thread\" \" or \" (make-string notmuch-tag-argument-limit ?x)) (list \"+tag-from-%-large-query\"))" +output=$(notmuch search $os_x_darwin_thread | notmuch_search_sanitize) +test_expect_equal "$output" "thread:XXX 2009-11-18 [4/4] Jjgod Jiang, Alexander Botero-Lowry; [notmuch] Mac OS X/Darwin compatibility issues (inbox tag-from-%-large-query unread)" +notmuch tag -tag-from-%-large-query $os_x_darwin_thread + test_begin_subtest "notmuch-show: add single tag to single message" test_emacs "(notmuch-show \"$os_x_darwin_thread\") (execute-kbd-macro \"+tag-from-show-view\")" @@ -525,7 +534,9 @@ test_expect_equal_file attachment1.gz "$EXPECTED/attachment" test_begin_subtest "Save attachment from within emacs using notmuch-show-save-part" # save as archive to test that Emacs does not re-compress .gz test_emacs '(let ((standard-input "\"attachment2.gz\"")) - (notmuch-show-save-part "id:cf0c4d610911171136h1713aa59w9cf9aa31f052ad0a@mail.gmail.com" 5))' + (notmuch-show "id:cf0c4d610911171136h1713aa59w9cf9aa31f052ad0a@mail.gmail.com") + (search-forward "0001-Deal-with") + (notmuch-show-save-part))' test_expect_equal_file attachment2.gz "$EXPECTED/attachment" test_begin_subtest "Save 8bit attachment from within emacs using notmuch-show-save-attachments" @@ -595,11 +606,11 @@ Q: Why is top-posting such a bad thing? A: Top-posting. Q: What is the most annoying thing in e-mail?"' test_emacs "(notmuch-show \"top-posting\") - (test-visible-output)" + (test-visible-output \"OUTPUT.raw\")" echo "Notmuch Test Suite (2001-01-05) (inbox) Subject: The problem with top-posting To: Notmuch Test Suite -Date: Fri, 05 Jan 2001 15:43:57 +0000 +Date: GENERATED_DATE A: Because it messes up the order in which people normally read text. Q: Why is top-posting such a bad thing? @@ -608,13 +619,14 @@ Q: What is the most annoying thing in e-mail? Top Poster (2001-01-05) (inbox unread) Subject: Re: The problem with top-posting To: Notmuch Test Suite -Date: Fri, 05 Jan 2001 15:43:57 +0000 +Date: GENERATED_DATE Thanks for the advice! I will be sure to put it to good use. -Top Poster [ 9-line hidden original message. Click/Enter to show. ]" > EXPECTED +notmuch_date_sanitize < OUTPUT.raw > OUTPUT test_expect_equal_file OUTPUT EXPECTED test_begin_subtest "Hiding message in notmuch-show view" @@ -759,7 +771,7 @@ test_expect_equal_file OUTPUT EXPECTED test_begin_subtest "Do not call notmuch for non-inlinable application/mpeg parts" id='message-with-application/mpeg-attachment@notmuchmail.org' -emacs_deliver_message \ +emacs_fcc_message \ 'Message with application/mpeg attachment' \ '' \ "(message-goto-eoh) @@ -774,7 +786,7 @@ test_expect_equal $(notmuch_counter_value) 1 test_begin_subtest "Do not call notmuch for non-inlinable audio/mpeg parts" id='message-with-audio/mpeg-attachment@notmuchmail.org' -emacs_deliver_message \ +emacs_fcc_message \ 'Message with audio/mpeg attachment' \ '' \ "(message-goto-eoh) @@ -853,16 +865,49 @@ test_expect_success "Rendering HTML mail with images" \ 'cat OUTPUT && grep -q smiley OUTPUT' -test_begin_subtest "Search handles subprocess errors" +test_begin_subtest "Search handles subprocess error exit codes" cat > notmuch_fail <&2 +echo '()' exit 1 EOF chmod a+x notmuch_fail test_emacs "(let ((notmuch-command \"$PWD/notmuch_fail\")) (with-current-buffer \"*Messages*\" (erase-buffer)) + (with-current-buffer (get-buffer-create \"*Notmuch errors*\") + (erase-buffer)) + (notmuch-search \"tag:inbox\") + (notmuch-test-wait) + (with-current-buffer \"*Messages*\" + (test-output \"MESSAGES\")) + (with-current-buffer \"*Notmuch errors*\" + (test-output \"ERROR\")) + (test-output))" + +test_expect_equal "$(notmuch_emacs_error_sanitize notmuch_fail OUTPUT MESSAGES ERROR)" "\ +=== OUTPUT === +End of search results. +=== MESSAGES === +YYY/notmuch_fail exited with status 1 (see *Notmuch errors* for more details) +=== ERROR === +[XXX] +YYY/notmuch_fail exited with status 1 +command: YYY/notmuch_fail search --format\=sexp --format-version\=2 --sort\=newest-first tag\:inbox +exit status: 1" + +test_begin_subtest "Search handles subprocess warnings" +cat > notmuch_fail <&2 +echo This is another warning >&2 +exit 0 +EOF +chmod a+x notmuch_fail +test_emacs "(let ((notmuch-command \"$PWD/notmuch_fail\")) + (with-current-buffer \"*Messages*\" (erase-buffer)) + (with-current-buffer (get-buffer-create \"*Notmuch errors*\") + (erase-buffer)) (notmuch-search \"tag:inbox\") (notmuch-test-wait) (with-current-buffer \"*Messages*\" @@ -872,17 +917,36 @@ test_emacs "(let ((notmuch-command \"$PWD/notmuch_fail\")) (test-output))" sed -i -e 's/^\[.*\]$/[XXX]/' ERROR test_expect_equal "$(cat OUTPUT; echo ---; cat MESSAGES; echo ---; cat ERROR)" "\ -Error: Unexpected output from notmuch search: -This is output -Error: Unexpected output from notmuch search: -This is an error End of search results. --- -$PWD/notmuch_fail exited with status 1 (see *Notmuch errors* for more details) +This is a warning (see *Notmuch errors* for more details) --- [XXX] -$PWD/notmuch_fail exited with status 1 -command: $PWD/notmuch_fail search --format\=json --format-version\=1 --sort\=newest-first tag\:inbox -exit status: 1" +This is a warning +This is another warning" + +test_begin_subtest "Search thread tag operations are race-free" +add_message '[subject]="Search race test"' +gen_msg_id_1=$gen_msg_id +generate_message '[in-reply-to]="<'$gen_msg_id_1'>"' \ + '[references]="<'$gen_msg_id_1'>"' \ + '[subject]="Search race test two"' +test_emacs '(notmuch-search "subject:\"search race test\"") + (notmuch-test-wait) + (notmuch-poll) + (execute-kbd-macro "+search-thread-race-tag")' +output=$(notmuch search --output=messages 'tag:search-thread-race-tag') +test_expect_equal "$output" "id:$gen_msg_id_1" + +test_begin_subtest "Search global tag operations are race-free" +generate_message '[in-reply-to]="<'$gen_msg_id_1'>"' \ + '[references]="<'$gen_msg_id_1'>"' \ + '[subject]="Re: Search race test"' +test_emacs '(notmuch-search "subject:\"search race test\" -subject:two") + (notmuch-test-wait) + (notmuch-poll) + (execute-kbd-macro "*+search-global-race-tag")' +output=$(notmuch search --output=messages 'tag:search-global-race-tag') +test_expect_equal "$output" "id:$gen_msg_id_1" test_done