]> git.notmuchmail.org Git - notmuch/commitdiff
test: Rework test-suite input to avoid ulti-command strings
authorCarl Worth <cworth@cworth.org>
Fri, 17 Sep 2010 22:25:39 +0000 (15:25 -0700)
committerCarl Worth <cworth@cworth.org>
Fri, 17 Sep 2010 22:25:39 +0000 (15:25 -0700)
The original git test suite works by concatenating many commands into
a very long string (each separated by &&). This is painful to work
with since it prevents the editor from helping by parsing the shell
script, indenting, colorizing, etc.

Instead, we switch this back to something like the original notmuch
test suite, and add two new functions to test-lib.sh
(test_begin_subtest and test_expect_equal) to support these.

This also fixes the test suite to once again display the diff when a
test fails to generate the expected input.

13 files changed:
test/t0001-new.sh
test/t0002-search.sh
test/t0003-json.sh
test/t0004-thread-naming.sh
test/t0005-reply.sh
test/t0006-dump-restore.sh
test/t0007-uuencode.sh
test/t0008-threading-out-of-order.sh
test/t0009-author-reordering.sh
test/t0010-from-line-heuristics.sh
test/t0011-long-msgid.sh
test/t0012-encoding-issues.sh
test/test-lib.sh

index 97726e7299c719e11451f3944c927ca3b05a833e..4c6952fd6d31c6834bd7431ecf4561df5fe05e78 100755 (executable)
 #!/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
index 7de4d47ba82d1dd2db4609644d90cceffcc450cd..865f5bb6b996d21b3d0aaaeb2b196a1ea8b1d2b2 100755 (executable)
@@ -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
index 810262c41e55a5fe5f062c7b548927ec9bf69fbb..2497613188469de16db82853a7e53c365d5a3962 100755 (executable)
@@ -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
index c77f7264c3cb0fce1ce6e8fdff5b739a8c4d352c..31c0153255ca95bad21f09ef0b3c77c6790376b8 100755 (executable)
@@ -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" "\fmessage{ 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" "\fmessage{ id:msg-$(printf "%03d" $first)@notmuch-test-suite depth:0 match:1 filename:/XXX/mail/msg-$(printf "%03d" $first)
 \fheader{
 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)))
 \fpart}
 \fbody}
 \fmessage}"
-'
 test_done
index 97e1006bcf47d1cb31f0920e300b622071600c37..d6b7431740a503f9b8167a68ef522d0d9a5fc42d 100755 (executable)
@@ -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
index f971181e649c6b1ee24d2ee2874e0987e10bbd2c..21f91055386f280e0c58545de5c04bb4c9f9c4bd 100755 (executable)
@@ -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
index e2906102bfb85bcdd4c1fe51dd2f688f8ce235d1..3592d5cc13f895e34ac3c923c616ba0d62a583c1 100755 (executable)
@@ -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
index 9f360b7ec046a22ddd9c0f3f4b724264ad1630ab..47f25c86df326845a9be04d8cd218901a92dc92c 100755 (executable)
@@ -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
index b9933418abb23608ee2efa1306cb877c4d15f076..d618b8586b196169d3fe0a928fd420c290b2e8b6 100755 (executable)
@@ -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
index 89702b53c59792dd51c7c2f6835ce6ab7ef58eb0..613917c945a58f48f7b7681447ee2652fc654253 100755 (executable)
@@ -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
index c1cbd9f2ac2d0f9ff8234f5d53fcec9fe0ba9127..1f55d716cacf514fcfe3cd71c693eb9aa20d1d44 100755 (executable)
@@ -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
index 6a6ceda7c2e207782aebf14d09d2c45da2866b45..73ca62adb9142803bef8b573a7c40ee2fc077e1c 100755 (executable)
@@ -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" "\fmessage{ 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" "\fmessage{ id:msg-001@notmuch-test-suite depth:0 match:1 filename:/XXX/mail/msg-001
 \fheader{
 Notmuch Test Suite <test_suite@notmuchmail.org> (2001-01-05) (inbox unread)
 Subject: Test message #1
@@ -20,6 +20,5 @@ irrelevant
 \fpart}
 \fbody}
 \fmessage}"
-'
 
 test_done
index 35ff3d98af20e86d6c3294cd562164f412c9bf00..152387051061f19a7e6670d70cfc0f2c01ea4256 100644 (file)
@@ -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
 }