summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xtest/t0001-new.sh299
-rwxr-xr-xtest/t0002-search.sh170
-rwxr-xr-xtest/t0003-json.sh46
-rwxr-xr-xtest/t0004-thread-naming.sh117
-rwxr-xr-xtest/t0005-reply.sh103
-rwxr-xr-xtest/t0006-dump-restore.sh36
-rwxr-xr-xtest/t0007-uuencode.sh32
-rwxr-xr-xtest/t0008-threading-out-of-order.sh55
-rwxr-xr-xtest/t0009-author-reordering.sh63
-rwxr-xr-xtest/t0010-from-line-heuristics.sh142
-rwxr-xr-xtest/t0011-long-msgid.sh42
-rwxr-xr-xtest/t0012-encoding-issues.sh11
-rw-r--r--test/test-lib.sh40
13 files changed, 560 insertions, 596 deletions
diff --git a/test/t0001-new.sh b/test/t0001-new.sh
index 97726e7..4c6952f 100755
--- a/test/t0001-new.sh
+++ b/test/t0001-new.sh
@@ -1,164 +1,165 @@
#!/bin/bash
-test_description="\"notmuch new\" in several variations"
+test_description='"notmuch new" in several variations'
. ./test-lib.sh
-test_expect_success "No new messages" '
-output=$(NOTMUCH_NEW) &&
-pass_if_equal "$output" "No new mail."
-
-'
-test_expect_success "Single new message" '
-generate_message &&
-output=$(NOTMUCH_NEW) &&
-pass_if_equal "$output" "Added 1 new message to the database."
-
-'
-test_expect_success "Multiple new messages" '
-generate_message &&
-generate_message &&
-output=$(NOTMUCH_NEW) &&
-pass_if_equal "$output" "Added 2 new messages to the database."
-
-'
-test_expect_success "No new messages (non-empty DB)" '
-output=$(NOTMUCH_NEW) &&
-pass_if_equal "$output" "No new mail."
-
-'
-test_expect_success "New directories" '
-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."
-
-'
-test_expect_success "Alternate inode order" '
-
-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."
-
-'
-test_expect_success "Message moved in" '
-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."
-
-'
-test_expect_success "Renamed message" '
-
-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."
-
-'
-test_expect_success "Deleted message" '
-
-rm "${gen_msg_filename}"-renamed &&
-increment_mtime "${MAIL_DIR}" &&
-output=$(NOTMUCH_NEW) &&
-pass_if_equal "$output" "No new mail. Removed 1 message."
-
-'
-test_expect_success "Renamed directory" '
-
-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."
-
-'
-test_expect_success "Deleted directory" '
-
-rm -rf "${MAIL_DIR}"/dir-renamed &&
-increment_mtime "${MAIL_DIR}" &&
-
-output=$(NOTMUCH_NEW) &&
-pass_if_equal "$output" "No new mail. Removed 3 messages."
-
-'
-test_expect_success "New directory (at end of list)" '
-
-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."
-
-'
-test_expect_success "Deleted directory (end of list)" '
-
-rm -rf "${MAIL_DIR}"/zzz &&
-increment_mtime "${MAIL_DIR}" &&
-output=$(NOTMUCH_NEW) &&
-pass_if_equal "$output" "No new mail. Removed 3 messages."
+test_begin_subtest "No new messages"
+output=$(NOTMUCH_NEW)
+test_expect_equal "$output" "No new mail."
-'
-test_expect_success "New symlink to directory" '
-rm -rf "${MAIL_DIR}"/.notmuch &&
-mv "${MAIL_DIR}" "$PWD"/actual_maildir &&
+test_begin_subtest "Single new message"
+generate_message
+output=$(NOTMUCH_NEW)
+test_expect_equal "$output" "Added 1 new message to the database."
-mkdir "${MAIL_DIR}" &&
-ln -s "$PWD"/actual_maildir "${MAIL_DIR}"/symlink &&
-output=$(NOTMUCH_NEW) &&
-pass_if_equal "$output" "Added 1 new message to the database."
+test_begin_subtest "Multiple new messages"
+generate_message
+generate_message
+output=$(NOTMUCH_NEW)
+test_expect_equal "$output" "Added 2 new messages to the database."
-'
-test_expect_success "New symlink to a file" '
-generate_message &&
-external_msg_filename="$PWD"/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."
-'
-test_expect_success "New two-level directory" '
+test_begin_subtest "No new messages (non-empty DB)"
+output=$(NOTMUCH_NEW)
+test_expect_equal "$output" "No new mail."
-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."
+test_begin_subtest "New directories"
+rm -rf "${MAIL_DIR}"/* "${MAIL_DIR}"/.notmuch
+mkdir "${MAIL_DIR}"/def
+mkdir "${MAIL_DIR}"/ghi
+generate_message [dir]=def
-'
-test_expect_success "Deleted two-level directory" '
+output=$(NOTMUCH_NEW)
+test_expect_equal "$output" "Added 1 new message to the database."
-rm -rf "${MAIL_DIR}"/two &&
-increment_mtime "${MAIL_DIR}" &&
-output=$(NOTMUCH_NEW) &&
-pass_if_equal "$output" "No new mail. Removed 3 messages."
-'
+test_begin_subtest "Alternate inode order"
+
+rm -rf "${MAIL_DIR}"/.notmuch
+mv "${MAIL_DIR}"/ghi "${MAIL_DIR}"/abc
+rm "${MAIL_DIR}"/def/*
+generate_message [dir]=abc
+
+output=$(NOTMUCH_NEW)
+test_expect_equal "$output" "Added 1 new message to the database."
+
+
+test_begin_subtest "Message moved in"
+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)
+test_expect_equal "$output" "Added 1 new message to the database."
+
+
+test_begin_subtest "Renamed message"
+
+generate_message
+$NOTMUCH new > /dev/null
+mv "$gen_msg_filename" "${gen_msg_filename}"-renamed
+increment_mtime "${MAIL_DIR}"
+output=$(NOTMUCH_NEW)
+test_expect_equal "$output" "No new mail. Detected 1 file rename."
+
+
+test_begin_subtest "Deleted message"
+
+rm "${gen_msg_filename}"-renamed
+increment_mtime "${MAIL_DIR}"
+output=$(NOTMUCH_NEW)
+test_expect_equal "$output" "No new mail. Removed 1 message."
+
+
+test_begin_subtest "Renamed directory"
+
+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)
+test_expect_equal "$output" "No new mail. Detected 3 file renames."
+
+
+test_begin_subtest "Deleted directory"
+
+rm -rf "${MAIL_DIR}"/dir-renamed
+increment_mtime "${MAIL_DIR}"
+
+output=$(NOTMUCH_NEW)
+test_expect_equal "$output" "No new mail. Removed 3 messages."
+
+
+test_begin_subtest "New directory (at end of list)"
+
+generate_message [dir]=zzz
+generate_message [dir]=zzz
+generate_message [dir]=zzz
+
+output=$(NOTMUCH_NEW)
+test_expect_equal "$output" "Added 3 new messages to the database."
+
+
+test_begin_subtest "Deleted directory (end of list)"
+
+rm -rf "${MAIL_DIR}"/zzz
+increment_mtime "${MAIL_DIR}"
+
+output=$(NOTMUCH_NEW)
+test_expect_equal "$output" "No new mail. Removed 3 messages."
+
+
+test_begin_subtest "New symlink to directory"
+
+rm -rf "${MAIL_DIR}"/.notmuch
+mv "${MAIL_DIR}" "$PWD"/actual_maildir
+
+mkdir "${MAIL_DIR}"
+ln -s "$PWD"/actual_maildir "${MAIL_DIR}"/symlink
+
+output=$(NOTMUCH_NEW)
+test_expect_equal "$output" "Added 1 new message to the database."
+
+
+test_begin_subtest "New symlink to a file"
+generate_message
+external_msg_filename="$PWD"/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)
+test_expect_equal "$output" "Added 1 new message to the database."
+
+
+test_begin_subtest "New two-level directory"
+
+generate_message [dir]=two/levels
+generate_message [dir]=two/levels
+generate_message [dir]=two/levels
+
+output=$(NOTMUCH_NEW)
+test_expect_equal "$output" "Added 3 new messages to the database."
+
+
+test_begin_subtest "Deleted two-level directory"
+
+rm -rf "${MAIL_DIR}"/two
+increment_mtime "${MAIL_DIR}"
+
+output=$(NOTMUCH_NEW)
+test_expect_equal "$output" "No new mail. Removed 3 messages."
+
test_done
diff --git a/test/t0002-search.sh b/test/t0002-search.sh
index 7de4d47..865f5bb 100755
--- a/test/t0002-search.sh
+++ b/test/t0002-search.sh
@@ -1,92 +1,79 @@
#!/bin/bash
-test_description="\"notmuch search\" in several variations"
+test_description='"notmuch search" in several variations'
. ./test-lib.sh
-test_expect_success "Search body" '
-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)"
-
-'
-test_expect_success "Search by from:" '
-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)"
-
-'
-test_expect_success "Search by to:" '
-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)"
-
-'
-test_expect_success "Search by subject:" '
-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)"
-
-'
-test_expect_success "Search by id:" '
-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)"
-
-'
-test_expect_success "Search by tag:" '
-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)"
-
-'
-test_expect_success "Search by thread:" '
-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)"
-
-'
-test_expect_success "Search body (phrase)" '
-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)"
-
-'
-test_expect_success "Search by from: (address)" '
-add_message "[subject]=\"search by from (address)\"" "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" [from]=searchbyfrom@example.com &&
-output=$($NOTMUCH search from:searchbyfrom@example.com | notmuch_search_sanitize) &&
-pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] searchbyfrom@example.com; search by from (address) (inbox unread)"
-
-'
-test_expect_success "Search by from: (name)" '
-add_message "[subject]=\"search by from (name)\"" "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" "[from]=\"Search By From Name <test@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)"
-
-'
-test_expect_success "Search by to: (address)" '
-add_message "[subject]=\"search by to (address)\"" "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" [to]=searchbyto@example.com &&
-output=$($NOTMUCH search to:searchbyto@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)"
-
-'
-test_expect_success "Search by to: (name)" '
-add_message "[subject]=\"search by to (name)\"" "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" "[to]=\"Search By To Name <test@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)"
-
-'
-test_expect_success "Search by subject: (phrase)" '
-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)"
-
-'
-test_expect_success "Search for all messages (\"*\"):" '
-output=$($NOTMUCH search "*" | notmuch_search_sanitize) &&
-pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; body search (inbox unread)
+test_begin_subtest "Search body"
+add_message '[subject]="body search"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' [body]=bodysearchtest
+output=$($NOTMUCH search bodysearchtest | notmuch_search_sanitize)
+test_expect_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; body search (inbox unread)"
+
+test_begin_subtest "Search by from:"
+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)
+test_expect_equal "$output" "thread:XXX 2000-01-01 [1/1] searchbyfrom; search by from (inbox unread)"
+
+test_begin_subtest "Search by to:"
+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)
+test_expect_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; search by to (inbox unread)"
+
+test_begin_subtest "Search by subject:"
+add_message [subject]=subjectsearchtest '[date]="Sat, 01 Jan 2000 12:00:00 -0000"'
+output=$($NOTMUCH search subject:subjectsearchtest | notmuch_search_sanitize)
+test_expect_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; subjectsearchtest (inbox unread)"
+
+test_begin_subtest "Search by id:"
+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)
+test_expect_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; search by id (inbox unread)"
+
+test_begin_subtest "Search by tag:"
+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)
+test_expect_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; search by tag (inbox searchbytag unread)"
+
+test_begin_subtest "Search by thread:"
+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)
+test_expect_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; search by thread (inbox unread)"
+
+test_begin_subtest "Search body (phrase)"
+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)
+test_expect_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; body search (phrase) (inbox unread)"
+
+test_begin_subtest "Search by from: (address)"
+add_message '[subject]="search by from (address)"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' [from]=searchbyfrom@example.com
+output=$($NOTMUCH search from:searchbyfrom@example.com | notmuch_search_sanitize)
+test_expect_equal "$output" "thread:XXX 2000-01-01 [1/1] searchbyfrom@example.com; search by from (address) (inbox unread)"
+
+test_begin_subtest "Search by from: (name)"
+add_message '[subject]="search by from (name)"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' '[from]="Search By From Name <test@example.com>"'
+output=$($NOTMUCH search from:"Search By From Name" | notmuch_search_sanitize)
+test_expect_equal "$output" "thread:XXX 2000-01-01 [1/1] Search By From Name; search by from (name) (inbox unread)"
+
+test_begin_subtest "Search by to: (address)"
+add_message '[subject]="search by to (address)"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' [to]=searchbyto@example.com
+output=$($NOTMUCH search to:searchbyto@example.com | notmuch_search_sanitize)
+test_expect_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; search by to (address) (inbox unread)"
+
+test_begin_subtest "Search by to: (name)"
+add_message '[subject]="search by to (name)"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' '[to]="Search By To Name <test@example.com>"'
+output=$($NOTMUCH search to:"Search By To Name" | notmuch_search_sanitize)
+test_expect_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; search by to (name) (inbox unread)"
+
+test_begin_subtest "Search by subject: (phrase)"
+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)
+test_expect_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; subject search test (phrase) (inbox unread)"
+
+test_begin_subtest 'Search for all messages ("*"
+output=$($NOTMUCH search '*' | notmuch_search_sanitize)
+test_expect_equal):' "$output" "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)
@@ -102,10 +89,9 @@ thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; search by to (name) (inbox unr
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)"
-'
-test_expect_success "Search body (utf-8):" '
-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)"
-'
+test_begin_subtest "Search body (utf-8):"
+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)
+test_expect_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; utf8-message-body-subject (inbox unread)"
+
test_done
diff --git a/test/t0003-json.sh b/test/t0003-json.sh
index 810262c..2497613 100755
--- a/test/t0003-json.sh
+++ b/test/t0003-json.sh
@@ -2,16 +2,15 @@
test_description="--format=json output"
. ./test-lib.sh
-test_expect_success "Show message: json" '
-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@notmuchmail.org>\", \"To\": \"Notmuch Test Suite <test_suite@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\"}]}, []]]]"
+test_begin_subtest "Show message: json"
+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")
+test_expect_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@notmuchmail.org>\", \"To\": \"Notmuch Test Suite <test_suite@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\"}]}, []]]]"
-'
-test_expect_success "Search message: json" '
-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\",
+test_begin_subtest "Search message: json"
+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)
+test_expect_equal "$output" "[{\"thread\": \"XXX\",
\"timestamp\": 946728000,
\"matched\": 1,
\"total\": 1,
@@ -19,28 +18,25 @@ pass_if_equal "$output" "[{\"thread\": \"XXX\",
\"subject\": \"json-search-subject\",
\"tags\": [\"inbox\", \"unread\"]}]"
-'
-test_expect_success "Search by subject (utf-8):" '
-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)"
+test_begin_subtest "Search by subject (utf-8):"
+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)
+test_expect_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; utf8-sübjéct (inbox unread)"
-'
-test_expect_success "Show message: json, utf-8" '
-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@notmuchmail.org>\", \"To\": \"Notmuch Test Suite <test_suite@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\"}]}, []]]]"
+test_begin_subtest "Show message: json, utf-8"
+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")
+test_expect_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@notmuchmail.org>\", \"To\": \"Notmuch Test Suite <test_suite@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\"}]}, []]]]"
-'
-test_expect_success "Search message: json, utf-8" '
-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\",
+test_begin_subtest "Search message: json, utf-8"
+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)
+test_expect_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\"]}]"
-'
+
test_done
diff --git a/test/t0004-thread-naming.sh b/test/t0004-thread-naming.sh
index c77f726..31c0153 100755
--- a/test/t0004-thread-naming.sh
+++ b/test/t0004-thread-naming.sh
@@ -1,81 +1,73 @@
#!/bin/bash
test_description="naming of threads with changing subject"
. ./test-lib.sh
-test_expect_success 'Generate some messages' '
-add_message "[subject]=\"thread-naming: Initial thread subject\"" \
- "[date]=\"Fri, 05 Jan 2001 15:43:56 -0000\"" &&
-first=${gen_msg_cnt} &&
-parent=${gen_msg_id} &&
-add_message "[subject]=\"thread-naming: Older changed subject\"" \
- "[date]=\"Sat, 06 Jan 2001 15:43:56 -0000\"" \
- "[in-reply-to]=\<$parent\>" &&
-add_message "[subject]=\"thread-naming: Newer changed subject\"" \
- "[date]=\"Sun, 07 Jan 2001 15:43:56 -0000\"" \
- "[in-reply-to]=\<$parent\>" &&
-add_message "[subject]=\"thread-naming: Final thread subject\"" \
- "[date]=\"Mon, 08 Jan 2001 15:43:56 -0000\"" \
- "[in-reply-to]=\<$parent\>" &&
+
+test_begin_subtest 'Generate some messages'
+add_message '[subject]="thread-naming: Initial thread subject"' \
+ '[date]="Fri, 05 Jan 2001 15:43:56 -0000"'
+first=${gen_msg_cnt}
+parent=${gen_msg_id}
+add_message '[subject]="thread-naming: Older changed subject"' \
+ '[date]="Sat, 06 Jan 2001 15:43:56 -0000"' \
+ "[in-reply-to]=\<$parent\>"
+add_message '[subject]="thread-naming: Newer changed subject"' \
+ '[date]="Sun, 07 Jan 2001 15:43:56 -0000"' \
+ "[in-reply-to]=\<$parent\>"
+add_message '[subject]="thread-naming: Final thread subject"' \
+ '[date]="Mon, 08 Jan 2001 15:43:56 -0000"' \
+ "[in-reply-to]=\<$parent\>"
final=${gen_msg_id}
-'
-test_expect_success "Initial thread name (oldest-first search)" '
-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)"
+test_begin_subtest "Initial thread name (oldest-first search)"
+output=$($NOTMUCH search --sort=oldest-first thread-naming and tag:inbox | notmuch_search_sanitize)
+test_expect_equal "$output" "thread:XXX 2001-01-05 [4/4] Notmuch Test Suite; thread-naming: Initial thread subject (inbox unread)"
-'
-test_expect_success "Initial thread name (newest-first search)" '
-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)"
+test_begin_subtest "Initial thread name (newest-first search)"
+output=$($NOTMUCH search --sort=newest-first thread-naming and tag:inbox | notmuch_search_sanitize)
+test_expect_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
-'
-test_expect_success "Changed thread name (oldest-first search)" '
-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)"
+test_begin_subtest "Changed thread name (oldest-first search)"
+output=$($NOTMUCH search --sort=oldest-first thread-naming and tag:inbox | notmuch_search_sanitize)
+test_expect_equal "$output" "thread:XXX 2001-01-06 [2/4] Notmuch Test Suite; thread-naming: Older changed subject (inbox unread)"
-'
-test_expect_success "Changed thread name (newest-first search)" '
-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)"
+test_begin_subtest "Changed thread name (newest-first search)"
+output=$($NOTMUCH search --sort=newest-first thread-naming and tag:inbox | notmuch_search_sanitize)
+test_expect_equal "$output" "thread:XXX 2001-01-07 [2/4] Notmuch Test Suite; thread-naming: Newer changed subject (inbox unread)"
-'
-test_expect_success "Ignore added reply prefix (Re:)" '
-add_message "[subject]=\"Re: thread-naming: Initial thread subject\"" \
- "[date]=\"Tue, 09 Jan 2001 15:43:45 -0000\"" \
- "[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)"
+test_begin_subtest "Ignore added reply prefix (Re:)"
+add_message '[subject]="Re: thread-naming: Initial thread subject"' \
+ '[date]="Tue, 09 Jan 2001 15:43:45 -0000"' \
+ "[in-reply-to]=\<$parent\>"
+output=$($NOTMUCH search --sort=newest-first thread-naming and tag:inbox | notmuch_search_sanitize)
+test_expect_equal "$output" "thread:XXX 2001-01-09 [3/5] Notmuch Test Suite; thread-naming: Initial thread subject (inbox unread)"
-'
-test_expect_success "Ignore added reply prefix (Aw:)" '
-add_message "[subject]=\"Aw: thread-naming: Initial thread subject\"" \
- "[date]=\"Wed, 10 Jan 2001 15:43:45 -0000\"" \
- "[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)"
+test_begin_subtest "Ignore added reply prefix (Aw:)"
+add_message '[subject]="Aw: thread-naming: Initial thread subject"' \
+ '[date]="Wed, 10 Jan 2001 15:43:45 -0000"' \
+ "[in-reply-to]=\<$parent\>"
+output=$($NOTMUCH search --sort=newest-first thread-naming and tag:inbox | notmuch_search_sanitize)
+test_expect_equal "$output" "thread:XXX 2001-01-10 [4/6] Notmuch Test Suite; thread-naming: Initial thread subject (inbox unread)"
-'
-test_expect_success "Ignore added reply prefix (Vs:)" '
-add_message "[subject]=\"Vs: thread-naming: Initial thread subject\"" \
- "[date]=\"Thu, 11 Jan 2001 15:43:45 -0000\"" \
- "[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)"
+test_begin_subtest "Ignore added reply prefix (Vs:)"
+add_message '[subject]="Vs: thread-naming: Initial thread subject"' \
+ '[date]="Thu, 11 Jan 2001 15:43:45 -0000"' \
+ "[in-reply-to]=\<$parent\>"
+output=$($NOTMUCH search --sort=newest-first thread-naming and tag:inbox | notmuch_search_sanitize)
+test_expect_equal "$output" "thread:XXX 2001-01-11 [5/7] Notmuch Test Suite; thread-naming: Initial thread subject (inbox unread)"
-'
-test_expect_success "Ignore added reply prefix (Sv:)" '
-add_message "[subject]=\"Sv: thread-naming: Initial thread subject\"" \
- "[date]=\"Fri, 12 Jan 2001 15:43:45 -0000\"" \
- "[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)"
+test_begin_subtest "Ignore added reply prefix (Sv:)"
+add_message '[subject]="Sv: thread-naming: Initial thread subject"' \
+ '[date]="Fri, 12 Jan 2001 15:43:45 -0000"' \
+ "[in-reply-to]=\<$parent\>"
+output=$($NOTMUCH search --sort=newest-first thread-naming and tag:inbox | notmuch_search_sanitize)
+test_expect_equal "$output" "thread:XXX 2001-01-12 [6/8] Notmuch Test Suite; thread-naming: Initial thread subject (inbox unread)"
-'
-test_expect_success "Test order of messages in \"notmuch show\"" '
-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)
+test_begin_subtest 'Test order of messages in "notmuch show"'
+output=$($NOTMUCH show thread-naming | notmuch_show_sanitize)
+test_expect_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@notmuchmail.org> (2001-01-05) (unread)
Subject: thread-naming: Initial thread subject
@@ -187,5 +179,4 @@ This is just a test message (#$((first + 7)))
part}
body}
message}"
-'
test_done
diff --git a/test/t0005-reply.sh b/test/t0005-reply.sh
index 97e1006..d6b7431 100755
--- a/test/t0005-reply.sh
+++ b/test/t0005-reply.sh
@@ -2,15 +2,15 @@
test_description="\"notmuch reply\" in several variations"
. ./test-lib.sh
-test_expect_success "Basic reply" '
-add_message "[from]=\"Sender <sender@example.com>\"" \
+test_begin_subtest "Basic reply"
+add_message '[from]="Sender <sender@example.com>"' \
[to]=test_suite@notmuchmail.org \
[subject]=notmuch-reply-test \
- "[date]=\"Tue, 05 Jan 2010 15:43:56 -0000\"" \
- "[body]=\"basic reply test\"" &&
+ '[date]="Tue, 05 Jan 2010 15:43:56 -0000"' \
+ '[body]="basic reply test"'
-output=$($NOTMUCH reply id:${gen_msg_id}) &&
-pass_if_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
+output=$($NOTMUCH reply id:${gen_msg_id})
+test_expect_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
Subject: Re: notmuch-reply-test
To: Sender <sender@example.com>
Bcc: test_suite@notmuchmail.org
@@ -20,16 +20,15 @@ References: <${gen_msg_id}>
On Tue, 05 Jan 2010 15:43:56 -0000, Sender <sender@example.com> wrote:
> basic reply test"
-'
-test_expect_success "Multiple recipients" '
-add_message "[from]=\"Sender <sender@example.com>\"" \
- "[to]=\"test_suite@notmuchmail.org, Someone Else <someone@example.com>\"" \
+test_begin_subtest "Multiple recipients"
+add_message '[from]="Sender <sender@example.com>"' \
+ '[to]="test_suite@notmuchmail.org, Someone Else <someone@example.com>"' \
[subject]=notmuch-reply-test \
- "[date]=\"Tue, 05 Jan 2010 15:43:56 -0000\"" \
- "[body]=\"Multiple recipients\"" &&
+ '[date]="Tue, 05 Jan 2010 15:43:56 -0000"' \
+ '[body]="Multiple recipients"'
-output=$($NOTMUCH reply id:${gen_msg_id}) &&
-pass_if_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
+output=$($NOTMUCH reply id:${gen_msg_id})
+test_expect_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
Subject: Re: notmuch-reply-test
To: Sender <sender@example.com>, Someone Else <someone@example.com>
Bcc: test_suite@notmuchmail.org
@@ -39,17 +38,16 @@ References: <${gen_msg_id}>
On Tue, 05 Jan 2010 15:43:56 -0000, Sender <sender@example.com> wrote:
> Multiple recipients"
-'
-test_expect_success "Reply with CC" '
-add_message "[from]=\"Sender <sender@example.com>\"" \
+test_begin_subtest "Reply with CC"
+add_message '[from]="Sender <sender@example.com>"' \
[to]=test_suite@notmuchmail.org \
- "[cc]=\"Other Parties <cc@example.com>\"" \
+ '[cc]="Other Parties <cc@example.com>"' \
[subject]=notmuch-reply-test \
- "[date]=\"Tue, 05 Jan 2010 15:43:56 -0000\"" \
- "[body]=\"reply with CC\"" &&
+ '[date]="Tue, 05 Jan 2010 15:43:56 -0000"' \
+ '[body]="reply with CC"'
-output=$($NOTMUCH reply id:${gen_msg_id}) &&
-pass_if_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
+output=$($NOTMUCH reply id:${gen_msg_id})
+test_expect_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
Subject: Re: notmuch-reply-test
To: Sender <sender@example.com>
Cc: Other Parties <cc@example.com>
@@ -60,16 +58,15 @@ References: <${gen_msg_id}>
On Tue, 05 Jan 2010 15:43:56 -0000, Sender <sender@example.com> wrote:
> reply with CC"
-'
-test_expect_success "Reply from alternate address" '
-add_message "[from]=\"Sender <sender@example.com>\"" \
+test_begin_subtest "Reply from alternate address"
+add_message '[from]="Sender <sender@example.com>"' \
[to]=test_suite_other@notmuchmail.org \
[subject]=notmuch-reply-test \
- "[date]=\"Tue, 05 Jan 2010 15:43:56 -0000\"" \
- "[body]=\"reply from alternate address\"" &&
+ '[date]="Tue, 05 Jan 2010 15:43:56 -0000"' \
+ '[body]="reply from alternate address"'
-output=$($NOTMUCH reply id:${gen_msg_id}) &&
-pass_if_equal "$output" "From: Notmuch Test Suite <test_suite_other@notmuchmail.org>
+output=$($NOTMUCH reply id:${gen_msg_id})
+test_expect_equal "$output" "From: Notmuch Test Suite <test_suite_other@notmuchmail.org>
Subject: Re: notmuch-reply-test
To: Sender <sender@example.com>
Bcc: test_suite@notmuchmail.org
@@ -79,17 +76,16 @@ References: <${gen_msg_id}>
On Tue, 05 Jan 2010 15:43:56 -0000, Sender <sender@example.com> wrote:
> reply from alternate address"
-'
-test_expect_success "Support for Reply-To" '
-add_message "[from]=\"Sender <sender@example.com>\"" \
+test_begin_subtest "Support for Reply-To"
+add_message '[from]="Sender <sender@example.com>"' \
[to]=test_suite@notmuchmail.org \
[subject]=notmuch-reply-test \
- "[date]=\"Tue, 05 Jan 2010 15:43:56 -0000\"" \
- "[body]=\"support for reply-to\"" \
- "[reply-to]=\"Sender <elsewhere@example.com>\"" &&
+ '[date]="Tue, 05 Jan 2010 15:43:56 -0000"' \
+ '[body]="support for reply-to"' \
+ '[reply-to]="Sender <elsewhere@example.com>"'
-output=$($NOTMUCH reply id:${gen_msg_id}) &&
-pass_if_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
+output=$($NOTMUCH reply id:${gen_msg_id})
+test_expect_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
Subject: Re: notmuch-reply-test
To: Sender <elsewhere@example.com>
Bcc: test_suite@notmuchmail.org
@@ -99,17 +95,16 @@ References: <${gen_msg_id}>
On Tue, 05 Jan 2010 15:43:56 -0000, Sender <sender@example.com> wrote:
> support for reply-to"
-'
-test_expect_success "Un-munging Reply-To" '
-add_message "[from]=\"Sender <sender@example.com>\"" \
- "[to]=\"Some List <list@example.com>\"" \
+test_begin_subtest "Un-munging Reply-To"
+add_message '[from]="Sender <sender@example.com>"' \
+ '[to]="Some List <list@example.com>"' \
[subject]=notmuch-reply-test \
- "[date]=\"Tue, 05 Jan 2010 15:43:56 -0000\"" \
- "[body]=\"Un-munging Reply-To\"" \
- "[reply-to]=\"Evil Munging List <list@example.com>\"" &&
+ '[date]="Tue, 05 Jan 2010 15:43:56 -0000"' \
+ '[body]="Un-munging Reply-To"' \
+ '[reply-to]="Evil Munging List <list@example.com>"'
-output=$($NOTMUCH reply id:${gen_msg_id}) &&
-pass_if_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
+output=$($NOTMUCH reply id:${gen_msg_id})
+test_expect_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
Subject: Re: notmuch-reply-test
To: Sender <sender@example.com>, Some List <list@example.com>
Bcc: test_suite@notmuchmail.org
@@ -118,14 +113,13 @@ References: <${gen_msg_id}>
On Tue, 05 Jan 2010 15:43:56 -0000, Sender <sender@example.com> wrote:
> Un-munging Reply-To"
-'
-
-test_expect_success "Message with header of exactly 200 bytes" '
-add_message "[subject]=\"This subject is exactly 200 bytes in length. Other than its length there is not much of note here. Note that the length of 200 bytes includes the Subject: and Re: prefixes with two spaces\"" \
- "[date]=\"Tue, 05 Jan 2010 15:43:56 -0000\"" \
- "[body]=\"200-byte header\"" &&
-output=$($NOTMUCH reply id:${gen_msg_id}) &&
-pass_if_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
+
+test_begin_subtest "Message with header of exactly 200 bytes"
+add_message '[subject]="This subject is exactly 200 bytes in length. Other than its length there is not much of note here. Note that the length of 200 bytes includes the Subject: and Re: prefixes with two spaces"' \
+ '[date]="Tue, 05 Jan 2010 15:43:56 -0000"' \
+ '[body]="200-byte header"'
+output=$($NOTMUCH reply id:${gen_msg_id})
+test_expect_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
Subject: Re: This subject is exactly 200 bytes in length. Other than its length there is not much of note here. Note that the length of 200 bytes includes the Subject: and Re: prefixes with two spaces
Bcc: test_suite@notmuchmail.org
In-Reply-To: <${gen_msg_id}>
@@ -133,5 +127,4 @@ References: <${gen_msg_id}>
On Tue, 05 Jan 2010 15:43:56 -0000, Notmuch Test Suite <test_suite@notmuchmail.org> wrote:
> 200-byte header"
-'
test_done
diff --git a/test/t0006-dump-restore.sh b/test/t0006-dump-restore.sh
index f971181..21f9105 100755
--- a/test/t0006-dump-restore.sh
+++ b/test/t0006-dump-restore.sh
@@ -1,30 +1,22 @@
#!/bin/bash
test_description="\"notmuch dump\" and \"notmuch restore\""
. ./test-lib.sh
-test_expect_success 'Generate some message' '
-generate_message &&
-notmuch new
-'
-test_expect_success "Dumping all tags" '
-$NOTMUCH dump dump.expected &&
-pass_if_equal "$?" "0"
-'
-test_expect_success "Clearing all tags" '
+test_expect_success "Dumping all tags" "generate_message &&
+notmuch new &&
+$NOTMUCH dump dump.expected"
+
+test_begin_subtest "Clearing all tags"
sed -e "s/(\([^(]*\))$/()/" < dump.expected > clear.expected
-$NOTMUCH restore clear.expected &&
-$NOTMUCH dump clear.actual &&
-pass_if_equal "$(< clear.actual)" "$(< clear.expected)"
+$NOTMUCH restore clear.expected
+$NOTMUCH dump clear.actual
+test_expect_equal "$(< clear.actual)" "$(< clear.expected)"
+
+test_begin_subtest "Restoring original tags"
+$NOTMUCH restore dump.expected
+$NOTMUCH dump dump.actual
+test_expect_equal "$(< dump.actual)" "$(< dump.expected)"
-'
-test_expect_success "Restoring original tags" '
-$NOTMUCH restore dump.expected &&
-$NOTMUCH dump dump.actual &&
-pass_if_equal "$(< dump.actual)" "$(< dump.expected)"
+test_expect_success "Restore with nothing to do" "$NOTMUCH restore dump.expected"
-'
-test_expect_success "Restore with nothing to do" '
-$NOTMUCH restore dump.expected &&
-pass_if_equal "$?" "0"
-'
test_done
diff --git a/test/t0007-uuencode.sh b/test/t0007-uuencode.sh
index e290610..3592d5c 100755
--- a/test/t0007-uuencode.sh
+++ b/test/t0007-uuencode.sh
@@ -1,10 +1,9 @@
#!/bin/bash
test_description="handling of uuencoded data"
. ./test-lib.sh
-test_expect_success 'Generate message' '
-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
+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:
@@ -18,19 +17,18 @@ MSEARCH RESULT.
\\\`
end
-Finally, we have our afteruudata marker as well.\""
+Finally, we have our afteruudata marker as well."'
+
+test_begin_subtest "Ensure content before uu data is indexed"
+output=$($NOTMUCH search beforeuudata | notmuch_search_sanitize)
+test_expect_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; uuencodetest (inbox unread)"
+
+test_begin_subtest "Ensure uu data is not indexed"
+output=$($NOTMUCH search DURINGUUDATA | notmuch_search_sanitize)
+test_expect_equal "$output" ""
+
+test_begin_subtest "Ensure content after uu data is indexed"
+output=$($NOTMUCH search afteruudata | notmuch_search_sanitize)
+test_expect_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; uuencodetest (inbox unread)"
-'
-test_expect_success "Ensure content before uu data is indexed" '
-output=$($NOTMUCH search beforeuudata | notmuch_search_sanitize) &&
-pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; uuencodetest (inbox unread)"
-'
-test_expect_success "Ensure uu data is not indexed" '
-output=$($NOTMUCH search DURINGUUDATA | notmuch_search_sanitize) &&
-pass_if_equal "$output" ""
-'
-test_expect_success "Ensure content after uu data is indexed" '
-output=$($NOTMUCH search afteruudata | notmuch_search_sanitize) &&
-pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; uuencodetest (inbox unread)"
-'
test_done
diff --git a/test/t0008-threading-out-of-order.sh b/test/t0008-threading-out-of-order.sh
index 9f360b7..47f25c8 100755
--- a/test/t0008-threading-out-of-order.sh
+++ b/test/t0008-threading-out-of-order.sh
@@ -1,31 +1,32 @@
#!/bin/bash
test_description="threading when messages received out of order"
. ./test-lib.sh
-test_expect_success "Adding initial child message" '
-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."
-'
-test_expect_success "Searching returns the message" '
-output=$($NOTMUCH search foo | notmuch_search_sanitize) &&
-pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; brokenthreadtest (inbox unread)"
-'
-test_expect_success "Adding second child message" '
-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."
-'
-test_expect_success "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)"
-'
-test_expect_success "Adding parent message" '
-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."
-'
-test_expect_success "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)"
-'
+
+test_begin_subtest "Adding initial child message"
+generate_message [body]=foo "[in-reply-to]=\<parent-id\>" [subject]=brokenthreadtest '[date]="Sat, 01 Jan 2000 12:00:00 -0000"'
+output=$(NOTMUCH_NEW)
+test_expect_equal "$output" "Added 1 new message to the database."
+
+test_begin_subtest "Searching returns the message"
+output=$($NOTMUCH search foo | notmuch_search_sanitize)
+test_expect_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; brokenthreadtest (inbox unread)"
+
+test_begin_subtest "Adding second child message"
+generate_message [body]=foo "[in-reply-to]=\<parent-id\>" [subject]=brokenthreadtest '[date]="Sat, 01 Jan 2000 12:00:00 -0000"'
+output=$(NOTMUCH_NEW)
+test_expect_equal "$output" "Added 1 new message to the database."
+
+test_begin_subtest "Searching returns both messages in one thread"
+output=$($NOTMUCH search foo | notmuch_search_sanitize)
+test_expect_equal "$output" "thread:XXX 2000-01-01 [2/2] Notmuch Test Suite; brokenthreadtest (inbox unread)"
+
+test_begin_subtest "Adding parent message"
+generate_message [body]=foo [id]=parent-id [subject]=brokenthreadtest '[date]="Sat, 01 Jan 2000 12:00:00 -0000"'
+output=$(NOTMUCH_NEW)
+test_expect_equal "$output" "Added 1 new message to the database."
+
+test_begin_subtest "Searching returns all three messages in one thread"
+output=$($NOTMUCH search foo | notmuch_search_sanitize)
+test_expect_equal "$output" "thread:XXX 2000-01-01 [3/3] Notmuch Test Suite; brokenthreadtest (inbox unread)"
+
test_done
diff --git a/test/t0009-author-reordering.sh b/test/t0009-author-reordering.sh
index b993341..d618b85 100755
--- a/test/t0009-author-reordering.sh
+++ b/test/t0009-author-reordering.sh
@@ -1,35 +1,36 @@
#!/bin/bash
test_description="author reordering;"
. ./test-lib.sh
-test_expect_success "Adding parent message" '
-generate_message [body]=findme [id]=new-parent-id [subject]=author-reorder-threadtest "[from]=\"User <user@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."
-'
-test_expect_success "Adding initial child message" '
-generate_message [body]=findme "[in-reply-to]=\<new-parent-id\>" [subject]=author-reorder-threadtest "[from]=\"User1 <user1@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."
-'
-test_expect_success "Adding second child message" '
-generate_message [body]=findme "[in-reply-to]=\<new-parent-id\>" [subject]=author-reorder-threadtest "[from]=\"User2 <user2@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."
-'
-test_expect_success "Searching when all three messages match" '
-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)"
-'
-test_expect_success "Searching when two messages match" '
-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)"
-'
-test_expect_success "Searching when only one message matches" '
-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)"
-'
-test_expect_success "Searching when only first message matches" '
-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)"
-'
+
+test_begin_subtest "Adding parent message"
+generate_message [body]=findme [id]=new-parent-id [subject]=author-reorder-threadtest '[from]="User <user@example.com>"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"'
+output=$(NOTMUCH_NEW)
+test_expect_equal "$output" "Added 1 new message to the database."
+
+test_begin_subtest "Adding initial child message"
+generate_message [body]=findme "[in-reply-to]=\<new-parent-id\>" [subject]=author-reorder-threadtest '[from]="User1 <user1@example.com>"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"'
+output=$(NOTMUCH_NEW)
+test_expect_equal "$output" "Added 1 new message to the database."
+
+test_begin_subtest "Adding second child message"
+generate_message [body]=findme "[in-reply-to]=\<new-parent-id\>" [subject]=author-reorder-threadtest '[from]="User2 <user2@example.com>"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"'
+output=$(NOTMUCH_NEW)
+test_expect_equal "$output" "Added 1 new message to the database."
+
+test_begin_subtest "Searching when all three messages match"
+output=$($NOTMUCH search findme | notmuch_search_sanitize)
+test_expect_equal "$output" "thread:XXX 2000-01-01 [3/3] User, User1, User2; author-reorder-threadtest (inbox unread)"
+
+test_begin_subtest "Searching when two messages match"
+output=$($NOTMUCH search User1 or User2 | notmuch_search_sanitize)
+test_expect_equal "$output" "thread:XXX 2000-01-01 [2/3] User1, User2| User; author-reorder-threadtest (inbox unread)"
+
+test_begin_subtest "Searching when only one message matches"
+output=$($NOTMUCH search User2 | notmuch_search_sanitize)
+test_expect_equal "$output" "thread:XXX 2000-01-01 [1/3] User2| User, User1; author-reorder-threadtest (inbox unread)"
+
+test_begin_subtest "Searching when only first message matches"
+output=$($NOTMUCH search User | notmuch_search_sanitize)
+test_expect_equal "$output" "thread:XXX 2000-01-01 [1/3] User| User1, User2; author-reorder-threadtest (inbox unread)"
+
test_done
diff --git a/test/t0010-from-line-heuristics.sh b/test/t0010-from-line-heuristics.sh
index 89702b5..613917c 100755
--- a/test/t0010-from-line-heuristics.sh
+++ b/test/t0010-from-line-heuristics.sh
@@ -2,15 +2,15 @@
test_description="From line heuristics (with multiple configured addresses)"
. ./test-lib.sh
-test_expect_success "Magic from guessing (nothing to go on)" '
-add_message "[from]=\"Sender <sender@example.com>\"" \
+test_begin_subtest "Magic from guessing (nothing to go on)"
+add_message '[from]="Sender <sender@example.com>"' \
[to]=mailinglist@notmuchmail.org \
[subject]=notmuch-reply-test \
- "[date]=\"Tue, 05 Jan 2010 15:43:56 -0000\"" \
- "[body]=\"from guessing test\"" &&
+ '[date]="Tue, 05 Jan 2010 15:43:56 -0000"' \
+ '[body]="from guessing test"'
-output=$($NOTMUCH reply id:${gen_msg_id}) &&
-pass_if_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
+output=$($NOTMUCH reply id:${gen_msg_id})
+test_expect_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
Subject: Re: notmuch-reply-test
To: Sender <sender@example.com>, mailinglist@notmuchmail.org
Bcc: test_suite@notmuchmail.org
@@ -20,17 +20,16 @@ References: <${gen_msg_id}>
On Tue, 05 Jan 2010 15:43:56 -0000, Sender <sender@example.com> wrote:
> from guessing test"
-'
-test_expect_success "Magic from guessing (Envelope-to:)" '
-add_message "[from]=\"Sender <sender@example.com>\"" \
+test_begin_subtest "Magic from guessing (Envelope-to:)"
+add_message '[from]="Sender <sender@example.com>"' \
[to]=mailinglist@notmuchmail.org \
[subject]=notmuch-reply-test \
- "[header]=\"Envelope-To: test_suite_other@notmuchmail.org\"" \
- "[date]=\"Tue, 05 Jan 2010 15:43:56 -0000\"" \
- "[body]=\"from guessing test\"" &&
+ '[header]="Envelope-To: test_suite_other@notmuchmail.org"' \
+ '[date]="Tue, 05 Jan 2010 15:43:56 -0000"' \
+ '[body]="from guessing test"'
-output=$($NOTMUCH reply id:${gen_msg_id}) &&
-pass_if_equal "$output" "From: Notmuch Test Suite <test_suite_other@notmuchmail.org>
+output=$($NOTMUCH reply id:${gen_msg_id})
+test_expect_equal "$output" "From: Notmuch Test Suite <test_suite_other@notmuchmail.org>
Subject: Re: notmuch-reply-test
To: Sender <sender@example.com>, mailinglist@notmuchmail.org
Bcc: test_suite@notmuchmail.org
@@ -40,17 +39,16 @@ References: <${gen_msg_id}>
On Tue, 05 Jan 2010 15:43:56 -0000, Sender <sender@example.com> wrote:
> from guessing test"
-'
-test_expect_success "Magic from guessing (X-Original-To:)" '
-add_message "[from]=\"Sender <sender@example.com>\"" \
+test_begin_subtest "Magic from guessing (X-Original-To:)"
+add_message '[from]="Sender <sender@example.com>"' \
[to]=mailinglist@notmuchmail.org \
[subject]=notmuch-reply-test \
- "[header]=\"X-Original-To: test_suite_other@notmuchmail.org\"" \
- "[date]=\"Tue, 05 Jan 2010 15:43:56 -0000\"" \
- "[body]=\"from guessing test\"" &&
+ '[header]="X-Original-To: test_suite_other@notmuchmail.org"' \
+ '[date]="Tue, 05 Jan 2010 15:43:56 -0000"' \
+ '[body]="from guessing test"'
-output=$($NOTMUCH reply id:${gen_msg_id}) &&
-pass_if_equal "$output" "From: Notmuch Test Suite <test_suite_other@notmuchmail.org>
+output=$($NOTMUCH reply id:${gen_msg_id})
+test_expect_equal "$output" "From: Notmuch Test Suite <test_suite_other@notmuchmail.org>
Subject: Re: notmuch-reply-test
To: Sender <sender@example.com>, mailinglist@notmuchmail.org
Bcc: test_suite@notmuchmail.org
@@ -60,19 +58,18 @@ References: <${gen_msg_id}>
On Tue, 05 Jan 2010 15:43:56 -0000, Sender <sender@example.com> wrote:
> from guessing test"
-'
-test_expect_success "Magic from guessing (Received: .. for ..)" '
-add_message "[from]=\"Sender <sender@example.com>\"" \
+test_begin_subtest "Magic from guessing (Received: .. for ..)"
+add_message '[from]="Sender <sender@example.com>"' \
[to]=mailinglist@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@notmuchmail.org>; Sat, 10 Apr 2010 07:54:51 -0400 (EDT)\"" \
- "[date]=\"Tue, 05 Jan 2010 15:43:56 -0000\"" \
- "[body]=\"from guessing test\"" &&
+ '[date]="Tue, 05 Jan 2010 15:43:56 -0000"' \
+ '[body]="from guessing test"'
-output=$($NOTMUCH reply id:${gen_msg_id}) &&
-pass_if_equal "$output" "From: Notmuch Test Suite <test_suite_other@notmuchmail.org>
+output=$($NOTMUCH reply id:${gen_msg_id})
+test_expect_equal "$output" "From: Notmuch Test Suite <test_suite_other@notmuchmail.org>
Subject: Re: notmuch-reply-test
To: Sender <sender@example.com>, mailinglist@notmuchmail.org
Bcc: test_suite@notmuchmail.org
@@ -82,19 +79,18 @@ References: <${gen_msg_id}>
On Tue, 05 Jan 2010 15:43:56 -0000, Sender <sender@example.com> wrote:
> from guessing test"
-'
-test_expect_success "Magic from guessing (Received: domain)" '
-add_message "[from]=\"Sender <sender@example.com>\"" \
+test_begin_subtest "Magic from guessing (Received: domain)"
+add_message '[from]="Sender <sender@example.com>"' \
[to]=mailinglist@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 -0000\"" \
- "[body]=\"from guessing test\"" &&
+ '[date]="Tue, 05 Jan 2010 15:43:56 -0000"' \
+ '[body]="from guessing test"'
-output=$($NOTMUCH reply id:${gen_msg_id}) &&
-pass_if_equal "$output" "From: Notmuch Test Suite <test_suite@otherdomain.org>
+output=$($NOTMUCH reply id:${gen_msg_id})
+test_expect_equal "$output" "From: Notmuch Test Suite <test_suite@otherdomain.org>
Subject: Re: notmuch-reply-test
To: Sender <sender@example.com>, mailinglist@notmuchmail.org
Bcc: test_suite@notmuchmail.org
@@ -105,20 +101,18 @@ On Tue, 05 Jan 2010 15:43:56 -0000, Sender <sender@example.com> wrote:
> from guessing test"
-'
-test_expect_success "Testing From line heuristics (with single configured address)" '
+test_begin_subtest "Testing From line heuristics (with single configured address)"
sed -i -e "s/^other_email.*//" "${NOTMUCH_CONFIG}"
-'
-test_expect_success "Magic from guessing (nothing to go on)" '
-add_message "[from]=\"Sender <sender@example.com>\"" \
+test_begin_subtest "Magic from guessing (nothing to go on)"
+add_message '[from]="Sender <sender@example.com>"' \
[to]=mailinglist@notmuchmail.org \
[subject]=notmuch-reply-test \
- "[date]=\"Tue, 05 Jan 2010 15:43:56 -0000\"" \
- "[body]=\"from guessing test\"" &&
+ '[date]="Tue, 05 Jan 2010 15:43:56 -0000"' \
+ '[body]="from guessing test"'
-output=$($NOTMUCH reply id:${gen_msg_id}) &&
-pass_if_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
+output=$($NOTMUCH reply id:${gen_msg_id})
+test_expect_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
Subject: Re: notmuch-reply-test
To: Sender <sender@example.com>, mailinglist@notmuchmail.org
Bcc: test_suite@notmuchmail.org
@@ -128,17 +122,16 @@ References: <${gen_msg_id}>
On Tue, 05 Jan 2010 15:43:56 -0000, Sender <sender@example.com> wrote:
> from guessing test"
-'
-test_expect_success "Magic from guessing (Envelope-to:)" '
-add_message "[from]=\"Sender <sender@example.com>\"" \
+test_begin_subtest "Magic from guessing (Envelope-to:)"
+add_message '[from]="Sender <sender@example.com>"' \
[to]=mailinglist@notmuchmail.org \
[subject]=notmuch-reply-test \
- "[header]=\"Envelope-To: test_suite_other@notmuchmail.org\"" \
- "[date]=\"Tue, 05 Jan 2010 15:43:56 -0000\"" \
- "[body]=\"from guessing test\"" &&
+ '[header]="Envelope-To: test_suite_other@notmuchmail.org"' \
+ '[date]="Tue, 05 Jan 2010 15:43:56 -0000"' \
+ '[body]="from guessing test"'
-output=$($NOTMUCH reply id:${gen_msg_id}) &&
-pass_if_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
+output=$($NOTMUCH reply id:${gen_msg_id})
+test_expect_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
Subject: Re: notmuch-reply-test
To: Sender <sender@example.com>, mailinglist@notmuchmail.org
Bcc: test_suite@notmuchmail.org
@@ -148,17 +141,16 @@ References: <${gen_msg_id}>
On Tue, 05 Jan 2010 15:43:56 -0000, Sender <sender@example.com> wrote:
> from guessing test"
-'
-test_expect_success "Magic from guessing (X-Original-To:)" '
-add_message "[from]=\"Sender <sender@example.com>\"" \
+test_begin_subtest "Magic from guessing (X-Original-To:)"
+add_message '[from]="Sender <sender@example.com>"' \
[to]=mailinglist@notmuchmail.org \
[subject]=notmuch-reply-test \
- "[header]=\"X-Original-To: test_suite_other@notmuchmail.org\"" \
- "[date]=\"Tue, 05 Jan 2010 15:43:56 -0000\"" \
- "[body]=\"from guessing test\"" &&
+ '[header]="X-Original-To: test_suite_other@notmuchmail.org"' \
+ '[date]="Tue, 05 Jan 2010 15:43:56 -0000"' \
+ '[body]="from guessing test"'
-output=$($NOTMUCH reply id:${gen_msg_id}) &&
-pass_if_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
+output=$($NOTMUCH reply id:${gen_msg_id})
+test_expect_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
Subject: Re: notmuch-reply-test
To: Sender <sender@example.com>, mailinglist@notmuchmail.org
Bcc: test_suite@notmuchmail.org
@@ -168,19 +160,18 @@ References: <${gen_msg_id}>
On Tue, 05 Jan 2010 15:43:56 -0000, Sender <sender@example.com> wrote:
> from guessing test"
-'
-test_expect_success "Magic from guessing (Received: .. for ..)" '
-add_message "[from]=\"Sender <sender@example.com>\"" \
+test_begin_subtest "Magic from guessing (Received: .. for ..)"
+add_message '[from]="Sender <sender@example.com>"' \
[to]=mailinglist@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@notmuchmail.org>; Sat, 10 Apr 2010 07:54:51 -0400 (EDT)\"" \
- "[date]=\"Tue, 05 Jan 2010 15:43:56 -0000\"" \
- "[body]=\"from guessing test\"" &&
+ '[date]="Tue, 05 Jan 2010 15:43:56 -0000"' \
+ '[body]="from guessing test"'
-output=$($NOTMUCH reply id:${gen_msg_id}) &&
-pass_if_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
+output=$($NOTMUCH reply id:${gen_msg_id})
+test_expect_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
Subject: Re: notmuch-reply-test
To: Sender <sender@example.com>, mailinglist@notmuchmail.org
Bcc: test_suite@notmuchmail.org
@@ -190,19 +181,18 @@ References: <${gen_msg_id}>
On Tue, 05 Jan 2010 15:43:56 -0000, Sender <sender@example.com> wrote:
> from guessing test"
-'
-test_expect_success "Magic from guessing (Received: domain)" '
-add_message "[from]=\"Sender <sender@example.com>\"" \
+test_begin_subtest "Magic from guessing (Received: domain)"
+add_message '[from]="Sender <sender@example.com>"' \
[to]=mailinglist@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 -0000\"" \
- "[body]=\"from guessing test\"" &&
+ '[date]="Tue, 05 Jan 2010 15:43:56 -0000"' \
+ '[body]="from guessing test"'
-output=$($NOTMUCH reply id:${gen_msg_id}) &&
-pass_if_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
+output=$($NOTMUCH reply id:${gen_msg_id})
+test_expect_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
Subject: Re: notmuch-reply-test
To: Sender <sender@example.com>, mailinglist@notmuchmail.org
Bcc: test_suite@notmuchmail.org
@@ -211,5 +201,5 @@ References: <${gen_msg_id}>
On Tue, 05 Jan 2010 15:43:56 -0000, Sender <sender@example.com> wrote:
> from guessing test"
-'
+
test_done
diff --git a/test/t0011-long-msgid.sh b/test/t0011-long-msgid.sh
index c1cbd9f..1f55d71 100755
--- a/test/t0011-long-msgid.sh
+++ b/test/t0011-long-msgid.sh
@@ -2,28 +2,26 @@
test_description="Testing messages with ridiculously-long message IDs"
. ./test-lib.sh
-test_expect_success "Referencing long ID before adding" '
-generate_message "[subject]=\"Reference of ridiculously-long message ID\"" \
- "[references]=\<abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-\>" &&
-output=$(NOTMUCH_NEW) &&
-pass_if_equal "$output" "Added 1 new message to the database."
-'
-test_expect_success "Adding message with long ID" '
-generate_message "[subject]=\"A ridiculously-long message ID\"" \
- "[id]=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-" &&
-output=$(NOTMUCH_NEW) &&
-pass_if_equal "$output" "Added 1 new message to the database."
+test_begin_subtest "Referencing long ID before adding"
+generate_message '[subject]="Reference of ridiculously-long message ID"' \
+ "[references]=\<abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-\>"
+output=$(NOTMUCH_NEW)
+test_expect_equal "$output" "Added 1 new message to the database."
-'
-test_expect_success "Referencing long ID after adding" '
-generate_message "[subject]=\"Reply to ridiculously-long message ID\"" \
- "[in-reply-to]=\<abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-\>" &&
-output=$(NOTMUCH_NEW) &&
-pass_if_equal "$output" "Added 1 new message to the database."
+test_begin_subtest "Adding message with long ID"
+generate_message '[subject]="A ridiculously-long message ID"' \
+ "[id]=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-"
+output=$(NOTMUCH_NEW)
+test_expect_equal "$output" "Added 1 new message to the database."
+
+test_begin_subtest "Referencing long ID after adding"
+generate_message '[subject]="Reply to ridiculously-long message ID"' \
+ "[in-reply-to]=\<abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-\>"
+output=$(NOTMUCH_NEW)
+test_expect_equal "$output" "Added 1 new message to the database."
+
+test_begin_subtest "Ensure all messages were threaded together"
+output=$($NOTMUCH search 'subject:"a ridiculously-long message ID"' | notmuch_search_sanitize)
+test_expect_equal "$output" "thread:XXX 2001-01-05 [1/3] Notmuch Test Suite; A ridiculously-long message ID (inbox unread)"
-'
-test_expect_success "Ensure all messages were threaded together" '
-output=$($NOTMUCH search "subject:\"a ridiculously-long message ID\"" | notmuch_search_sanitize) &&
-pass_if_equal "$output" "thread:XXX 2001-01-05 [1/3] Notmuch Test Suite; A ridiculously-long message ID (inbox unread)"
-'
test_done
diff --git a/test/t0012-encoding-issues.sh b/test/t0012-encoding-issues.sh
index 6a6ceda..73ca62a 100755
--- a/test/t0012-encoding-issues.sh
+++ b/test/t0012-encoding-issues.sh
@@ -2,11 +2,11 @@
test_description="Testing encoding issues"
. ./test-lib.sh
-test_expect_success "Message with text of unknown charset" '
-add_message "[content-type]=\"text/plain; charset=unknown-8bit\"" \
- "[body]=irrelevant" &&
-output=$($NOTMUCH show id:${gen_msg_id} 2>&1 | notmuch_show_sanitize) &&
-pass_if_equal "$output" " message{ id:msg-001@notmuch-test-suite depth:0 match:1 filename:/XXX/mail/msg-001
+test_begin_subtest "Message with text of unknown charset"
+add_message '[content-type]="text/plain; charset=unknown-8bit"' \
+ "[body]=irrelevant"
+output=$($NOTMUCH show id:${gen_msg_id} 2>&1 | notmuch_show_sanitize)
+test_expect_equal "$output" " message{ id:msg-001@notmuch-test-suite depth:0 match:1 filename:/XXX/mail/msg-001
header{
Notmuch Test Suite <test_suite@notmuchmail.org> (2001-01-05) (inbox unread)
Subject: Test message #1
@@ -20,6 +20,5 @@ irrelevant
part}
body}
message}"
-'
test_done
diff --git a/test/test-lib.sh b/test/test-lib.sh
index 35ff3d9..1523870 100644
--- a/test/test-lib.sh
+++ b/test/test-lib.sh
@@ -373,19 +373,37 @@ add_message ()
notmuch new > /dev/null
}
-pass_if_equal ()
+test_begin_subtest ()
{
- output=$1
- expected=$2
+ test_subtest_name="$1"
+}
- if [ "$output" = "$expected" ]; then
- true
- else
- testname=$this_test.$test_count
- echo "$expected" > $testname.expected
- echo "$output" > $testname.output
- diff -u $testname.expected $testname.output
- false
+# Pass test if two arguments match
+#
+# Note: Unlike all other test_expect_* functions, this function does
+# not accept a test name. Instead, the caller should call
+# test_begin_subtest before calling this function in order to set the
+# name.
+test_expect_equal ()
+{
+ test "$#" = 3 && { prereq=$1; shift; } || prereq=
+ test "$#" = 2 ||
+ error "bug in the test script: not 2 or 3 parameters to test_expect_equal"
+
+ output="$1"
+ expected="$2"
+ if ! test_skip "$@"
+ then
+ say >&3 "expecting success: diff $output $expected"
+ if [ "$output" = "$expected" ]; then
+ test_ok_ "$test_subtest_name"
+ else
+ testname=$this_test.$test_count
+ echo "$expected" > $testname.expected
+ echo "$output" > $testname.output
+ test_failure_ "$test_subtest_name" "$(diff -u $testname.expected $testname.output)"
+ fi
+ echo >&3 ""
fi
}