mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-22 02:48:08 +01:00
test/emacs: split out tagging related tests
T310-emacs is one of the largest and longest running sets of tests. Splitting out the tagging operations will help maintainability as well as potentially improve the parallel running time of the test suite. Some slowdown in running the tests sequentially may result since there is repeated setup.
This commit is contained in:
parent
371fa28ced
commit
c4c6045058
2 changed files with 107 additions and 93 deletions
|
@ -130,75 +130,6 @@ test_emacs '(notmuch-search "tag:inbox")
|
||||||
(test-output)'
|
(test-output)'
|
||||||
test_expect_equal_file $EXPECTED/notmuch-show-thread-maildir-storage OUTPUT
|
test_expect_equal_file $EXPECTED/notmuch-show-thread-maildir-storage OUTPUT
|
||||||
|
|
||||||
test_begin_subtest "Add tag from search view"
|
|
||||||
os_x_darwin_thread=$(notmuch search --output=threads id:ddd65cda0911171950o4eea4389v86de9525e46052d3@mail.gmail.com)
|
|
||||||
test_emacs "(notmuch-search \"$os_x_darwin_thread\")
|
|
||||||
(notmuch-test-wait)
|
|
||||||
(execute-kbd-macro \"+tag-from-search-view\")"
|
|
||||||
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-search-view unread)"
|
|
||||||
|
|
||||||
test_begin_subtest "Remove tag from search view"
|
|
||||||
test_emacs "(notmuch-search \"$os_x_darwin_thread\")
|
|
||||||
(notmuch-test-wait)
|
|
||||||
(execute-kbd-macro \"-tag-from-search-view\")"
|
|
||||||
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 \" (mapconcat #'identity (make-list 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\")"
|
|
||||||
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-show-view unread)"
|
|
||||||
|
|
||||||
test_begin_subtest "notmuch-show: remove single tag from single message"
|
|
||||||
test_emacs "(notmuch-show \"$os_x_darwin_thread\")
|
|
||||||
(execute-kbd-macro \"-tag-from-show-view\")"
|
|
||||||
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 "notmuch-show: add multiple tags to single message"
|
|
||||||
test_emacs "(notmuch-show \"$os_x_darwin_thread\")
|
|
||||||
(execute-kbd-macro \"+tag1-from-show-view +tag2-from-show-view\")"
|
|
||||||
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 tag1-from-show-view tag2-from-show-view unread)"
|
|
||||||
|
|
||||||
test_begin_subtest "notmuch-show: remove multiple tags from single message"
|
|
||||||
test_emacs "(notmuch-show \"$os_x_darwin_thread\")
|
|
||||||
(execute-kbd-macro \"-tag1-from-show-view -tag2-from-show-view\")"
|
|
||||||
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 "notmuch-show: before-tag-hook is run, variables are defined"
|
|
||||||
output=$(test_emacs '(let ((notmuch-test-tag-hook-output nil)
|
|
||||||
(notmuch-before-tag-hook (function notmuch-test-tag-hook)))
|
|
||||||
(notmuch-show "id:ddd65cda0911171950o4eea4389v86de9525e46052d3@mail.gmail.com")
|
|
||||||
(execute-kbd-macro "+activate-hook\n")
|
|
||||||
(execute-kbd-macro "-activate-hook\n")
|
|
||||||
notmuch-test-tag-hook-output)')
|
|
||||||
test_expect_equal "$output" \
|
|
||||||
'(("id:ddd65cda0911171950o4eea4389v86de9525e46052d3@mail.gmail.com" "-activate-hook")
|
|
||||||
("id:ddd65cda0911171950o4eea4389v86de9525e46052d3@mail.gmail.com" "+activate-hook"))'
|
|
||||||
|
|
||||||
test_begin_subtest "notmuch-show: after-tag-hook is run, variables are defined"
|
|
||||||
output=$(test_emacs '(let ((notmuch-test-tag-hook-output nil)
|
|
||||||
(notmuch-after-tag-hook (function notmuch-test-tag-hook)))
|
|
||||||
(notmuch-show "id:ddd65cda0911171950o4eea4389v86de9525e46052d3@mail.gmail.com")
|
|
||||||
(execute-kbd-macro "+activate-hook\n")
|
|
||||||
(execute-kbd-macro "-activate-hook\n")
|
|
||||||
notmuch-test-tag-hook-output)')
|
|
||||||
test_expect_equal "$output" \
|
|
||||||
'(("id:ddd65cda0911171950o4eea4389v86de9525e46052d3@mail.gmail.com" "-activate-hook")
|
|
||||||
("id:ddd65cda0911171950o4eea4389v86de9525e46052d3@mail.gmail.com" "+activate-hook"))'
|
|
||||||
|
|
||||||
test_begin_subtest "Message with .. in Message-Id:"
|
test_begin_subtest "Message with .. in Message-Id:"
|
||||||
add_message [id]=123..456@example '[subject]="Message with .. in Message-Id"'
|
add_message [id]=123..456@example '[subject]="Message with .. in Message-Id"'
|
||||||
test_emacs '(notmuch-search "id:\"123..456@example\"")
|
test_emacs '(notmuch-search "id:\"123..456@example\"")
|
||||||
|
@ -1133,30 +1064,6 @@ This is a warning (see *Notmuch errors* for more details)
|
||||||
This is a warning
|
This is a warning
|
||||||
This is another 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_begin_subtest "Term escaping"
|
test_begin_subtest "Term escaping"
|
||||||
output=$(test_emacs "(mapcar 'notmuch-escape-boolean-term (list
|
output=$(test_emacs "(mapcar 'notmuch-escape-boolean-term (list
|
||||||
\"\"
|
\"\"
|
||||||
|
|
107
test/T315-emacs-tagging.sh
Executable file
107
test/T315-emacs-tagging.sh
Executable file
|
@ -0,0 +1,107 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
test_description="emacs interface"
|
||||||
|
. $(dirname "$0")/test-lib.sh || exit 1
|
||||||
|
. $NOTMUCH_SRCDIR/test/test-lib-emacs.sh || exit 1
|
||||||
|
|
||||||
|
EXPECTED=$NOTMUCH_SRCDIR/test/emacs.expected-output
|
||||||
|
|
||||||
|
test_require_emacs
|
||||||
|
add_email_corpus
|
||||||
|
|
||||||
|
test_begin_subtest "Add tag from search view"
|
||||||
|
os_x_darwin_thread=$(notmuch search --output=threads id:ddd65cda0911171950o4eea4389v86de9525e46052d3@mail.gmail.com)
|
||||||
|
test_emacs "(notmuch-search \"$os_x_darwin_thread\")
|
||||||
|
(notmuch-test-wait)
|
||||||
|
(execute-kbd-macro \"+tag-from-search-view\")"
|
||||||
|
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-search-view unread)"
|
||||||
|
|
||||||
|
test_begin_subtest "Remove tag from search view"
|
||||||
|
test_emacs "(notmuch-search \"$os_x_darwin_thread\")
|
||||||
|
(notmuch-test-wait)
|
||||||
|
(execute-kbd-macro \"-tag-from-search-view\")"
|
||||||
|
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 \" (mapconcat #'identity (make-list 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\")"
|
||||||
|
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-show-view unread)"
|
||||||
|
|
||||||
|
test_begin_subtest "notmuch-show: remove single tag from single message"
|
||||||
|
test_emacs "(notmuch-show \"$os_x_darwin_thread\")
|
||||||
|
(execute-kbd-macro \"-tag-from-show-view\")"
|
||||||
|
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 "notmuch-show: add multiple tags to single message"
|
||||||
|
test_emacs "(notmuch-show \"$os_x_darwin_thread\")
|
||||||
|
(execute-kbd-macro \"+tag1-from-show-view +tag2-from-show-view\")"
|
||||||
|
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 tag1-from-show-view tag2-from-show-view unread)"
|
||||||
|
|
||||||
|
test_begin_subtest "notmuch-show: remove multiple tags from single message"
|
||||||
|
test_emacs "(notmuch-show \"$os_x_darwin_thread\")
|
||||||
|
(execute-kbd-macro \"-tag1-from-show-view -tag2-from-show-view\")"
|
||||||
|
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 "notmuch-show: before-tag-hook is run, variables are defined"
|
||||||
|
output=$(test_emacs '(let ((notmuch-test-tag-hook-output nil)
|
||||||
|
(notmuch-before-tag-hook (function notmuch-test-tag-hook)))
|
||||||
|
(notmuch-show "id:ddd65cda0911171950o4eea4389v86de9525e46052d3@mail.gmail.com")
|
||||||
|
(execute-kbd-macro "+activate-hook\n")
|
||||||
|
(execute-kbd-macro "-activate-hook\n")
|
||||||
|
notmuch-test-tag-hook-output)')
|
||||||
|
test_expect_equal "$output" \
|
||||||
|
'(("id:ddd65cda0911171950o4eea4389v86de9525e46052d3@mail.gmail.com" "-activate-hook")
|
||||||
|
("id:ddd65cda0911171950o4eea4389v86de9525e46052d3@mail.gmail.com" "+activate-hook"))'
|
||||||
|
|
||||||
|
test_begin_subtest "notmuch-show: after-tag-hook is run, variables are defined"
|
||||||
|
output=$(test_emacs '(let ((notmuch-test-tag-hook-output nil)
|
||||||
|
(notmuch-after-tag-hook (function notmuch-test-tag-hook)))
|
||||||
|
(notmuch-show "id:ddd65cda0911171950o4eea4389v86de9525e46052d3@mail.gmail.com")
|
||||||
|
(execute-kbd-macro "+activate-hook\n")
|
||||||
|
(execute-kbd-macro "-activate-hook\n")
|
||||||
|
notmuch-test-tag-hook-output)')
|
||||||
|
test_expect_equal "$output" \
|
||||||
|
'(("id:ddd65cda0911171950o4eea4389v86de9525e46052d3@mail.gmail.com" "-activate-hook")
|
||||||
|
("id:ddd65cda0911171950o4eea4389v86de9525e46052d3@mail.gmail.com" "+activate-hook"))'
|
||||||
|
|
||||||
|
|
||||||
|
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
|
Loading…
Reference in a new issue