Re: [BUG] Saving attachments containing UTF-8 chars

Subject: Re: [BUG] Saving attachments containing UTF-8 chars

Date: Fri, 30 Nov 2012 12:14:57 +0100

To: Mark Walters, David Bremner, notmuch@notmuchmail.org

Cc:

From: Michael Stapelberg


Hi Mark,

Mark Walters <markwalters1009@gmail.com> writes:
> I don't think that we expect any tests to fail: they all pass for
> me. Can you say more about what is failing?
Sure. I attached the full output of "make test". Let me know if you need
any more information about my system. My `emacs` is emacs24 24.1+1-4
from Debian.

-- 
Best regards,
Michael
INFO: using 2 minute timeout for tests
basic: Testing the test framework itself.
 PASS   success is reported like this
 PASS   test runs if prerequisite is satisfied
 PASS   tests clean up after themselves
 PASS   tests clean up even after a failure
 PASS   failure to clean up causes the test to fail
 PASS   Ensure that all available tests will be run by notmuch-test
 PASS   Ensure that test output is suppressed unless the test fails
 PASS   Ensure that -v does not suppress test output
 PASS   test that mail store was created
 PASS   mail store should be empty
 PASS   NOTMUCH_CONFIG is set and points to an existing file
 PASS   PATH is set to this repository

help-test: Testing online help
 PASS   notmuch --help
 PASS   notmuch --help tag
 PASS   notmuch help
 PASS   notmuch help tag
 PASS   notmuch --version

config: Testing "notmuch config"
 PASS   Get string value
 PASS   Get list value
 PASS   Set string value
 PASS   Set string value again
 PASS   Set list value
 PASS   Set list value again
 PASS   Remove key
 PASS   Remove non-existent key
 PASS   List all items

new: Testing "notmuch new" in several variations
 PASS   No new messages
 PASS   Single new message
 PASS   Multiple new messages
 PASS   No new messages (non-empty DB)
 PASS   New directories
 PASS   Alternate inode order
 PASS   Message moved in
 PASS   Renamed message
 PASS   Deleted message
 PASS   Renamed directory
 PASS   Deleted directory
 PASS   New directory (at end of list)
 PASS   Deleted directory (end of list)
 PASS   New symlink to directory
 PASS   New symlink to a file
 PASS   Broken symlink aborts
 PASS   New two-level directory
 PASS   Deleted two-level directory
 PASS   Support single-message mbox (deprecated)
 PASS   Skip and report non-mail files
 PASS   Ignore files and directories specified in new.ignore
 PASS   Ignore files and directories specified in new.ignore (multiple occurrences)
 PASS   Don't stop for ignored broken symlinks

count: Testing "notmuch count" for messages and threads
 PASS   message count is the default for notmuch count
 PASS   message count with --output=messages
 PASS   thread count with --output=threads
 PASS   thread count is the default for notmuch search
 PASS   count with no matching messages
 PASS   count with no matching threads

search: Testing "notmuch search" in several variations
 PASS   Search body
 PASS   Search by from:
 PASS   Search by to:
 PASS   Search by subject:
 PASS   Search by subject (utf-8):
 PASS   Search by id:
 PASS   Search by tag:
 PASS   Search by thread:
 PASS   Search body (phrase)
 PASS   Search by from: (address)
 PASS   Search by from: (name)
 PASS   Search by to: (address)
 PASS   Search by to: (name)
 PASS   Search by subject: (phrase)
 PASS   Search for all messages ("*")
 PASS   Search body (utf-8):

search-output: Testing various settings for "notmuch search --output="
 PASS   --output=threads
 PASS   --output=threads --format=json
 PASS   --output=messages
 PASS   --output=messages --format=json
 PASS   --output=files
 PASS   --output=files --format=json
 PASS   --output=tags
 PASS   --output=tags --format=json
 PASS   sanitize output for quoted-printable line-breaks in author and subject
 PASS   search for non-existent message prints nothing
 PASS   search --format=json for non-existent message prints proper empty json

search-by-folder: Testing "notmuch search" by folder: (with variations)
 PASS   Single-world folder: specification (multiple results)
 PASS   Two-word path to narrow results to one
 PASS   After removing duplicate instance of matching path
 PASS   After rename, old path returns nothing
 PASS   After rename, new path returns result

search-position-overlap-bug: Testing that notmuch does not overlap term positions
 PASS   Search for a@b.c matches
 PASS   Search for x@y.z matches
 PASS   Search for a@y.c must not match

search-insufficient-from-quoting: Testing messages with unquoted . in name
 PASS   Search by first name
 PASS   Search by last name:
 PASS   Search by address:
 PASS   Search for all messages:

search-limiting: Testing "notmuch search" --offset and --limit parameters
 PASS   messages: limit does the right thing
 PASS   messages: concatenation of limited searches
 PASS   messages: limit larger than result set
 PASS   messages: limit = 0
 PASS   messages: offset does the right thing
 PASS   messages: offset = 0
 PASS   messages: negative offset
 PASS   messages: negative offset
 PASS   messages: negative offset combined with limit
 PASS   messages: negative offset combined with equal limit
 PASS   messages: negative offset combined with large limit
 PASS   messages: negative offset larger then results
 PASS   threads: limit does the right thing
 PASS   threads: concatenation of limited searches
 PASS   threads: limit larger than result set
 PASS   threads: limit = 0
 PASS   threads: offset does the right thing
 PASS   threads: offset = 0
 PASS   threads: negative offset
 PASS   threads: negative offset
 PASS   threads: negative offset combined with limit
 PASS   threads: negative offset combined with equal limit
 PASS   threads: negative offset combined with large limit
 PASS   threads: negative offset larger then results

excludes: Testing "notmuch search, count and show" with excludes in several variations
 PASS   Search, exclude "deleted" messages from search
 PASS   Search, exclude "deleted" messages from message search
 PASS   Search, exclude "deleted" messages from message search --exclude=false
 PASS   Search, exclude "deleted" messages from message search (non-existent exclude-tag)
 PASS   Search, exclude "deleted" messages from search, overridden
 PASS   Search, exclude "deleted" messages from threads
 PASS   Search, don't exclude "deleted" messages when --exclude=flag specified
 PASS   Search, don't exclude "deleted" messages from search if not configured
 PASS   Search, default exclusion (thread summary)
 PASS   Search, default exclusion (messages)
 PASS   Search, exclude=true (thread summary)
 PASS   Search, exclude=true (messages)
 PASS   Search, exclude=false (thread summary)
 PASS   Search, exclude=false (messages)
 PASS   Search, exclude=flag (thread summary)
 PASS   Search, exclude=flag (messages)
 PASS   Search, default exclusion: tag in query (thread summary)
 PASS   Search, default exclusion: tag in query (messages)
 PASS   Search, exclude=true: tag in query (thread summary)
 PASS   Search, exclude=true: tag in query (messages)
 PASS   Search, exclude=false: tag in query (thread summary)
 PASS   Search, exclude=false: tag in query (messages)
 PASS   Search, exclude=flag: tag in query (thread summary)
 PASS   Search, exclude=flag: tag in query (messages)
 PASS   Count, default exclusion (messages)
 PASS   Count, default exclusion (threads)
 PASS   Count, exclude=true (messages)
 PASS   Count, exclude=true (threads)
 PASS   Count, exclude=false (messages)
 PASS   Count, exclude=false (threads)
 PASS   Count, default exclusion: tag in query (messages)
 PASS   Count, default exclusion: tag in query (threads)
 PASS   Count, exclude=true: tag in query (messages)
 PASS   Count, exclude=true: tag in query (threads)
 PASS   Count, exclude=false: tag in query (messages)
 PASS   Count, exclude=false: tag in query (threads)
 PASS   Show, default exclusion
 PASS   Show, default exclusion (entire-thread)
 PASS   Show, exclude=true
 PASS   Show, exclude=true (entire-thread)
 PASS   Show, exclude=false
 PASS   Show, exclude=false (entire-thread)

tagging: Testing "notmuch tag"
 PASS   Adding tags
 PASS   Removing tags
 PASS   No tag operations
 PASS   No query
 PASS   Redundant tagging
 PASS   Special characters in tags
 PASS   Tagging order
 PASS   Empty tag names
 PASS   Tag name beginning with -

json: Testing --format=json output
 PASS   Show message: json
 PASS   Show message: json --body=true
 PASS   Show message: json --body=false
 PASS   Search message: json
 PASS   Show message: json, utf-8
 PASS   Show message: json, inline attachment filename
 PASS   Search message: json, utf-8

text: Testing --format=text output
 PASS   Show message: text
 PASS   Search message: text
 PASS   Show message: text, utf-8
 PASS   Search message: text, utf-8

multipart: Testing output of multipart message
 PASS   --format=text --part=0, full message
 PASS   --format=text --part=1, message body
 PASS   --format=text --part=2, multipart/mixed
 PASS   --format=text --part=3, rfc822 part
 PASS   --format=text --part=4, rfc822's multipart
 PASS   --format=text --part=5, rfc822's html part
 PASS   --format=text --part=6, rfc822's text part
 PASS   --format=text --part=7, inline attachement
 PASS   --format=text --part=8, plain text part
 PASS   --format=text --part=9, pgp signature (unverified)
 PASS   --format=text --part=8, no part, expect error
 PASS   --format=json --part=0, full message
 PASS   --format=json --part=1, message body
 PASS   --format=json --part=2, multipart/mixed
 PASS   --format=json --part=3, rfc822 part
 PASS   --format=json --part=4, rfc822's multipart/alternative
 PASS   --format=json --part=5, rfc822's html part
 PASS   --format=json --part=6, rfc822's text part
 PASS   --format=json --part=7, inline attachment
 PASS   --format=json --part=8, plain text part
 PASS   --format=json --part=9, pgp signature (unverified)
 PASS   --format=json --part=10, no part, expect error
 PASS   --format=raw
 PASS   --format=raw --part=0, full message
 PASS   --format=raw --part=1, message body
 PASS   --format=raw --part=2, multipart/mixed
 PASS   --format=raw --part=3, rfc822 part
 PASS   --format=raw --part=4, rfc822's multipart
 PASS   --format=raw --part=5, rfc822's html part
 PASS   --format=raw --part=6, rfc822's text part
 PASS   --format=raw --part=7, inline attachment
 PASS   --format=raw --part=8, plain text part
 PASS   --format=raw --part=9, pgp signature (unverified)
 PASS   --format=raw --part=10, no part, expect error
 PASS   --format=mbox
 PASS   --format=mbox --part=1, incompatible, expect error
 FAIL   'notmuch reply' to a multipart message
	--- multipart.37.OUTPUT	2012-11-30 11:12:08.871828702 +0000
	+++ multipart.37.EXPECTED	2012-11-30 11:12:08.871828702 +0000
	@@ -1,5 +1,3 @@
	-address_match(cworth@cworth.org)
	-address_match(cworth@cworth.org)
	 From: Notmuch Test Suite <test_suite@notmuchmail.org>
	 Subject: Re: Multipart message
	 To: Carl Worth <cworth@cworth.org>, cworth@cworth.org
 FAIL   'notmuch reply' to a multipart message with json format
	--- multipart.38.expected	2012-11-30 11:12:08.919827944 +0000
	+++ multipart.38.output	2012-11-30 11:12:08.919827944 +0000
	@@ -1,89 +1,3 @@
	-{
	-    "original": {
	-        "body": [
	-            {
	-                "content": [
	-                    {
	-                        "content": [
	-                            {
	-                                "content": [
	-                                    {
	-                                        "body": [
	-                                            {
	-                                                "content": [
	-                                                    {
	-                                                        "content-type": "text/html", 
	-                                                        "id": 5
	-                                                    }, 
	-                                                    {
	-                                                        "content": "This is an embedded message, with a multipart/alternative part.\n", 
	-                                                        "content-type": "text/plain", 
	-                                                        "id": 6
	-                                                    }
	-                                                ], 
	-                                                "content-type": "multipart/alternative", 
	-                                                "id": 4
	-                                            }
	-                                        ], 
	-                                        "headers": {
	-                                            "Date": "Fri, 05 Jan 2001 15:42:57 +0000", 
	-                                            "From": "Carl Worth <cworth@cworth.org>", 
	-                                            "Subject": "html message", 
	-                                            "To": "cworth@cworth.org"
	-                                        }
	-                                    }
	-                                ], 
	-                                "content-type": "message/rfc822", 
	-                                "id": 3
	-                            }, 
	-                            {
	-                                "content": "This is a text attachment.\n", 
	-                                "content-type": "text/plain", 
	-                                "filename": "YYYYY", 
	-                                "id": 7
	-                            }, 
	-                            {
	-                                "content": "And this message is signed.\n\n-Carl\n", 
	-                                "content-type": "text/plain", 
	-                                "id": 8
	-                            }
	-                        ], 
	-                        "content-type": "multipart/mixed", 
	-                        "id": 2
	-                    }, 
	-                    {
	-                        "content-type": "application/pgp-signature", 
	-                        "id": 9
	-                    }
	-                ], 
	-                "content-type": "multipart/signed", 
	-                "id": 1
	-            }
	-        ], 
	-        "date_relative": "2001-01-05", 
	-        "excluded": false, 
	-        "filename": "YYYYY", 
	-        "headers": {
	-            "Date": "Fri, 05 Jan 2001 15:43:57 +0000", 
	-            "From": "Carl Worth <cworth@cworth.org>", 
	-            "Subject": "Multipart message", 
	-            "To": "cworth@cworth.org"
	-        }, 
	-        "id": "XXXXX", 
	-        "match": false, 
	-        "tags": [
	-            "attachment", 
	-            "inbox", 
	-            "signed", 
	-            "unread"
	-        ], 
	-        "timestamp": 978709437
	-    }, 
	-    "reply-headers": {
	-        "From": "Notmuch Test Suite <test_suite@notmuchmail.org>", 
	-        "In-reply-to": "<87liy5ap00.fsf@yoom.home.cworth.org>", 
	-        "References": " <87liy5ap00.fsf@yoom.home.cworth.org>", 
	-        "Subject": "Re: Multipart message", 
	-        "To": "Carl Worth <cworth@cworth.org>, cworth@cworth.org"
	-    }
	-}
	+address_match(cworth@cworth.org)
	+address_match(cworth@cworth.org)
	+{"reply-headers": {"Subject": "Re: Multipart message", "From": "Notmuch Test Suite <test_suite@notmuchmail.org>", "To": "Carl Worth <cworth@cworth.org>, cworth@cworth.org", "In-reply-to": "<87liy5ap00.fsf@yoom.home.cworth.org>", "References": " <87liy5ap00.fsf@yoom.home.cworth.org>"}, "original": {"id": "XXXXX", "match": false, "excluded": false, "filename": "YYYYY", "timestamp": 978709437, "date_relative": "2001-01-05", "tags": ["attachment", "inbox", "signed", "unread"], "headers": {"Subject": "Multipart message", "From": "Carl Worth <cworth@cworth.org>", "To": "cworth@cworth.org", "Date": "Fri, 05 Jan 2001 15:43:57 +0000"}, "body": [{"id": 1, "content-type": "multipart/signed", "content": [{"id": 2, "content-type": "multipart/mixed", "content": [{"id": 3, "content-type": "message/rfc822", "content": [{"headers": {"Subject": "html message", "From": "Carl Worth <cworth@cworth.org>", "To": "cworth@cworth.org", "Date": "Fri, 05 Jan 2001 15:42:57 +0000"}, "body": [{"id": 4, "content-type": "multipart/alternative", "content": [{"id": 5, "content-type": "text/html"}, {"id": 6, "content-type": "text/plain", "content": "This is an embedded message, with a multipart/alternative part.\n"}]}]}]}, {"id": 7, "content-type": "text/plain", "filename": "YYYYY", "content": "This is a text attachment.\n"}, {"id": 8, "content-type": "text/plain", "content": "And this message is signed.\n\n-Carl\n"}]}, {"id": 9, "content-type": "application/pgp-signature"}]}]}}
No JSON object could be decoded
 PASS   'notmuch show --part' does not corrupt a part with CRLF pair

thread-naming: Testing naming of threads with changing subject
 PASS   Initial thread name (oldest-first search)
 PASS   Initial thread name (newest-first search)
 PASS   Changed thread name (oldest-first search)
 PASS   Changed thread name (newest-first search)
 PASS   Ignore added reply prefix (Re:)
 PASS   Ignore added reply prefix (Aw:)
 PASS   Ignore added reply prefix (Vs:)
 PASS   Ignore added reply prefix (Sv:)
 PASS   Test order of messages in "notmuch show"

raw: Testing notmuch show --format=raw
 PASS   Attempt to show multiple raw messages
 PASS   Show a raw message
 PASS   Show another raw message

reply: Testing "notmuch reply" in several variations
 FAIL   Basic reply
	--- reply.1.expected	2012-11-30 11:12:09.207823395 +0000
	+++ reply.1.output	2012-11-30 11:12:09.207823395 +0000
	@@ -1,3 +1,5 @@
	+address_match(sender@example.com)
	+address_match(test_suite@notmuchmail.org)
	 From: Notmuch Test Suite <test_suite@notmuchmail.org>
	 Subject: Re: notmuch-reply-test
	 To: Sender <sender@example.com>
 FAIL   Multiple recipients
	--- reply.2.expected	2012-11-30 11:12:09.223823144 +0000
	+++ reply.2.output	2012-11-30 11:12:09.223823144 +0000
	@@ -1,3 +1,6 @@
	+address_match(sender@example.com)
	+address_match(test_suite@notmuchmail.org)
	+address_match(someone@example.com)
	 From: Notmuch Test Suite <test_suite@notmuchmail.org>
	 Subject: Re: notmuch-reply-test
	 To: Sender <sender@example.com>, Someone Else <someone@example.com>
 FAIL   Reply with CC
	--- reply.3.expected	2012-11-30 11:12:09.239822892 +0000
	+++ reply.3.output	2012-11-30 11:12:09.239822892 +0000
	@@ -1,3 +1,6 @@
	+address_match(sender@example.com)
	+address_match(test_suite@notmuchmail.org)
	+address_match(cc@example.com)
	 From: Notmuch Test Suite <test_suite@notmuchmail.org>
	 Subject: Re: notmuch-reply-test
	 To: Sender <sender@example.com>
 FAIL   Reply from alternate address
	--- reply.4.expected	2012-11-30 11:12:09.259822574 +0000
	+++ reply.4.output	2012-11-30 11:12:09.259822574 +0000
	@@ -1,3 +1,5 @@
	+address_match(sender@example.com)
	+address_match(test_suite_other@notmuchmail.org)
	 From: Notmuch Test Suite <test_suite_other@notmuchmail.org>
	 Subject: Re: notmuch-reply-test
	 To: Sender <sender@example.com>
 FAIL   Reply from address in named group list
	--- reply.5.expected	2012-11-30 11:12:09.275822323 +0000
	+++ reply.5.output	2012-11-30 11:12:09.275822323 +0000
	@@ -1,3 +1,7 @@
	+address_match(sender@example.com)
	+address_match(test_suite@notmuchmail.org)
	+address_match(someone@example.com)
	+address_match(test_suite_other@notmuchmail.org)
	 From: Notmuch Test Suite <test_suite@notmuchmail.org>
	 Subject: Re: notmuch-reply-test
	 To: Sender <sender@example.com>, someone@example.com
 FAIL   Support for Reply-To
	--- reply.6.expected	2012-11-30 11:12:09.291822071 +0000
	+++ reply.6.output	2012-11-30 11:12:09.291822071 +0000
	@@ -1,3 +1,5 @@
	+address_match(elsewhere@example.com)
	+address_match(test_suite@notmuchmail.org)
	 From: Notmuch Test Suite <test_suite@notmuchmail.org>
	 Subject: Re: notmuch-reply-test
	 To: Sender <elsewhere@example.com>
 FAIL   Un-munging Reply-To
	--- reply.7.expected	2012-11-30 11:12:09.307821818 +0000
	+++ reply.7.output	2012-11-30 11:12:09.307821818 +0000
	@@ -1,3 +1,5 @@
	+address_match(sender@example.com)
	+address_match(list@example.com)
	 From: Notmuch Test Suite <test_suite@notmuchmail.org>
	 Subject: Re: notmuch-reply-test
	 To: Sender <sender@example.com>, Some List <list@example.com>
 FAIL   Message with header of exactly 200 bytes
	--- reply.8.expected	2012-11-30 11:12:09.323821564 +0000
	+++ reply.8.output	2012-11-30 11:12:09.323821564 +0000
	@@ -1,3 +1,5 @@
	+address_match(test_suite@notmuchmail.org)
	+address_match(test_suite@notmuchmail.org)
	 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
	 In-Reply-To: <msg-008@notmuch-test-suite>
 FAIL   From guessing: Envelope-To
	--- reply.9.expected	2012-11-30 11:12:09.339821311 +0000
	+++ reply.9.output	2012-11-30 11:12:09.339821311 +0000
	@@ -1,3 +1,6 @@
	+address_match(sender@example.com)
	+address_match(recipient@example.com)
	+address_match(test_suite_other@notmuchmail.org)
	 From: Notmuch Test Suite <test_suite_other@notmuchmail.org>
	 Subject: Re: From guessing
	 To: Sender <sender@example.com>, Recipient <recipient@example.com>
 FAIL   From guessing: X-Original-To
	--- reply.10.expected	2012-11-30 11:12:09.359820997 +0000
	+++ reply.10.output	2012-11-30 11:12:09.359820997 +0000
	@@ -1,3 +1,6 @@
	+address_match(sender@example.com)
	+address_match(recipient@example.com)
	+address_match(test_suite@otherdomain.org)
	 From: Notmuch Test Suite <test_suite@otherdomain.org>
	 Subject: Re: From guessing
	 To: Sender <sender@example.com>, Recipient <recipient@example.com>
 FAIL   From guessing: Delivered-To
	--- reply.11.expected	2012-11-30 11:12:09.375820743 +0000
	+++ reply.11.output	2012-11-30 11:12:09.375820743 +0000
	@@ -1,3 +1,6 @@
	+address_match(sender@example.com)
	+address_match(recipient@example.com)
	+address_match(test_suite_other@notmuchmail.org)
	 From: Notmuch Test Suite <test_suite_other@notmuchmail.org>
	 Subject: Re: From guessing
	 To: Sender <sender@example.com>, Recipient <recipient@example.com>

reply-to-sender: Testing "notmuch reply --reply-to=sender" in several variations
 FAIL   Basic reply-to-sender
	--- reply-to-sender.1.expected	2012-11-30 11:12:09.419820050 +0000
	+++ reply-to-sender.1.output	2012-11-30 11:12:09.419820050 +0000
	@@ -1,3 +1,5 @@
	+address_match(sender@example.com)
	+address_match(test_suite@notmuchmail.org)
	 From: Notmuch Test Suite <test_suite@notmuchmail.org>
	 Subject: Re: notmuch-reply-test
	 To: Sender <sender@example.com>
 FAIL   From Us, Basic reply to message
	--- reply-to-sender.2.expected	2012-11-30 11:12:09.439819734 +0000
	+++ reply-to-sender.2.output	2012-11-30 11:12:09.439819734 +0000
	@@ -1,3 +1,5 @@
	+address_match(test_suite@notmuchmail.org)
	+address_match(recipient@example.com)
	 From: Notmuch Test Suite <test_suite@notmuchmail.org>
	 Subject: Re: notmuch-reply-test
	 To: Recipient <recipient@example.com>
 FAIL   Multiple recipients
	--- reply-to-sender.3.expected	2012-11-30 11:12:09.455819480 +0000
	+++ reply-to-sender.3.output	2012-11-30 11:12:09.455819480 +0000
	@@ -1,3 +1,6 @@
	+address_match(sender@example.com)
	+address_match(test_suite@notmuchmail.org)
	+address_match(someone@example.com)
	 From: Notmuch Test Suite <test_suite@notmuchmail.org>
	 Subject: Re: notmuch-reply-test
	 To: Sender <sender@example.com>
 FAIL   From Us, Multiple TO recipients
	--- reply-to-sender.4.expected	2012-11-30 11:12:09.475819164 +0000
	+++ reply-to-sender.4.output	2012-11-30 11:12:09.475819164 +0000
	@@ -1,3 +1,6 @@
	+address_match(test_suite@notmuchmail.org)
	+address_match(recipient@example.com)
	+address_match(someone@example.com)
	 From: Notmuch Test Suite <test_suite@notmuchmail.org>
	 Subject: Re: notmuch-reply-test
	 To: Recipient <recipient@example.com>, Someone Else <someone@example.com>
 FAIL   Reply with CC
	--- reply-to-sender.5.expected	2012-11-30 11:12:09.491818913 +0000
	+++ reply-to-sender.5.output	2012-11-30 11:12:09.491818913 +0000
	@@ -1,3 +1,5 @@
	+address_match(sender@example.com)
	+address_match(test_suite@notmuchmail.org)
	 From: Notmuch Test Suite <test_suite@notmuchmail.org>
	 Subject: Re: notmuch-reply-test
	 To: Sender <sender@example.com>
 FAIL   From Us, Reply with CC
	--- reply-to-sender.6.expected	2012-11-30 11:12:09.507818659 +0000
	+++ reply-to-sender.6.output	2012-11-30 11:12:09.507818659 +0000
	@@ -1,3 +1,5 @@
	+address_match(test_suite@notmuchmail.org)
	+address_match(recipient@example.com)
	 From: Notmuch Test Suite <test_suite@notmuchmail.org>
	 Subject: Re: notmuch-reply-test
	 To: Recipient <recipient@example.com>
 FAIL   From Us, Reply no TO but with CC
	--- reply-to-sender.7.expected	2012-11-30 11:12:09.523818406 +0000
	+++ reply-to-sender.7.output	2012-11-30 11:12:09.523818406 +0000
	@@ -1,3 +1,6 @@
	+address_match(test_suite@notmuchmail.org)
	+address_match(test_suite@notmuchmail.org)
	+address_match(cc@example.com)
	 From: Notmuch Test Suite <test_suite@notmuchmail.org>
	 Subject: Re: notmuch-reply-test
	 Cc: Other Parties <cc@example.com>
 FAIL   Reply from alternate address
	--- reply-to-sender.8.expected	2012-11-30 11:12:09.539818155 +0000
	+++ reply-to-sender.8.output	2012-11-30 11:12:09.539818155 +0000
	@@ -1,3 +1,5 @@
	+address_match(sender@example.com)
	+address_match(test_suite_other@notmuchmail.org)
	 From: Notmuch Test Suite <test_suite_other@notmuchmail.org>
	 Subject: Re: notmuch-reply-test
	 To: Sender <sender@example.com>
 FAIL   Support for Reply-To
	--- reply-to-sender.9.expected	2012-11-30 11:12:09.559817838 +0000
	+++ reply-to-sender.9.output	2012-11-30 11:12:09.559817838 +0000
	@@ -1,3 +1,5 @@
	+address_match(elsewhere@example.com)
	+address_match(test_suite@notmuchmail.org)
	 From: Notmuch Test Suite <test_suite@notmuchmail.org>
	 Subject: Re: notmuch-reply-test
	 To: Sender <elsewhere@example.com>
 FAIL   Support for Reply-To with multiple recipients
	--- reply-to-sender.10.expected	2012-11-30 11:12:09.575817588 +0000
	+++ reply-to-sender.10.output	2012-11-30 11:12:09.575817588 +0000
	@@ -1,3 +1,6 @@
	+address_match(elsewhere@example.com)
	+address_match(test_suite@notmuchmail.org)
	+address_match(someone@example.com)
	 From: Notmuch Test Suite <test_suite@notmuchmail.org>
	 Subject: Re: notmuch-reply-test
	 To: Sender <elsewhere@example.com>
 FAIL   Un-munging Reply-To
	--- reply-to-sender.11.expected	2012-11-30 11:12:09.591817332 +0000
	+++ reply-to-sender.11.output	2012-11-30 11:12:09.591817332 +0000
	@@ -1,3 +1,5 @@
	+address_match(sender@example.com)
	+address_match(list@example.com)
	 From: Notmuch Test Suite <test_suite@notmuchmail.org>
	 Subject: Re: notmuch-reply-test
	 To: Sender <sender@example.com>
 FAIL   Message with header of exactly 200 bytes
	--- reply-to-sender.12.expected	2012-11-30 11:12:09.611817017 +0000
	+++ reply-to-sender.12.output	2012-11-30 11:12:09.611817017 +0000
	@@ -1,3 +1,5 @@
	+address_match(test_suite@notmuchmail.org)
	+address_match(test_suite@notmuchmail.org)
	 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
	 In-Reply-To: <msg-012@notmuch-test-suite>

dump-restore: Testing "notmuch dump" and "notmuch restore"
 PASS   Dumping all tags
 PASS   Dumping all tags II
 PASS   Clearing all tags
 PASS   Accumulate original tags
 PASS   Restoring original tags
 PASS   Restore with nothing to do
 PASS   Accumulate with existing tags
 PASS   Accumulate with no tags
 PASS   Accumulate with new tags
 PASS   Invalid restore invocation
 PASS   dump --output=outfile
 PASS   dump --output=outfile --
 PASS   dump -- from:cworth
 PASS   dump --output=outfile from:cworth
 PASS   dump --output=outfile -- from:cworth

uuencode: Testing handling of uuencoded data
 PASS   Ensure content before uu data is indexed
 PASS   Ensure uu data is not indexed
 PASS   Ensure content after uu data is indexed

thread-order: Testing threading when messages received out of order
 PASS   Adding initial child message
 PASS   Searching returns the message
 PASS   Adding second child message
 PASS   Searching returns both messages in one thread
 PASS   Adding parent message
 PASS   Searching returns all three messages in one thread

author-order: Testing author reordering;
 PASS   Adding parent message
 PASS   Adding initial child message
 PASS   Adding second child message
 PASS   Searching when all three messages match
 PASS   Searching when two messages match
 PASS   Searching when only one message matches
 PASS   Searching when only first message matches
 PASS   Adding duplicate author
 PASS   Searching when all four messages match
 PASS   Adding non-monotonic child message
 PASS   Searching non-monotonic messages (oldest-first)
 PASS   Searching non-monotonic messages (newest-first)

from-guessing: Testing From line heuristics (with multiple configured addresses)
 FAIL   Magic from guessing (nothing to go on)
	--- from-guessing.1.expected	2012-11-30 11:12:10.251806912 +0000
	+++ from-guessing.1.output	2012-11-30 11:12:10.251806912 +0000
	@@ -1,3 +1,5 @@
	+address_match(sender@example.com)
	+address_match(mailinglist@notmuchmail.org)
	 From: Notmuch Test Suite <test_suite@notmuchmail.org>
	 Subject: Re: notmuch-reply-test
	 To: Sender <sender@example.com>, mailinglist@notmuchmail.org
 FAIL   Magic from guessing (Envelope-to:)
	--- from-guessing.2.expected	2012-11-30 11:12:10.271806599 +0000
	+++ from-guessing.2.output	2012-11-30 11:12:10.271806599 +0000
	@@ -1,3 +1,6 @@
	+address_match(sender@example.com)
	+address_match(mailinglist@notmuchmail.org)
	+address_match(test_suite_other@notmuchmail.org)
	 From: Notmuch Test Suite <test_suite_other@notmuchmail.org>
	 Subject: Re: notmuch-reply-test
	 To: Sender <sender@example.com>, mailinglist@notmuchmail.org
 FAIL   Magic from guessing (X-Original-To:)
	--- from-guessing.3.expected	2012-11-30 11:12:10.287806344 +0000
	+++ from-guessing.3.output	2012-11-30 11:12:10.287806344 +0000
	@@ -1,3 +1,6 @@
	+address_match(sender@example.com)
	+address_match(mailinglist@notmuchmail.org)
	+address_match(test_suite_other@notmuchmail.org)
	 From: Notmuch Test Suite <test_suite_other@notmuchmail.org>
	 Subject: Re: notmuch-reply-test
	 To: Sender <sender@example.com>, mailinglist@notmuchmail.org
 FAIL   Magic from guessing (Received: .. for ..)
	--- from-guessing.4.expected	2012-11-30 11:12:10.307806030 +0000
	+++ from-guessing.4.output	2012-11-30 11:12:10.307806030 +0000
	@@ -1,3 +1,6 @@
	+address_match(sender@example.com)
	+address_match(mailinglist@notmuchmail.org)
	+address_match( for <test_suite_other@notmuchmail.org>; Sat, 10 Apr 2010 07:54:51 -0400 (EDT))
	 From: Notmuch Test Suite <test_suite_other@notmuchmail.org>
	 Subject: Re: notmuch-reply-test
	 To: Sender <sender@example.com>, mailinglist@notmuchmail.org
 FAIL   Magic from guessing (Received: domain)
	--- from-guessing.5.expected	2012-11-30 11:12:10.323805778 +0000
	+++ from-guessing.5.output	2012-11-30 11:12:10.323805778 +0000
	@@ -1,3 +1,6 @@
	+address_match(sender@example.com)
	+address_match(mailinglist@notmuchmail.org)
	+address_match(otherdomain.org)
	 From: Notmuch Test Suite <test_suite@otherdomain.org>
	 Subject: Re: notmuch-reply-test
	 To: Sender <sender@example.com>, mailinglist@notmuchmail.org
 FAIL   Magic from guessing (multiple Received: headers)
	--- from-guessing.6.expected	2012-11-30 11:12:10.339805525 +0000
	+++ from-guessing.6.output	2012-11-30 11:12:10.339805525 +0000
	@@ -1,3 +1,6 @@
	+address_match(sender@example.com)
	+address_match(mailinglist@notmuchmail.org)
	+address_match( for <test_suite_other@notmuchmail.org>; Sat, 10 Apr 2010 07:54:51 -0400 (EDT) from extraneous.example.com (extraneous.example.com [1.1.1.1]))
	 From: Notmuch Test Suite <test_suite_other@notmuchmail.org>
	 Subject: Re: notmuch-reply-test
	 To: Sender <sender@example.com>, mailinglist@notmuchmail.org
 PASS   Testing From line heuristics (with single configured address)
 FAIL   Magic from guessing (nothing to go on)
	--- from-guessing.8.expected	2012-11-30 11:12:10.359805207 +0000
	+++ from-guessing.8.output	2012-11-30 11:12:10.359805207 +0000
	@@ -1,3 +1,5 @@
	+address_match(sender@example.com)
	+address_match(mailinglist@notmuchmail.org)
	 From: Notmuch Test Suite <test_suite@notmuchmail.org>
	 Subject: Re: notmuch-reply-test
	 To: Sender <sender@example.com>, mailinglist@notmuchmail.org
 FAIL   Magic from guessing (Envelope-to:)
	--- from-guessing.9.expected	2012-11-30 11:12:10.375804955 +0000
	+++ from-guessing.9.output	2012-11-30 11:12:10.375804955 +0000
	@@ -1,3 +1,6 @@
	+address_match(sender@example.com)
	+address_match(mailinglist@notmuchmail.org)
	+address_match(test_suite_other@notmuchmail.org)
	 From: Notmuch Test Suite <test_suite@notmuchmail.org>
	 Subject: Re: notmuch-reply-test
	 To: Sender <sender@example.com>, mailinglist@notmuchmail.org
 FAIL   Magic from guessing (X-Original-To:)
	--- from-guessing.10.expected	2012-11-30 11:12:10.395804641 +0000
	+++ from-guessing.10.output	2012-11-30 11:12:10.395804641 +0000
	@@ -1,3 +1,6 @@
	+address_match(sender@example.com)
	+address_match(mailinglist@notmuchmail.org)
	+address_match(test_suite_other@notmuchmail.org)
	 From: Notmuch Test Suite <test_suite@notmuchmail.org>
	 Subject: Re: notmuch-reply-test
	 To: Sender <sender@example.com>, mailinglist@notmuchmail.org
 FAIL   Magic from guessing (Received: .. for ..)
	--- from-guessing.11.expected	2012-11-30 11:12:10.419804262 +0000
	+++ from-guessing.11.output	2012-11-30 11:12:10.419804262 +0000
	@@ -1,3 +1,7 @@
	+address_match(sender@example.com)
	+address_match(mailinglist@notmuchmail.org)
	+address_match( for <test_suite_other@notmuchmail.org>; Sat, 10 Apr 2010 07:54:51 -0400 (EDT))
	+address_match(notmuchmail.org)
	 From: Notmuch Test Suite <test_suite@notmuchmail.org>
	 Subject: Re: notmuch-reply-test
	 To: Sender <sender@example.com>, mailinglist@notmuchmail.org
 FAIL   Magic from guessing (Received: domain)
	--- from-guessing.12.expected	2012-11-30 11:12:10.435804008 +0000
	+++ from-guessing.12.output	2012-11-30 11:12:10.435804008 +0000
	@@ -1,3 +1,6 @@
	+address_match(sender@example.com)
	+address_match(mailinglist@notmuchmail.org)
	+address_match(otherdomain.org)
	 From: Notmuch Test Suite <test_suite@notmuchmail.org>
	 Subject: Re: notmuch-reply-test
	 To: Sender <sender@example.com>, mailinglist@notmuchmail.org

long-id: Testing messages with ridiculously-long message IDs
 PASS   Referencing long ID before adding
 PASS   Adding message with long ID
 PASS   Referencing long ID after adding
 PASS   Ensure all messages were threaded together

encoding: Testing encoding issues
 PASS   Message with text of unknown charset
 PASS   Search for ISO-8859-2 encoded message

emacs: Testing emacs interface
 PASS   Basic notmuch-hello view in emacs
 PASS   Saved search with 0 results
 PASS   No saved searches displayed (all with 0 results)
 PASS   Basic notmuch-search view in emacs
 PASS   Incremental parsing of search results
 PASS   Navigation of notmuch-hello to search results
 PASS   Basic notmuch-show view in emacs
 PASS   Basic notmuch-show view in emacs default indentation
 PASS   Basic notmuch-show view in emacs without indentation
 PASS   Basic notmuch-show view in emacs with fourfold indentation
 PASS   notmuch-show for message with invalid From
 PASS   Navigation of notmuch-search to thread view
 PASS   Add tag from search view
 PASS   Remove tag from search view
 PASS   Add tag from notmuch-show view
 PASS   Remove tag from notmuch-show view
 PASS   Message with .. in Message-Id:
 PASS   Message with quote in Message-Id:
 PASS   Sending a message via (fake) SMTP
 PASS   Verify that sent messages are saved/searchable (via FCC)
 PASS   notmuch-fcc-dirs set to nil
 PASS   notmuch-fcc-dirs set to a string
 PASS   notmuch-fcc-dirs set to a list (with match)
 PASS   notmuch-fcc-dirs set to a list (catch-all)
 PASS   notmuch-fcc-dirs set to a list (no match)
 FAIL   Reply within emacs
	--- emacs.26.OUTPUT	2012-11-30 11:12:15.551723246 +0000
	+++ emacs.26.EXPECTED	2012-11-30 11:12:15.551723246 +0000
	@@ -0,0 +1,11 @@
	+From: Notmuch Test Suite <test_suite@notmuchmail.org>
	+To: user@example.com
	+Subject: Re: Testing message sent via SMTP
	+In-Reply-To: <XXX>
	+Fcc: /home/michael/software/notmuch/test/tmp.emacs/mail/sent
	+References: <XXX>
	+User-Agent: Notmuch/XXX Emacs/XXX
	+--text follows this line--
	+Notmuch Test Suite <test_suite@notmuchmail.org> writes:
	+
	+> This is a test that messages are sent via SMTP
*ERROR*: JSON readtable error
 FAIL   Reply from alternate address within emacs
	--- emacs.27.OUTPUT	2012-11-30 11:12:15.679721226 +0000
	+++ emacs.27.EXPECTED	2012-11-30 11:12:15.683721161 +0000
	@@ -0,0 +1,11 @@
	+From: Notmuch Test Suite <test_suite_other@notmuchmail.org>
	+To: Sender <sender@example.com>
	+Subject: Re: Reply from alternate address within emacs
	+In-Reply-To: <msg-004@notmuch-test-suite>
	+Fcc: /home/michael/software/notmuch/test/tmp.emacs/mail/sent
	+References: <msg-004@notmuch-test-suite>
	+User-Agent: Notmuch/XXX Emacs/XXX
	+--text follows this line--
	+Sender <sender@example.com> writes:
	+
	+> This is just a test message (#4)
*ERROR*: JSON readtable error
 FAIL   Reply from address in named group list within emacs
	--- emacs.28.OUTPUT	2012-11-30 11:12:15.807719203 +0000
	+++ emacs.28.EXPECTED	2012-11-30 11:12:15.811719142 +0000
	@@ -0,0 +1,11 @@
	+From: Notmuch Test Suite <test_suite@notmuchmail.org>
	+To: Sender <sender@example.com>, someone@example.com
	+Subject: Re: Reply from address in named group list within emacs
	+In-Reply-To: <msg-005@notmuch-test-suite>
	+Fcc: /home/michael/software/notmuch/test/tmp.emacs/mail/sent
	+References: <msg-005@notmuch-test-suite>
	+User-Agent: Notmuch/XXX Emacs/XXX
	+--text follows this line--
	+Sender <sender@example.com> writes:
	+
	+> This is just a test message (#5)
*ERROR*: JSON readtable error
 FAIL   Reply within emacs to a multipart/mixed message
	--- emacs.29.OUTPUT	2012-11-30 11:12:15.859718382 +0000
	+++ emacs.29.EXPECTED	2012-11-30 11:12:15.859718382 +0000
	@@ -0,0 +1,53 @@
	+From: Notmuch Test Suite <test_suite@notmuchmail.org>
	+To: Adrian Perez de Castro <aperez@igalia.com>, notmuch@notmuchmail.org
	+Subject: Re: [notmuch] Introducing myself
	+In-Reply-To: <20091118002059.067214ed@hikari>
	+Fcc: /home/michael/software/notmuch/test/tmp.emacs/mail/sent
	+References: <20091118002059.067214ed@hikari>
	+User-Agent: Notmuch/XXX Emacs/XXX
	+--text follows this line--
	+Adrian Perez de Castro <aperez@igalia.com> writes:
	+
	+> Hello to all,
	+>
	+> I have just heard about Not Much today in some random Linux-related news
	+> site (LWN?), my name is Adrian Perez and I work as systems administrator
	+> (although I can do some code as well :P). I have always thought that the
	+> ideas behind Sup were great, but after some time using it, I got tired of
	+> the oddities that it has. I also do not like doing things like having to
	+> install Ruby just for reading and sorting mails. Some time ago I thought
	+> about doing something like Not Much and in fact I played a bit with the
	+> Python+Xapian and the Python+Whoosh combinations, because I find relaxing
	+> to code things in Python when I am not working and also it is installed
	+> by default on most distribution. I got to have some mailboxes indexed and
	+> basic searching working a couple of months ago. Lately I have been very
	+> busy and had no time for coding, and them... boom! Not Much appears -- and
	+> it is almost exactly what I was trying to do, but faster. I have been
	+> playing a bit with Not Much today, and I think it has potential.
	+>
	+> Also, I would like to share one idea I had in mind, that you might find
	+> interesting: One thing I have found very annoying is having to re-tag my
	+> mail when the indexes get b0rked (it happened a couple of times to me while
	+> using Sup), so I was planning to mails as read/unread and adding the tags
	+> not just to the index, but to the mail text itself, e.g. by adding a
	+> "X-Tags" header field or by reusing the "Keywords" one. This way, the index
	+> could be totally recreated by re-reading the mail directories, and this
	+> would also allow to a tools like OfflineIMAP [1] to get the mails into a
	+> local maildir, tagging and indexing the mails with the e-mail reader and
	+> then syncing back the messages with the "X-Tags" header to the IMAP server.
	+> This would allow to use the mail reader from a different computer and still
	+> have everything tagged finely.
	+>
	+> Best regards,
	+>
	+>
	+> ---
	+> [1] http://software.complete.org/software/projects/show/offlineimap
	+>
	+> -- 
	+> Adrian Perez de Castro <aperez@igalia.com>
	+> Igalia - Free Software Engineering
	+> _______________________________________________
	+> notmuch mailing list
	+> notmuch@notmuchmail.org
	+> http://notmuchmail.org/mailman/listinfo/notmuch
*ERROR*: JSON readtable error
 FAIL   Reply within emacs to a multipart/alternative message
	--- emacs.30.OUTPUT	2012-11-30 11:12:16.067715102 +0000
	+++ emacs.30.EXPECTED	2012-11-30 11:12:16.067715102 +0000
	@@ -0,0 +1,30 @@
	+From: Notmuch Test Suite <test_suite@notmuchmail.org>
	+To: Alex Botero-Lowry <alex.boterolowry@gmail.com>, notmuch@notmuchmail.org
	+Subject: Re: [notmuch] preliminary FreeBSD support
	+In-Reply-To: <cf0c4d610911171136h1713aa59w9cf9aa31f052ad0a@mail.gmail.com>
	+Fcc: /home/michael/software/notmuch/test/tmp.emacs/mail/sent
	+References: <cf0c4d610911171136h1713aa59w9cf9aa31f052ad0a@mail.gmail.com>
	+User-Agent: Notmuch/XXX Emacs/XXX
	+--text follows this line--
	+Alex Botero-Lowry <alex.boterolowry@gmail.com> writes:
	+
	+> I saw the announcement this morning, and was very excited, as I had been
	+> hoping sup would be turned into a library,
	+> since I like the concept more than the UI (I'd rather an emacs interface).
	+>
	+> I did a preliminary compile which worked out fine, but
	+> sysconf(_SC_SC_GETPW_R_SIZE_MAX) returns -1 on
	+> FreeBSD, so notmuch_config_open segfaulted.
	+>
	+> Attached is a patch that supplies a default buffer size of 64 in cases where
	+> -1 is returned.
	+>
	+> http://www.opengroup.org/austin/docs/austin_328.txt - seems to indicate this
	+> is acceptable behavior,
	+> and http://mail-index.netbsd.org/pkgsrc-bugs/2006/06/07/msg016808.htmlspecifically
	+> uses 64 as the
	+> buffer size.
	+> _______________________________________________
	+> notmuch mailing list
	+> notmuch@notmuchmail.org
	+> http://notmuchmail.org/mailman/listinfo/notmuch
*ERROR*: JSON readtable error
 FAIL   Reply within emacs to an html-only message
	--- emacs.31.OUTPUT	2012-11-30 11:12:16.111714404 +0000
	+++ emacs.31.EXPECTED	2012-11-30 11:12:16.111714404 +0000
	@@ -0,0 +1,11 @@
	+From: Notmuch Test Suite <test_suite@notmuchmail.org>
	+To: 
	+Subject: Re: Reply within emacs to an html-only message
	+In-Reply-To: <msg-006@notmuch-test-suite>
	+Fcc: /home/michael/software/notmuch/test/tmp.emacs/mail/sent
	+References: <msg-006@notmuch-test-suite>
	+User-Agent: Notmuch/XXX Emacs/XXX
	+--text follows this line--
	+Notmuch Test Suite <test_suite@notmuchmail.org> writes:
	+
	+> Hi,This is an HTML test message.OK?
*ERROR*: JSON readtable error
 FAIL   Quote MML tags in reply
	--- emacs.32.OUTPUT	2012-11-30 11:12:16.147713838 +0000
	+++ emacs.32.EXPECTED	2012-11-30 11:12:16.151713776 +0000
	@@ -0,0 +1,11 @@
	+From: Notmuch Test Suite <test_suite@notmuchmail.org>
	+To: 
	+Subject: Re: Quote MML tags in reply
	+In-Reply-To: <test-emacs-mml-quoting@message.id>
	+Fcc: /home/michael/software/notmuch/test/tmp.emacs/mail/sent
	+References: <test-emacs-mml-quoting@message.id>
	+User-Agent: Notmuch/XXX Emacs/XXX
	+--text follows this line--
	+Notmuch Test Suite <test_suite@notmuchmail.org> writes:
	+
	+> <#!part disposition=inline>
*ERROR*: JSON readtable error
 PASS   Save attachment from within emacs using notmuch-show-save-attachments
 PASS   Save attachment from within emacs using notmuch-show-save-part
 PASS   Save 8bit attachment from within emacs using notmuch-show-save-attachments
 PASS   View raw message within emacs
 PASS   Hiding/showing signature in notmuch-show view
 PASS   Detection and hiding of top-post quoting of message
 PASS   Hiding message in notmuch-show view
 PASS   Hiding message with visible citation in notmuch-show view
 PASS   notmuch-show: show message headers
 PASS   notmuch-show: hide message headers
 PASS   notmuch-show: hide message headers (w/ notmuch-show-toggle-visibility-headers)
 PASS   notmuch-show: collapse all messages in thread
 PASS   notmuch-show: uncollapse all messages in thread
 PASS   Stashing in notmuch-show
 PASS   Stashing in notmuch-search
 PASS   notmuch-show-advance-and-archive with invisible signature
 PASS   Refresh show buffer
 PASS   Refresh modified show buffer
 PASS   Do not call notmuch for non-inlinable application/mpeg parts
 PASS   Do not call notmuch for non-inlinable audio/mpeg parts
 PASS   notmuch-hello-mode hook is called
 PASS   notmuch-hello-mode hook is not called on updates
 PASS   notmuch-hello-refresh hook is called
 PASS   notmuch-hello-refresh hook is called on updates
 PASS   Rendering HTML mail with images

emacs-large-search-buffer: Testing Emacs with large search results buffer
 PASS   Ensure that emacs doesn't drop results
 PASS   Ensure that emacs doesn't drop error messages

emacs-subject-to-filename: Testing emacs: mail subject to filename
 PASS   no patch sequence number
 PASS   patch sequence number #1
 PASS   patch sequence number #2
 PASS   patch sequence number #3
 PASS   patch sequence number #4
 PASS   patch sequence number #5
 PASS   patch sequence number #6
 PASS   patch sequence number #7
 PASS   filename #1
 PASS   filename #2
 PASS   filename #3
 PASS   filename #4
 PASS   filename #5
 PASS   filename #6
 PASS   filename #7
 PASS   filename #8
 PASS   filename #9
 PASS   patch filename #1
 PASS   patch filename #2
 PASS   patch filename #3
 PASS   patch filename #4

maildir-sync: Testing maildir synchronization
 PASS   Adding 'S' flag to existing filename removes 'unread' tag
 PASS   Adding message with 'S' flag prevents 'unread' tag
 PASS   Adding 'replied' tag adds 'R' flag to filename
 PASS   notmuch show works with renamed file (without notmuch new)
 PASS   notmuch reply works with renamed file (without notmuch new)
 PASS   notmuch new detects no file rename after tag->flag synchronization
 PASS   When read, message moved from new to cur
 PASS   No rename should be detected by notmuch new
 PASS   Removing 'S' flag from existing filename adds 'unread' tag
 PASS   Removing info from filename leaves tags unchanged
 PASS   Can remove unread tag from message in non-maildir directory
 PASS   Message in non-maildir directory does not get renamed
 PASS   notmuch dump/restore re-synchronizes maildir tags with flags
 PASS   Adding flags to duplicate message tags the mail
 PASS   Adding duplicate message without flags does not remove tags
 PASS   Tag changes modify flags of multiple files
 PASS   Synchronizing tag changes preserves unsupported maildir flags
 PASS   A file with non-compliant maildir info will not be renamed
 PASS   Files in new/ get default synchronized tags

crypto: Testing PGP/MIME signature verification and decryption
 PASS   emacs delivery of signed message
 PASS   signature verification
 PASS   signature verification with full owner trust
 PASS   signature verification with signer key unavailable
 PASS   emacs delivery of encrypted message with attachment
 PASS   decryption, --format=text
 PASS   decryption, --format=json
 PASS   decryption, --format=json, --part=4
 PASS   decrypt attachment (--part=5 --format=raw)
 PASS   decryption failure with missing key
 PASS   emacs delivery of encrypted + signed message
 PASS   decryption + signature verification
 FAIL   reply to encrypted message
	--- crypto.13.expected	2012-11-30 11:12:30.559486390 +0000
	+++ crypto.13.output	2012-11-30 11:12:30.559486390 +0000
	@@ -1,3 +1,5 @@
	+address_match(test_suite@notmuchmail.org)
	+address_match(test_suite@notmuchmail.org)
	 From: Notmuch Test Suite <test_suite@notmuchmail.org>
	 Subject: Re: test encrypted message 002
	 
 PASS   signature verification with revoked key

symbol-hiding: Testing exception symbol hiding
 PASS   running test
 PASS   checking output
 PASS   comparing existing to exported symbols

search-folder-coherence: Testing folder tags removed and added through file renames remain consistent
 PASS   No new messages
 PASS   Single new message
 PASS   Add second folder for same message
 PASS   Multiple files for same message
 PASS   Test matches folder:spam
 PASS   Remove folder:spam copy of email
 PASS   No mails match the folder:spam search

atomicity: Testing atomicity
 PASS   "notmuch new" is idempotent under arbitrary aborts
 PASS   detected 22>10 abort points

python: Testing python bindings
 PASS   compare thread ids
 PASS   compare message ids
 PASS   get non-existent file

hooks: Testing hooks
 PASS   pre-new is run
 PASS   post-new is run
 PASS   pre-new is run before post-new
 PASS   pre-new non-zero exit status (hook status)
 PASS   pre-new non-zero exit status (notmuch status)
 PASS   pre-new non-zero exit status aborts new
 PASS   post-new non-zero exit status (hook status)
 PASS   post-new non-zero exit status (notmuch status)
 PASS   hook without executable permissions
 PASS   hook execution failure

argument-parsing: Testing argument parsing
 PASS   sanity check

emacs-test-functions: Testing emacs test function sanity
 PASS   emacs test function sanity

emacs-address-cleaning: Testing emacs address cleaning
 PASS   notmuch-test-address-clean part 1
 PASS   notmuch-test-address-clean part 2
 PASS   notmuch-test-address-clean part 3

emacs-hello: Testing emacs notmuch-hello view
 PASS   User-defined section with inbox tag
 PASS   User-defined section with empty, hidden entry
 PASS   User-defined section, unread tag filtered out
 PASS   User-defined section, different query for counts
 PASS   Empty custom tags section
 PASS   Empty custom queries section
 PASS   Column alignment for tag/queries with long names

emacs-show: Testing emacs notmuch-show view
 PASS   Hiding Original Message region at beginning of a message
 PASS   Bare subject #1
 PASS   Bare subject #2
 PASS   Bare subject #3
 PASS   don't process cryptographic MIME parts
 PASS   process cryptographic MIME parts
 PASS   process cryptographic MIME parts (w/ notmuch-show-toggle-process-crypto)
 PASS   notmuch-show: don't elide non-matching messages
 PASS   notmuch-show: elide non-matching messages
 PASS   notmuch-show: elide non-matching messages (w/ notmuch-show-toggle-elide-non-matching)
 PASS   notmuch-show: elide non-matching messages (w/ prefix arg to notmuch-show)
 PASS   notmuch-show: disable indentation of thread content (w/ notmuch-show-toggle-thread-indentation)
 PASS   id buttonization

missing-headers: Testing messages with missing headers
Added 2 new messages to the database.
 PASS   Search: text
 PASS   Search: json
 PASS   Show: text
 PASS   Show: json

parse-time-string: Testing date/time parser module
 PASS   date(1) default format without TZ code
 PASS   date(1) --rfc-2822 format
 PASS   date(1) --rfc=3339=seconds format
 PASS   Date parser tests

search-date: Testing date:since..until queries
 PASS   Absolute date range
 PASS   Absolute time range with TZ

Notmuch test suite complete.
437/481 tests passed.
44 tests failed.

Thread: