[PATCH 2/2] test: Have notmuch-test use the modular test collections

Jesse Rosenthal jrosenthal at jhu.edu
Fri Apr 30 12:09:01 PDT 2010


Introduce two new functions (run_collection_setup_and_tests and
run_test_suite) to notmuch-test. The first takes as an argument a subdir
of test/tests and runs all .setup and .test files in there in order of
their numerical prefix. The latter either runs all tests (if given "all"
or no argument) or a given dir (if given it as an argument).

Also introduce the variable TEST_COLLECTIONS. These are all the folders
that "notmuch-test all" should look for. It won't automatically run all
folders, in case there is something that is only relevant in certain
circumstances (such as, perhaps, future tests for remote usage).
---
 test/notmuch-test |  921 +++--------------------------------------------------
 1 files changed, 47 insertions(+), 874 deletions(-)

diff --git a/test/notmuch-test b/test/notmuch-test
index a861df1..29d5c91 100755
--- a/test/notmuch-test
+++ b/test/notmuch-test
@@ -7,6 +7,20 @@ set -e
 # without regard to the time zone of where the test suite is run.
 export TZ=UTC+8
 
+TEST_COLLECTION_DIR="$(dirname $(readlink -f $0))/tests"
+
+TEST_COLLECTIONS="notmuch-new
+notmuch-search
+json
+thread-naming
+notmuch-reply
+uuencoded
+notmuch-dump-restore
+out-of-order-threading
+author-reordering
+from-guessing-multiple
+from-guessing-single"
+
 find_notmuch_binary ()
 {
     dir=$1
@@ -210,13 +224,15 @@ notmuch_show_sanitize ()
     sed -e "$NOTMUCH_SHOW_FILENAME_SQUELCH"
 }
 
-rm -rf ${TEST_DIR}
-mkdir ${TEST_DIR}
-cd ${TEST_DIR}
+initialize_notmuch_test ()
+{
+    rm -rf ${TEST_DIR}
+    mkdir ${TEST_DIR}
+    cd ${TEST_DIR}
 
-mkdir ${MAIL_DIR}
+    mkdir ${MAIL_DIR}
 
-cat <<EOF > ${NOTMUCH_CONFIG}
+    cat <<EOF > ${NOTMUCH_CONFIG}
 [database]
 path=${MAIL_DIR}
 
@@ -225,878 +241,35 @@ name=Notmuch Test Suite
 primary_email=test_suite at notmuchmail.org
 other_email=test_suite_other at notmuchmail.org;test_suite at otherdomain.org
 EOF
+}
 
-printf "Testing \"notmuch new\" in several variations:\n"
-printf " No new messages...\t\t\t\t"
-output=$(NOTMUCH_NEW)
-pass_if_equal "$output" "No new mail."
-
-printf " Single new message...\t\t\t\t"
-generate_message
-output=$(NOTMUCH_NEW)
-pass_if_equal "$output" "Added 1 new message to the database."
-
-printf " Multiple new messages...\t\t\t"
-generate_message
-generate_message
-output=$(NOTMUCH_NEW)
-pass_if_equal "$output" "Added 2 new messages to the database."
-
-printf " No new messages (non-empty DB)...\t\t"
-output=$(NOTMUCH_NEW)
-pass_if_equal "$output" "No new mail."
-
-printf " New directories...\t\t\t\t"
-rm -rf ${MAIL_DIR}/* ${MAIL_DIR}/.notmuch
-mkdir ${MAIL_DIR}/def
-mkdir ${MAIL_DIR}/ghi
-generate_message [dir]=def
-
-output=$(NOTMUCH_NEW)
-pass_if_equal "$output" "Added 1 new message to the database."
-
-printf " Alternate inode order...\t\t\t"
-
-rm -rf ${MAIL_DIR}/.notmuch
-mv ${MAIL_DIR}/ghi ${MAIL_DIR}/abc
-rm ${MAIL_DIR}/def/*
-generate_message [dir]=abc
-
-output=$(NOTMUCH_NEW)
-pass_if_equal "$output" "Added 1 new message to the database."
-
-printf " Message moved in...\t\t\t\t"
-rm -rf ${MAIL_DIR}/* ${MAIL_DIR}/.notmuch
-generate_message
-tmp_msg_filename=tmp/$gen_msg_filename
-mkdir -p $(dirname $tmp_msg_filename)
-mv $gen_msg_filename $tmp_msg_filename
-increment_mtime ${MAIL_DIR}
-$NOTMUCH new > /dev/null
-mv $tmp_msg_filename $gen_msg_filename
-increment_mtime ${MAIL_DIR}
-output=$(NOTMUCH_NEW)
-pass_if_equal "$output" "Added 1 new message to the database."
-
-printf " Renamed message...\t\t\t\t"
-
-generate_message
-$NOTMUCH new > /dev/null
-mv $gen_msg_filename ${gen_msg_filename}-renamed
-increment_mtime ${MAIL_DIR}
-output=$(NOTMUCH_NEW)
-pass_if_equal "$output" "No new mail. Detected 1 file rename."
-
-printf " Deleted message...\t\t\t\t"
-
-rm ${gen_msg_filename}-renamed
-increment_mtime ${MAIL_DIR}
-output=$(NOTMUCH_NEW)
-pass_if_equal "$output" "No new mail. Removed 1 message."
-
-printf " Renamed directory...\t\t\t\t"
-
-generate_message [dir]=dir
-generate_message [dir]=dir
-generate_message [dir]=dir
-
-$NOTMUCH new > /dev/null
-
-mv ${MAIL_DIR}/dir ${MAIL_DIR}/dir-renamed
-increment_mtime ${MAIL_DIR}
-
-output=$(NOTMUCH_NEW)
-pass_if_equal "$output" "No new mail. Detected 3 file renames."
-
-printf " Deleted directory...\t\t\t\t"
-
-rm -rf ${MAIL_DIR}/dir-renamed
-increment_mtime ${MAIL_DIR}
-
-output=$(NOTMUCH_NEW)
-pass_if_equal "$output" "No new mail. Removed 3 messages."
-
-printf " New directory (at end of list)...\t\t"
-
-generate_message [dir]=zzz
-generate_message [dir]=zzz
-generate_message [dir]=zzz
-
-output=$(NOTMUCH_NEW)
-pass_if_equal "$output" "Added 3 new messages to the database."
-
-printf " Deleted directory (end of list)...\t\t"
-
-rm -rf ${MAIL_DIR}/zzz
-increment_mtime ${MAIL_DIR}
-
-output=$(NOTMUCH_NEW)
-pass_if_equal "$output" "No new mail. Removed 3 messages."
-
-printf " New symlink to directory...\t\t\t"
-
-rm -rf ${MAIL_DIR}/.notmuch
-mv ${MAIL_DIR} ${TEST_DIR}/actual_maildir
-
-mkdir ${MAIL_DIR}
-ln -s ${TEST_DIR}/actual_maildir ${MAIL_DIR}/symlink
-
-output=$(NOTMUCH_NEW)
-pass_if_equal "$output" "Added 1 new message to the database."
-
-printf " New symlink to a file...\t\t\t"
-generate_message
-external_msg_filename=${TEST_DIR}/external/$(basename $gen_msg_filename)
-mkdir -p $(dirname $external_msg_filename)
-mv $gen_msg_filename $external_msg_filename
-ln -s $external_msg_filename $gen_msg_filename
-increment_mtime ${MAIL_DIR}
-output=$(NOTMUCH_NEW)
-pass_if_equal "$output" "Added 1 new message to the database."
-
-printf " New two-level directory...\t\t\t"
-
-generate_message [dir]=two/levels
-generate_message [dir]=two/levels
-generate_message [dir]=two/levels
-
-output=$(NOTMUCH_NEW)
-pass_if_equal "$output" "Added 3 new messages to the database."
-
-printf " Deleted two-level directory...\t\t\t"
-
-rm -rf ${MAIL_DIR}/two
-increment_mtime ${MAIL_DIR}
-
-output=$(NOTMUCH_NEW)
-pass_if_equal "$output" "No new mail. Removed 3 messages."
-
-printf "\nTesting \"notmuch search\" in several variations:\n"
-
-printf " Search body...\t\t\t\t\t"
-add_message '[subject]="body search"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' [body]=bodysearchtest
-output=$($NOTMUCH search bodysearchtest | notmuch_search_sanitize)
-pass_if_equal "$output" "thread:XXX   2000-01-01 [1/1] Notmuch Test Suite; body search (inbox unread)"
-
-printf " Search by from:...\t\t\t\t"
-add_message '[subject]="search by from"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' [from]=searchbyfrom
-output=$($NOTMUCH search from:searchbyfrom | notmuch_search_sanitize)
-pass_if_equal "$output" "thread:XXX   2000-01-01 [1/1] searchbyfrom; search by from (inbox unread)"
-
-printf " Search by to:...\t\t\t\t"
-add_message '[subject]="search by to"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' [to]=searchbyto
-output=$($NOTMUCH search to:searchbyto | notmuch_search_sanitize)
-pass_if_equal "$output" "thread:XXX   2000-01-01 [1/1] Notmuch Test Suite; search by to (inbox unread)"
-
-printf " Search by subject:...\t\t\t\t"
-add_message [subject]=subjectsearchtest '[date]="Sat, 01 Jan 2000 12:00:00 -0000"'
-output=$($NOTMUCH search subject:subjectsearchtest | notmuch_search_sanitize)
-pass_if_equal "$output" "thread:XXX   2000-01-01 [1/1] Notmuch Test Suite; subjectsearchtest (inbox unread)"
-
-printf " Search by id:...\t\t\t\t"
-add_message '[subject]="search by id"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"'
-output=$($NOTMUCH search id:${gen_msg_id} | notmuch_search_sanitize)
-pass_if_equal "$output" "thread:XXX   2000-01-01 [1/1] Notmuch Test Suite; search by id (inbox unread)"
-
-printf " Search by tag:...\t\t\t\t"
-add_message '[subject]="search by tag"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"'
-$NOTMUCH tag +searchbytag id:${gen_msg_id}
-output=$($NOTMUCH search tag:searchbytag | notmuch_search_sanitize)
-pass_if_equal "$output" "thread:XXX   2000-01-01 [1/1] Notmuch Test Suite; search by tag (inbox searchbytag unread)"
-
-printf " Search by thread:...\t\t\t\t"
-add_message '[subject]="search by thread"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"'
-thread_id=$($NOTMUCH search id:${gen_msg_id} | sed -e 's/thread:\([a-f0-9]*\).*/\1/')
-output=$($NOTMUCH search thread:${thread_id} | notmuch_search_sanitize)
-pass_if_equal "$output" "thread:XXX   2000-01-01 [1/1] Notmuch Test Suite; search by thread (inbox unread)"
-
-printf " Search body (phrase)...\t\t\t"
-add_message '[subject]="body search (phrase)"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' '[body]="body search (phrase)"'
-add_message '[subject]="negative result"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' '[body]="This phrase should not match the body search"'
-output=$($NOTMUCH search '\"body search (phrase)\"' | notmuch_search_sanitize)
-pass_if_equal "$output" "thread:XXX   2000-01-01 [1/1] Notmuch Test Suite; body search (phrase) (inbox unread)"
-
-printf " Search by from: (address)...\t\t\t"
-add_message '[subject]="search by from (address)"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' [from]=searchbyfrom at example.com
-output=$($NOTMUCH search from:searchbyfrom at example.com | notmuch_search_sanitize)
-pass_if_equal "$output" "thread:XXX   2000-01-01 [1/1] searchbyfrom at example.com; search by from (address) (inbox unread)"
-
-printf " Search by from: (name)...\t\t\t"
-add_message '[subject]="search by from (name)"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' '[from]="Search By From Name <test at example.com>"'
-output=$($NOTMUCH search from:'Search By From Name' | notmuch_search_sanitize)
-pass_if_equal "$output" "thread:XXX   2000-01-01 [1/1] Search By From Name; search by from (name) (inbox unread)"
-
-printf " Search by to: (address)...\t\t\t"
-add_message '[subject]="search by to (address)"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' [to]=searchbyto at example.com
-output=$($NOTMUCH search to:searchbyto at example.com | notmuch_search_sanitize)
-pass_if_equal "$output" "thread:XXX   2000-01-01 [1/1] Notmuch Test Suite; search by to (address) (inbox unread)"
-
-printf " Search by to: (name)...\t\t\t"
-add_message '[subject]="search by to (name)"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' '[to]="Search By To Name <test at example.com>"'
-output=$($NOTMUCH search to:'Search By To Name' | notmuch_search_sanitize)
-pass_if_equal "$output" "thread:XXX   2000-01-01 [1/1] Notmuch Test Suite; search by to (name) (inbox unread)"
-
-printf " Search by subject: (phrase)...\t\t\t"
-add_message '[subject]="subject search test (phrase)"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"'
-add_message '[subject]="this phrase should not match the subject search test"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"'
-output=$($NOTMUCH search 'subject:\"subject search test (phrase)\"' | notmuch_search_sanitize)
-pass_if_equal "$output" "thread:XXX   2000-01-01 [1/1] Notmuch Test Suite; subject search test (phrase) (inbox unread)"
-
-printf " Search for all messages (\"*\"):...\t\t"
-output=$($NOTMUCH search '*' | notmuch_search_sanitize)
-pass_if_equal "$output" "thread:XXX   2001-01-05 [1/1] Notmuch Test Suite; Test message #6 (inbox unread)
-thread:XXX   2001-01-05 [1/1] Notmuch Test Suite; Test message #14 (inbox unread)
-thread:XXX   2000-01-01 [1/1] Notmuch Test Suite; body search (inbox unread)
-thread:XXX   2000-01-01 [1/1] searchbyfrom; search by from (inbox unread)
-thread:XXX   2000-01-01 [1/1] Notmuch Test Suite; search by to (inbox unread)
-thread:XXX   2000-01-01 [1/1] Notmuch Test Suite; subjectsearchtest (inbox unread)
-thread:XXX   2000-01-01 [1/1] Notmuch Test Suite; search by id (inbox unread)
-thread:XXX   2000-01-01 [1/1] Notmuch Test Suite; search by tag (inbox searchbytag unread)
-thread:XXX   2000-01-01 [1/1] Notmuch Test Suite; search by thread (inbox unread)
-thread:XXX   2000-01-01 [1/1] Notmuch Test Suite; body search (phrase) (inbox unread)
-thread:XXX   2000-01-01 [1/1] Notmuch Test Suite; negative result (inbox unread)
-thread:XXX   2000-01-01 [1/1] searchbyfrom at example.com; search by from (address) (inbox unread)
-thread:XXX   2000-01-01 [1/1] Search By From Name; search by from (name) (inbox unread)
-thread:XXX   2000-01-01 [1/1] Notmuch Test Suite; search by to (address) (inbox unread)
-thread:XXX   2000-01-01 [1/1] Notmuch Test Suite; search by to (name) (inbox unread)
-thread:XXX   2000-01-01 [1/1] Notmuch Test Suite; subject search test (phrase) (inbox unread)
-thread:XXX   2000-01-01 [1/1] Notmuch Test Suite; this phrase should not match the subject search test (inbox unread)"
-
-printf " Search body (utf-8):...\t\t\t"
-add_message '[subject]="utf8-message-body-subject"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' '[body]="message body utf8: bödý"'
-output=$($NOTMUCH search 'bödý' | notmuch_search_sanitize)
-pass_if_equal "$output" "thread:XXX   2000-01-01 [1/1] Notmuch Test Suite; utf8-message-body-subject (inbox unread)"
-
-printf "\nTesting --format=json output:\n"
-
-printf " Show message: json...\t\t\t\t"
-add_message '[subject]="json-show-subject"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' '[body]="json-show-message"'
-output=$($NOTMUCH show --format=json 'json-show-message')
-pass_if_equal "$output" '[[[{"id": "'${gen_msg_id}'", "match": true, "filename": "'${gen_msg_filename}'", "timestamp": 946728000, "date_relative": "2000-01-01", "tags": ["inbox","unread"], "headers": {"Subject": "json-show-subject", "From": "Notmuch Test Suite <test_suite at notmuchmail.org>", "To": "Notmuch Test Suite <test_suite at notmuchmail.org>", "Cc": "", "Bcc": "", "Date": "Sat, 01 Jan 2000 12:00:00 -0000"}, "body": [{"id": 1, "content-type": "text/plain", "content": "json-show-message\n"}]}, []]]]'
-
-printf " Search message: json...\t\t\t"
-add_message '[subject]="json-search-subject"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' '[body]="json-search-message"'
-output=$($NOTMUCH search --format=json 'json-search-message' | notmuch_search_sanitize)
-pass_if_equal "$output" '[{"thread": "XXX",
-"timestamp": 946728000,
-"matched": 1,
-"total": 1,
-"authors": "Notmuch Test Suite",
-"subject": "json-search-subject",
-"tags": ["inbox", "unread"]}]'
-
-printf " Search by subject (utf-8):...\t\t\t"
-add_message [subject]=utf8-sübjéct '[date]="Sat, 01 Jan 2000 12:00:00 -0000"'
-output=$($NOTMUCH search subject:utf8-sübjéct | notmuch_search_sanitize)
-pass_if_equal "$output" "thread:XXX   2000-01-01 [1/1] Notmuch Test Suite; utf8-sübjéct (inbox unread)"
-
-printf " Show message: json, utf-8...\t\t\t"
-add_message '[subject]="json-show-utf8-body-sübjéct"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' '[body]="jsön-show-méssage"'
-output=$($NOTMUCH show --format=json 'jsön-show-méssage')
-pass_if_equal "$output" '[[[{"id": "'${gen_msg_id}'", "match": true, "filename": "'${gen_msg_filename}'", "timestamp": 946728000, "date_relative": "2000-01-01", "tags": ["inbox","unread"], "headers": {"Subject": "json-show-utf8-body-sübjéct", "From": "Notmuch Test Suite <test_suite at notmuchmail.org>", "To": "Notmuch Test Suite <test_suite at notmuchmail.org>", "Cc": "", "Bcc": "", "Date": "Sat, 01 Jan 2000 12:00:00 -0000"}, "body": [{"id": 1, "content-type": "text/plain", "content": "jsön-show-méssage\n"}]}, []]]]'
-
-printf " Search message: json, utf-8...\t\t\t"
-add_message '[subject]="json-search-utf8-body-sübjéct"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' '[body]="jsön-search-méssage"'
-output=$($NOTMUCH search --format=json 'jsön-search-méssage' | notmuch_search_sanitize)
-pass_if_equal "$output" '[{"thread": "XXX",
-"timestamp": 946728000,
-"matched": 1,
-"total": 1,
-"authors": "Notmuch Test Suite",
-"subject": "json-search-utf8-body-sübjéct",
-"tags": ["inbox", "unread"]}]'
-
-printf "\nTesting naming of threads with changing subject:\n"
-add_message '[subject]="thread-naming: Initial thread subject"' \
-            '[date]="Fri, 05 Jan 2001 15:43:56 -0800"'
-first=${gen_msg_cnt}
-parent=${gen_msg_id}
-add_message '[subject]="thread-naming: Older changed subject"' \
-            '[date]="Sat, 06 Jan 2001 15:43:56 -0800"' \
-            "[in-reply-to]=\<$parent\>"
-add_message '[subject]="thread-naming: Newer changed subject"' \
-            '[date]="Sun, 07 Jan 2001 15:43:56 -0800"' \
-            "[in-reply-to]=\<$parent\>"
-add_message '[subject]="thread-naming: Final thread subject"' \
-            '[date]="Mon, 08 Jan 2001 15:43:56 -0800"' \
-            "[in-reply-to]=\<$parent\>"
-final=${gen_msg_id}
-
-printf " Initial thread name (oldest-first search)...\t"
-output=$($NOTMUCH search --sort=oldest-first thread-naming and tag:inbox | notmuch_search_sanitize)
-pass_if_equal "$output" "thread:XXX   2001-01-05 [4/4] Notmuch Test Suite; thread-naming: Initial thread subject (inbox unread)"
-
-printf " Initial thread name (newest-first search)...\t"
-output=$($NOTMUCH search --sort=newest-first thread-naming and tag:inbox | notmuch_search_sanitize)
-pass_if_equal "$output" "thread:XXX   2001-01-08 [4/4] Notmuch Test Suite; thread-naming: Final thread subject (inbox unread)"
-
-# Remove oldest and newest messages from search results
-$NOTMUCH tag -inbox id:$parent or id:$final
-
-printf " Changed thread name (oldest-first search)...\t"
-output=$($NOTMUCH search --sort=oldest-first thread-naming and tag:inbox | notmuch_search_sanitize)
-pass_if_equal "$output" "thread:XXX   2001-01-06 [2/4] Notmuch Test Suite; thread-naming: Older changed subject (inbox unread)"
-
-printf " Changed thread name (newest-first search)...\t"
-output=$($NOTMUCH search --sort=newest-first thread-naming and tag:inbox | notmuch_search_sanitize)
-pass_if_equal "$output" "thread:XXX   2001-01-07 [2/4] Notmuch Test Suite; thread-naming: Newer changed subject (inbox unread)"
-
-printf " Ignore added reply prefix (Re:)...\t\t"
-add_message '[subject]="Re: thread-naming: Initial thread subject"' \
-            '[date]="Tue, 09 Jan 2001 15:43:45 -0800"' \
-            "[in-reply-to]=\<$parent\>"
-output=$($NOTMUCH search --sort=newest-first thread-naming and tag:inbox | notmuch_search_sanitize)
-pass_if_equal "$output" "thread:XXX   2001-01-09 [3/5] Notmuch Test Suite; thread-naming: Initial thread subject (inbox unread)"
-
-printf " Ignore added reply prefix (Aw:)...\t\t"
-add_message '[subject]="Aw: thread-naming: Initial thread subject"' \
-            '[date]="Wed, 10 Jan 2001 15:43:45 -0800"' \
-            "[in-reply-to]=\<$parent\>"
-output=$($NOTMUCH search --sort=newest-first thread-naming and tag:inbox | notmuch_search_sanitize)
-pass_if_equal "$output" "thread:XXX   2001-01-10 [4/6] Notmuch Test Suite; thread-naming: Initial thread subject (inbox unread)"
-
-printf " Ignore added reply prefix (Vs:)...\t\t"
-add_message '[subject]="Vs: thread-naming: Initial thread subject"' \
-            '[date]="Thu, 11 Jan 2001 15:43:45 -0800"' \
-            "[in-reply-to]=\<$parent\>"
-output=$($NOTMUCH search --sort=newest-first thread-naming and tag:inbox | notmuch_search_sanitize)
-pass_if_equal "$output" "thread:XXX   2001-01-11 [5/7] Notmuch Test Suite; thread-naming: Initial thread subject (inbox unread)"
-
-printf " Ignore added reply prefix (Sv:)...\t\t"
-add_message '[subject]="Sv: thread-naming: Initial thread subject"' \
-            '[date]="Fri, 12 Jan 2001 15:43:45 -0800"' \
-            "[in-reply-to]=\<$parent\>"
-output=$($NOTMUCH search --sort=newest-first thread-naming and tag:inbox | notmuch_search_sanitize)
-pass_if_equal "$output" "thread:XXX   2001-01-12 [6/8] Notmuch Test Suite; thread-naming: Initial thread subject (inbox unread)"
-
-printf " Test order of messages in \"notmuch show\"\t"
-output=$($NOTMUCH show thread-naming | notmuch_show_sanitize)
-pass_if_equal "$output" "message{ id:msg-$(printf "%03d" $first)@notmuch-test-suite depth:0 match:1 filename:/XXX/mail/msg-$(printf "%03d" $first)
-header{
-Notmuch Test Suite <test_suite at notmuchmail.org> (2001-01-05) (unread)
-Subject: thread-naming: Initial thread subject
-From: Notmuch Test Suite <test_suite at notmuchmail.org>
-To: Notmuch Test Suite <test_suite at notmuchmail.org>
-Date: Fri, 05 Jan 2001 15:43:56 -0800
-header}
-body{
-part{ ID: 1, Content-type: text/plain
-This is just a test message (#$first)
-part}
-body}
-message}
-message{ id:msg-$(printf "%03d" $((first + 1)))@notmuch-test-suite depth:1 match:1 filename:/XXX/mail/msg-$(printf "%03d" $((first + 1)))
-header{
-Notmuch Test Suite <test_suite at notmuchmail.org> (2001-01-06) (inbox unread)
-Subject: thread-naming: Older changed subject
-From: Notmuch Test Suite <test_suite at notmuchmail.org>
-To: Notmuch Test Suite <test_suite at notmuchmail.org>
-Date: Sat, 06 Jan 2001 15:43:56 -0800
-header}
-body{
-part{ ID: 1, Content-type: text/plain
-This is just a test message (#$((first + 1)))
-part}
-body}
-message}
-message{ id:msg-$(printf "%03d" $((first + 2)))@notmuch-test-suite depth:1 match:1 filename:/XXX/mail/msg-$(printf "%03d" $((first + 2)))
-header{
-Notmuch Test Suite <test_suite at notmuchmail.org> (2001-01-07) (inbox unread)
-Subject: thread-naming: Newer changed subject
-From: Notmuch Test Suite <test_suite at notmuchmail.org>
-To: Notmuch Test Suite <test_suite at notmuchmail.org>
-Date: Sun, 07 Jan 2001 15:43:56 -0800
-header}
-body{
-part{ ID: 1, Content-type: text/plain
-This is just a test message (#$((first + 2)))
-part}
-body}
-message}
-message{ id:msg-$(printf "%03d" $((first + 3)))@notmuch-test-suite depth:1 match:1 filename:/XXX/mail/msg-$(printf "%03d" $((first + 3)))
-header{
-Notmuch Test Suite <test_suite at notmuchmail.org> (2001-01-08) (unread)
-Subject: thread-naming: Final thread subject
-From: Notmuch Test Suite <test_suite at notmuchmail.org>
-To: Notmuch Test Suite <test_suite at notmuchmail.org>
-Date: Mon, 08 Jan 2001 15:43:56 -0800
-header}
-body{
-part{ ID: 1, Content-type: text/plain
-This is just a test message (#$((first + 3)))
-part}
-body}
-message}
-message{ id:msg-$(printf "%03d" $((first + 4)))@notmuch-test-suite depth:1 match:1 filename:/XXX/mail/msg-$(printf "%03d" $((first + 4)))
-header{
-Notmuch Test Suite <test_suite at notmuchmail.org> (2001-01-09) (inbox unread)
-Subject: Re: thread-naming: Initial thread subject
-From: Notmuch Test Suite <test_suite at notmuchmail.org>
-To: Notmuch Test Suite <test_suite at notmuchmail.org>
-Date: Tue, 09 Jan 2001 15:43:45 -0800
-header}
-body{
-part{ ID: 1, Content-type: text/plain
-This is just a test message (#$((first + 4)))
-part}
-body}
-message}
-message{ id:msg-$(printf "%03d" $((first + 5)))@notmuch-test-suite depth:1 match:1 filename:/XXX/mail/msg-$(printf "%03d" $((first + 5)))
-header{
-Notmuch Test Suite <test_suite at notmuchmail.org> (2001-01-10) (inbox unread)
-Subject: Aw: thread-naming: Initial thread subject
-From: Notmuch Test Suite <test_suite at notmuchmail.org>
-To: Notmuch Test Suite <test_suite at notmuchmail.org>
-Date: Wed, 10 Jan 2001 15:43:45 -0800
-header}
-body{
-part{ ID: 1, Content-type: text/plain
-This is just a test message (#$((first + 5)))
-part}
-body}
-message}
-message{ id:msg-$(printf "%03d" $((first + 6)))@notmuch-test-suite depth:1 match:1 filename:/XXX/mail/msg-$(printf "%03d" $((first + 6)))
-header{
-Notmuch Test Suite <test_suite at notmuchmail.org> (2001-01-11) (inbox unread)
-Subject: Vs: thread-naming: Initial thread subject
-From: Notmuch Test Suite <test_suite at notmuchmail.org>
-To: Notmuch Test Suite <test_suite at notmuchmail.org>
-Date: Thu, 11 Jan 2001 15:43:45 -0800
-header}
-body{
-part{ ID: 1, Content-type: text/plain
-This is just a test message (#$((first + 6)))
-part}
-body}
-message}
-message{ id:msg-$(printf "%03d" $((first + 7)))@notmuch-test-suite depth:1 match:1 filename:/XXX/mail/msg-$(printf "%03d" $((first + 7)))
-header{
-Notmuch Test Suite <test_suite at notmuchmail.org> (2001-01-12) (inbox unread)
-Subject: Sv: thread-naming: Initial thread subject
-From: Notmuch Test Suite <test_suite at notmuchmail.org>
-To: Notmuch Test Suite <test_suite at notmuchmail.org>
-Date: Fri, 12 Jan 2001 15:43:45 -0800
-header}
-body{
-part{ ID: 1, Content-type: text/plain
-This is just a test message (#$((first + 7)))
-part}
-body}
-message}"
-
-printf "\nTesting \"notmuch reply\" in several variations:\n"
-
-printf " Basic reply...\t\t\t\t\t"
-add_message '[from]="Sender <sender at example.com>"' \
-             [to]=test_suite at notmuchmail.org \
-             [subject]=notmuch-reply-test \
-            '[date]="Tue, 05 Jan 2010 15:43:56 -0800"' \
-            '[body]="basic reply test"'
-
-output=$($NOTMUCH reply id:${gen_msg_id})
-pass_if_equal "$output" "From: Notmuch Test Suite <test_suite at notmuchmail.org>
-Subject: Re: notmuch-reply-test
-To: Sender <sender at example.com>
-Bcc: test_suite at notmuchmail.org
-In-Reply-To: <${gen_msg_id}>
-References: <${gen_msg_id}>
-
-On Tue, 05 Jan 2010 15:43:56 -0800, Sender <sender at example.com> wrote:
-> basic reply test"
-
-printf " Multiple recipients...\t\t\t\t"
-add_message '[from]="Sender <sender at example.com>"' \
-            '[to]="test_suite at notmuchmail.org, Someone Else <someone at example.com>"' \
-             [subject]=notmuch-reply-test \
-            '[date]="Tue, 05 Jan 2010 15:43:56 -0800"' \
-            '[body]="Multiple recipients"'
-
-output=$($NOTMUCH reply id:${gen_msg_id})
-pass_if_equal "$output" "From: Notmuch Test Suite <test_suite at notmuchmail.org>
-Subject: Re: notmuch-reply-test
-To: Sender <sender at example.com>, Someone Else <someone at example.com>
-Bcc: test_suite at notmuchmail.org
-In-Reply-To: <${gen_msg_id}>
-References: <${gen_msg_id}>
-
-On Tue, 05 Jan 2010 15:43:56 -0800, Sender <sender at example.com> wrote:
-> Multiple recipients"
-
-printf " Reply with CC...\t\t\t\t"
-add_message '[from]="Sender <sender at example.com>"' \
-             [to]=test_suite at notmuchmail.org \
-            '[cc]="Other Parties <cc at example.com>"' \
-             [subject]=notmuch-reply-test \
-            '[date]="Tue, 05 Jan 2010 15:43:56 -0800"' \
-            '[body]="reply with CC"'
-
-output=$($NOTMUCH reply id:${gen_msg_id})
-pass_if_equal "$output" "From: Notmuch Test Suite <test_suite at notmuchmail.org>
-Subject: Re: notmuch-reply-test
-To: Sender <sender at example.com>
-Cc: Other Parties <cc at example.com>
-Bcc: test_suite at notmuchmail.org
-In-Reply-To: <${gen_msg_id}>
-References: <${gen_msg_id}>
-
-On Tue, 05 Jan 2010 15:43:56 -0800, Sender <sender at example.com> wrote:
-> reply with CC"
-
-printf " Reply from alternate address...\t\t"
-add_message '[from]="Sender <sender at example.com>"' \
-             [to]=test_suite_other at notmuchmail.org \
-             [subject]=notmuch-reply-test \
-            '[date]="Tue, 05 Jan 2010 15:43:56 -0800"' \
-            '[body]="reply from alternate address"'
-
-output=$($NOTMUCH reply id:${gen_msg_id})
-pass_if_equal "$output" "From: Notmuch Test Suite <test_suite_other at notmuchmail.org>
-Subject: Re: notmuch-reply-test
-To: Sender <sender at example.com>
-Bcc: test_suite at notmuchmail.org
-In-Reply-To: <${gen_msg_id}>
-References: <${gen_msg_id}>
-
-On Tue, 05 Jan 2010 15:43:56 -0800, Sender <sender at example.com> wrote:
-> reply from alternate address"
-
-printf " Support for Reply-To...\t\t\t"
-add_message '[from]="Sender <sender at example.com>"' \
-             [to]=test_suite at notmuchmail.org \
-             [subject]=notmuch-reply-test \
-            '[date]="Tue, 05 Jan 2010 15:43:56 -0800"' \
-            '[body]="support for reply-to"' \
-            '[reply-to]="Sender <elsewhere at example.com>"'
-
-output=$($NOTMUCH reply id:${gen_msg_id})
-pass_if_equal "$output" "From: Notmuch Test Suite <test_suite at notmuchmail.org>
-Subject: Re: notmuch-reply-test
-To: Sender <elsewhere at example.com>
-Bcc: test_suite at notmuchmail.org
-In-Reply-To: <${gen_msg_id}>
-References: <${gen_msg_id}>
-
-On Tue, 05 Jan 2010 15:43:56 -0800, Sender <sender at example.com> wrote:
-> support for reply-to"
-
-printf " Un-munging Reply-To...\t\t\t\t"
-add_message '[from]="Sender <sender at example.com>"' \
-            '[to]="Some List <list at example.com>"' \
-             [subject]=notmuch-reply-test \
-            '[date]="Tue, 05 Jan 2010 15:43:56 -0800"' \
-            '[body]="Un-munging Reply-To"' \
-            '[reply-to]="Evil Munging List <list at example.com>"'
-
-output=$($NOTMUCH reply id:${gen_msg_id})
-pass_if_equal "$output" "From: Notmuch Test Suite <test_suite at notmuchmail.org>
-Subject: Re: notmuch-reply-test
-To: Sender <sender at example.com>, Some List <list at example.com>
-Bcc: test_suite at notmuchmail.org
-In-Reply-To: <${gen_msg_id}>
-References: <${gen_msg_id}>
-
-On Tue, 05 Jan 2010 15:43:56 -0800, Sender <sender at example.com> wrote:
-> Un-munging Reply-To"
-
-printf "\nTesting handling of uuencoded data:\n"
-
-add_message [subject]=uuencodetest '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' \
-'[body]="This message is used to ensure that notmuch correctly handles a
-message containing a block of uuencoded data. First, we have a marker
-this content beforeuudata . Then we beging the uunencoded data itself:
-
-begin 644 bogus-uuencoded-data
-M0123456789012345678901234567890123456789012345678901234567890
-MOBVIOUSLY, THIS IS NOT ANY SORT OF USEFUL UUNECODED DATA.    
-MINSTEAD THIS IS JUST A WAY TO ENSURE THAT THIS BLOCK OF DATA 
-MIS CORRECTLY IGNORED WHEN NOTMUCH CREATES ITS INDEX. SO WE   
-MINCLUDE A DURINGUUDATA MARKER THAT SHOULD NOT RESULT IN ANY  
-MSEARCH RESULT.                                               
-\`
-end
-
-Finally, we have our afteruudata marker as well."'
-
-printf " Ensure content before uu data is indexed...\t"
-output=$($NOTMUCH search beforeuudata | notmuch_search_sanitize)
-pass_if_equal "$output" "thread:XXX   2000-01-01 [1/1] Notmuch Test Suite; uuencodetest (inbox unread)"
-printf " Ensure uu data is not indexed...\t\t"
-output=$($NOTMUCH search DURINGUUDATA | notmuch_search_sanitize)
-pass_if_equal "$output" ""
-printf " Ensure content after uu data is indexed...\t"
-output=$($NOTMUCH search afteruudata | notmuch_search_sanitize)
-pass_if_equal "$output" "thread:XXX   2000-01-01 [1/1] Notmuch Test Suite; uuencodetest (inbox unread)"
-
-printf "\nTesting \"notmuch dump\" and \"notmuch restore\":\n"
-
-printf " Dumping all tags...\t\t\t\t"
-$NOTMUCH dump dump.expected
-pass_if_equal "$?" "0"
-
-printf " Clearing all tags...\t\t\t\t"
-sed -e 's/(\([^(]*\))$/()/' < dump.expected > clear.expected
-$NOTMUCH restore clear.expected
-$NOTMUCH dump clear.actual
-pass_if_equal "$(< clear.actual)" "$(< clear.expected)"
-
-printf " Restoring original tags...\t\t\t"
-$NOTMUCH restore dump.expected
-$NOTMUCH dump dump.actual
-pass_if_equal "$(< dump.actual)" "$(< dump.expected)"
-
-printf " Restore with nothing to do...\t\t\t"
-$NOTMUCH restore dump.expected
-pass_if_equal "$?" "0"
-
-printf "\nTesting threading when messages received out of order:\n"
-printf " Adding initial child message...\t\t"
-generate_message [body]=foo '[in-reply-to]=\<parent-id\>' [subject]=brokenthreadtest '[date]="Sat, 01 Jan 2000 12:00:00 -0000"'
-output=$(NOTMUCH_NEW)
-pass_if_equal "$output" "Added 1 new message to the database."
-printf " Searching returns the message...\t\t"
-output=$($NOTMUCH search foo | notmuch_search_sanitize)
-pass_if_equal "$output" "thread:XXX   2000-01-01 [1/1] Notmuch Test Suite; brokenthreadtest (inbox unread)"
-printf " Adding second child message...\t\t\t"
-generate_message [body]=foo '[in-reply-to]=\<parent-id\>' [subject]=brokenthreadtest '[date]="Sat, 01 Jan 2000 12:00:00 -0000"'
-output=$(NOTMUCH_NEW)
-pass_if_equal "$output" "Added 1 new message to the database."
-printf " Searching returns both messages in one thread..."
-output=$($NOTMUCH search foo | notmuch_search_sanitize)
-pass_if_equal "$output" "thread:XXX   2000-01-01 [2/2] Notmuch Test Suite; brokenthreadtest (inbox unread)"
-printf " Adding parent message...\t\t\t"
-generate_message [body]=foo [id]=parent-id [subject]=brokenthreadtest '[date]="Sat, 01 Jan 2000 12:00:00 -0000"'
-output=$(NOTMUCH_NEW)
-pass_if_equal "$output" "Added 1 new message to the database."
-printf " Searching returns all three messages in one thread..."
-output=$($NOTMUCH search foo | notmuch_search_sanitize)
-pass_if_equal "$output" "thread:XXX   2000-01-01 [3/3] Notmuch Test Suite; brokenthreadtest (inbox unread)"
-
-printf "\nTesting author reordering;\n"
-printf " Adding parent message...\t\t\t"
-generate_message [body]=findme [id]=new-parent-id [subject]=author-reorder-threadtest '[from]="User <user at example.com>"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"'
-output=$(NOTMUCH_NEW)
-pass_if_equal "$output" "Added 1 new message to the database."
-printf " Adding initial child message...\t\t"
-generate_message [body]=findme '[in-reply-to]=\<new-parent-id\>' [subject]=author-reorder-threadtest '[from]="User1 <user1 at example.com>"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"'
-output=$(NOTMUCH_NEW)
-pass_if_equal "$output" "Added 1 new message to the database."
-printf " Adding second child message...\t\t\t"
-generate_message [body]=findme '[in-reply-to]=\<new-parent-id\>' [subject]=author-reorder-threadtest '[from]="User2 <user2 at example.com>"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"'
-output=$(NOTMUCH_NEW)
-pass_if_equal "$output" "Added 1 new message to the database."
-printf " Searching when all three messages match...\t"
-output=$($NOTMUCH search findme | notmuch_search_sanitize)
-pass_if_equal "$output" "thread:XXX   2000-01-01 [3/3] User, User1, User2; author-reorder-threadtest (inbox unread)"
-printf " Searching when two messages match...\t\t"
-output=$($NOTMUCH search User1 or User2 | notmuch_search_sanitize)
-pass_if_equal "$output" "thread:XXX   2000-01-01 [2/3] User1, User2| User; author-reorder-threadtest (inbox unread)"
-printf " Searching when only one message matches...\t"
-output=$($NOTMUCH search User2 | notmuch_search_sanitize)
-pass_if_equal "$output" "thread:XXX   2000-01-01 [1/3] User2| User, User1; author-reorder-threadtest (inbox unread)"
-printf " Searching when only first message matches...\t"
-output=$($NOTMUCH search User | notmuch_search_sanitize)
-pass_if_equal "$output" "thread:XXX   2000-01-01 [1/3] User| User1, User2; author-reorder-threadtest (inbox unread)"
-
-printf "\nTesting From line heuristics (with multiple configured addresses):\n"
-printf " Magic from guessing (nothing to go on)...\t"
-add_message '[from]="Sender <sender at example.com>"' \
-             [to]=mailinglist at notmuchmail.org \
-             [subject]=notmuch-reply-test \
-            '[date]="Tue, 05 Jan 2010 15:43:56 -0800"' \
-            '[body]="from guessing test"'
-
-output=$($NOTMUCH reply id:${gen_msg_id})
-pass_if_equal "$output" "From: Notmuch Test Suite <test_suite at notmuchmail.org>
-Subject: Re: notmuch-reply-test
-To: Sender <sender at example.com>, mailinglist at notmuchmail.org
-Bcc: test_suite at notmuchmail.org
-In-Reply-To: <${gen_msg_id}>
-References: <${gen_msg_id}>
-
-On Tue, 05 Jan 2010 15:43:56 -0800, Sender <sender at example.com> wrote:
-> from guessing test"
-
-printf " Magic from guessing (Envelope-to:)...\t\t"
-add_message '[from]="Sender <sender at example.com>"' \
-             [to]=mailinglist at notmuchmail.org \
-             [subject]=notmuch-reply-test \
-            '[header]="Envelope-To: test_suite_other at notmuchmail.org"' \
-            '[date]="Tue, 05 Jan 2010 15:43:56 -0800"' \
-            '[body]="from guessing test"'
-
-output=$($NOTMUCH reply id:${gen_msg_id})
-pass_if_equal "$output" "From: Notmuch Test Suite <test_suite_other at notmuchmail.org>
-Subject: Re: notmuch-reply-test
-To: Sender <sender at example.com>, mailinglist at notmuchmail.org
-Bcc: test_suite at notmuchmail.org
-In-Reply-To: <${gen_msg_id}>
-References: <${gen_msg_id}>
-
-On Tue, 05 Jan 2010 15:43:56 -0800, Sender <sender at example.com> wrote:
-> from guessing test"
-
-printf " Magic from guessing (X-Original-To:)...\t"
-add_message '[from]="Sender <sender at example.com>"' \
-             [to]=mailinglist at notmuchmail.org \
-             [subject]=notmuch-reply-test \
-            '[header]="X-Original-To: test_suite_other at notmuchmail.org"' \
-            '[date]="Tue, 05 Jan 2010 15:43:56 -0800"' \
-            '[body]="from guessing test"'
-
-output=$($NOTMUCH reply id:${gen_msg_id})
-pass_if_equal "$output" "From: Notmuch Test Suite <test_suite_other at notmuchmail.org>
-Subject: Re: notmuch-reply-test
-To: Sender <sender at example.com>, mailinglist at notmuchmail.org
-Bcc: test_suite at notmuchmail.org
-In-Reply-To: <${gen_msg_id}>
-References: <${gen_msg_id}>
-
-On Tue, 05 Jan 2010 15:43:56 -0800, Sender <sender at example.com> wrote:
-> from guessing test"
-
-printf " Magic from guessing (Received: .. for ..)...\t"
-add_message '[from]="Sender <sender at example.com>"' \
-             [to]=mailinglist at notmuchmail.org \
-             [subject]=notmuch-reply-test \
-            '[header]="Received: from mail.example.com (mail.example.com [1.1.1.1])\
-        by mail.notmuchmail.org (some MTA) with ESMTP id 12345678\
-        for <test_suite_other at notmuchmail.org>; Sat, 10 Apr 2010 07:54:51 -0400 (EDT)"' \
-            '[date]="Tue, 05 Jan 2010 15:43:56 -0800"' \
-            '[body]="from guessing test"'
-
-output=$($NOTMUCH reply id:${gen_msg_id})
-pass_if_equal "$output" "From: Notmuch Test Suite <test_suite_other at notmuchmail.org>
-Subject: Re: notmuch-reply-test
-To: Sender <sender at example.com>, mailinglist at notmuchmail.org
-Bcc: test_suite at notmuchmail.org
-In-Reply-To: <${gen_msg_id}>
-References: <${gen_msg_id}>
-
-On Tue, 05 Jan 2010 15:43:56 -0800, Sender <sender at example.com> wrote:
-> from guessing test"
-
-printf " Magic from guessing (Received: domain)...\t"
-add_message '[from]="Sender <sender at example.com>"' \
-             [to]=mailinglist at notmuchmail.org \
-             [subject]=notmuch-reply-test \
-            '[header]="Received: from mail.example.com (mail.example.com [1.1.1.1])\
-        by mail.otherdomain.org (some MTA) with ESMTP id 12345678\
-        Sat, 10 Apr 2010 07:54:51 -0400 (EDT)"' \
-            '[date]="Tue, 05 Jan 2010 15:43:56 -0800"' \
-            '[body]="from guessing test"'
-
-output=$($NOTMUCH reply id:${gen_msg_id})
-pass_if_equal "$output" "From: Notmuch Test Suite <test_suite at otherdomain.org>
-Subject: Re: notmuch-reply-test
-To: Sender <sender at example.com>, mailinglist at notmuchmail.org
-Bcc: test_suite at notmuchmail.org
-In-Reply-To: <${gen_msg_id}>
-References: <${gen_msg_id}>
-
-On Tue, 05 Jan 2010 15:43:56 -0800, Sender <sender at example.com> wrote:
-> from guessing test"
-
-
-printf "\nTesting From line heuristics (with single configured address):\n"
-sed -i -e 's/^other_email.*//' ${NOTMUCH_CONFIG}
-
-printf " Magic from guessing (nothing to go on)...\t"
-add_message '[from]="Sender <sender at example.com>"' \
-             [to]=mailinglist at notmuchmail.org \
-             [subject]=notmuch-reply-test \
-            '[date]="Tue, 05 Jan 2010 15:43:56 -0800"' \
-            '[body]="from guessing test"'
-
-output=$($NOTMUCH reply id:${gen_msg_id})
-pass_if_equal "$output" "From: Notmuch Test Suite <test_suite at notmuchmail.org>
-Subject: Re: notmuch-reply-test
-To: Sender <sender at example.com>, mailinglist at notmuchmail.org
-Bcc: test_suite at notmuchmail.org
-In-Reply-To: <${gen_msg_id}>
-References: <${gen_msg_id}>
-
-On Tue, 05 Jan 2010 15:43:56 -0800, Sender <sender at example.com> wrote:
-> from guessing test"
-
-printf " Magic from guessing (Envelope-to:)...\t\t"
-add_message '[from]="Sender <sender at example.com>"' \
-             [to]=mailinglist at notmuchmail.org \
-             [subject]=notmuch-reply-test \
-            '[header]="Envelope-To: test_suite_other at notmuchmail.org"' \
-            '[date]="Tue, 05 Jan 2010 15:43:56 -0800"' \
-            '[body]="from guessing test"'
-
-output=$($NOTMUCH reply id:${gen_msg_id})
-pass_if_equal "$output" "From: Notmuch Test Suite <test_suite at notmuchmail.org>
-Subject: Re: notmuch-reply-test
-To: Sender <sender at example.com>, mailinglist at notmuchmail.org
-Bcc: test_suite at notmuchmail.org
-In-Reply-To: <${gen_msg_id}>
-References: <${gen_msg_id}>
-
-On Tue, 05 Jan 2010 15:43:56 -0800, Sender <sender at example.com> wrote:
-> from guessing test"
-
-printf " Magic from guessing (X-Original-To:)...\t"
-add_message '[from]="Sender <sender at example.com>"' \
-             [to]=mailinglist at notmuchmail.org \
-             [subject]=notmuch-reply-test \
-            '[header]="X-Original-To: test_suite_other at notmuchmail.org"' \
-            '[date]="Tue, 05 Jan 2010 15:43:56 -0800"' \
-            '[body]="from guessing test"'
-
-output=$($NOTMUCH reply id:${gen_msg_id})
-pass_if_equal "$output" "From: Notmuch Test Suite <test_suite at notmuchmail.org>
-Subject: Re: notmuch-reply-test
-To: Sender <sender at example.com>, mailinglist at notmuchmail.org
-Bcc: test_suite at notmuchmail.org
-In-Reply-To: <${gen_msg_id}>
-References: <${gen_msg_id}>
-
-On Tue, 05 Jan 2010 15:43:56 -0800, Sender <sender at example.com> wrote:
-> from guessing test"
-
-printf " Magic from guessing (Received: .. for ..)...\t"
-add_message '[from]="Sender <sender at example.com>"' \
-             [to]=mailinglist at notmuchmail.org \
-             [subject]=notmuch-reply-test \
-            '[header]="Received: from mail.example.com (mail.example.com [1.1.1.1])\
-        by mail.notmuchmail.org (some MTA) with ESMTP id 12345678\
-        for <test_suite_other at notmuchmail.org>; Sat, 10 Apr 2010 07:54:51 -0400 (EDT)"' \
-            '[date]="Tue, 05 Jan 2010 15:43:56 -0800"' \
-            '[body]="from guessing test"'
-
-output=$($NOTMUCH reply id:${gen_msg_id})
-pass_if_equal "$output" "From: Notmuch Test Suite <test_suite at notmuchmail.org>
-Subject: Re: notmuch-reply-test
-To: Sender <sender at example.com>, mailinglist at notmuchmail.org
-Bcc: test_suite at notmuchmail.org
-In-Reply-To: <${gen_msg_id}>
-References: <${gen_msg_id}>
-
-On Tue, 05 Jan 2010 15:43:56 -0800, Sender <sender at example.com> wrote:
-> from guessing test"
-
-printf " Magic from guessing (Received: domain)...\t"
-add_message '[from]="Sender <sender at example.com>"' \
-             [to]=mailinglist at notmuchmail.org \
-             [subject]=notmuch-reply-test \
-            '[header]="Received: from mail.example.com (mail.example.com [1.1.1.1])\
-        by mail.otherdomain.org (some MTA) with ESMTP id 12345678\
-        Sat, 10 Apr 2010 07:54:51 -0400 (EDT)"' \
-            '[date]="Tue, 05 Jan 2010 15:43:56 -0800"' \
-            '[body]="from guessing test"'
+run_collection_setup_and_tests ()
+{
+    for testfile in $(find ${TEST_COLLECTION_DIR}/$1 \
+	-name "*.test" -o -name "*.setup" |
+	sort -n);
+    do
+	source $testfile
+    done
+}
 
-output=$($NOTMUCH reply id:${gen_msg_id})
-pass_if_equal "$output" "From: Notmuch Test Suite <test_suite at notmuchmail.org>
-Subject: Re: notmuch-reply-test
-To: Sender <sender at example.com>, mailinglist at notmuchmail.org
-Bcc: test_suite at notmuchmail.org
-In-Reply-To: <${gen_msg_id}>
-References: <${gen_msg_id}>
+run_test_suite ()
+{
+    initialize_notmuch_test;
+
+    if [ "$#" = "0" -o "$1" = "all" ]; then
+	for dir in $(echo ${TEST_COLLECTIONS}); do
+	    run_collection_setup_and_tests "$(basename ${dir})";
+	done;
+    elif [ ! -d "${TEST_COLLECTION_DIR}/$1" ]; then
+	echo "${TEST_COLLECTION_DIR}/$1 is not a directory"
+	exit
+    else
+	run_collection_setup_and_tests "$1";
+    fi
+}
 
-On Tue, 05 Jan 2010 15:43:56 -0800, Sender <sender at example.com> wrote:
-> from guessing test"
+run_test_suite $1
 
 echo ""
 echo "Notmuch test suite complete."
-- 
1.6.3.3



More information about the notmuch mailing list