diff options
author | James Westby <jw+debian@jameswestby.net> | 2010-03-13 16:27:57 -0500 |
---|---|---|
committer | Carl Worth <cworth@cworth.org> | 2010-04-12 14:04:35 -0700 |
commit | 4a9b41f1da63039a17a62a49dd1649bcf1ca5a99 (patch) | |
tree | b54ac294afe1dabf53112225abd617234aeae81d /test | |
parent | e1bc5fc9c7766fb53f687dbca2db3dd9d0df0e9f (diff) |
test: Add new tests for out-of-order messages.
These new tests demonstrate a bug as follows:
Multiple messages are added to the database
All of these message references a common parent
The parent message does not exist in the databas
In this scenario, the messages will not be recognized as belonging to
the same thread. We consider this a bug, and the new tests treat this
as a failure.
Edited by Carl Worth <cworth@cworth.org>: Split these tests into their
own commit (before the fix of the bug). This lets me see the actual
failure in the test suite, before the fix is applied. Also fix the
alignment of new messages from test suite, (so that the PASS portions
all line up---which is important while we're still manually verifying
test-suite results).
Diffstat (limited to 'test')
-rwxr-xr-x | test/notmuch-test | 32 |
1 files changed, 29 insertions, 3 deletions
diff --git a/test/notmuch-test b/test/notmuch-test index 1c5191b..6d14e71 100755 --- a/test/notmuch-test +++ b/test/notmuch-test @@ -64,6 +64,10 @@ increment_mtime () # Additional values for email headers. If these are not provided # then the relevant headers will simply not appear in the # message. +# +# '[id]=<message-id>' +# +# Controls the message-id of the created message. gen_msg_cnt=0 gen_msg_filename="" gen_msg_id="" @@ -73,9 +77,14 @@ generate_message () local -A template="($@)" local additional_headers - gen_msg_cnt=$((gen_msg_cnt + 1)) - gen_msg_name=msg-$(printf "%03d" $gen_msg_cnt) - gen_msg_id="${gen_msg_name}@notmuch-test-suite" + if [ -z "${template[id]}" ]; then + gen_msg_cnt=$((gen_msg_cnt + 1)) + gen_msg_name=msg-$(printf "%03d" $gen_msg_cnt) + gen_msg_id="${gen_msg_name}@notmuch-test-suite" + else + gen_msg_name="msg-${template[id]}" + gen_msg_id="${template[id]}" + fi if [ -z "${template[dir]}" ]; then gen_msg_filename="${MAIL_DIR}/$gen_msg_name" @@ -536,6 +545,23 @@ printf " Restore with nothing to do...\t" $NOTMUCH restore dump.expected echo " PASS" +printf "\nTesting threading when messages received out of order:\n" +printf " Adding initial child message...\t\t" +generate_message [body]=foo '[in-reply-to]=\<parent-id\>' [subject]=brokenthreadtest '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' +execute_expecting new "Added 1 new message to the database." +printf " Searching returns the message...\t\t" +execute_expecting "search foo" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; brokenthreadtest (inbox unread)" +printf " Adding second child message...\t\t\t" +generate_message [body]=foo '[in-reply-to]=\<parent-id\>' [subject]=brokenthreadtest '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' +execute_expecting new "Added 1 new message to the database." +printf " Searching returns both messages in one thread..." +execute_expecting "search foo" "thread:XXX 2000-01-01 [2/2] Notmuch Test Suite; brokenthreadtest (inbox unread)" +printf " Adding parent message...\t\t\t" +generate_message [body]=foo [id]=parent-id [subject]=brokenthreadtest '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' +execute_expecting new "Added 1 new message to the database." +printf " Searching returns all three messages in one thread..." +execute_expecting "search foo" "thread:XXX 2000-01-01 [3/3] Notmuch Test Suite; brokenthreadtest (inbox unread)" + cat <<EOF Notmuch test suite complete. |