unofficial mirror of notmuch@notmuchmail.org
 help / color / mirror / code / Atom feed
* [BUG] Saving attachments containing UTF-8 chars
@ 2012-10-29 13:30 Michael Stapelberg
  2012-10-29 16:31 ` Tomi Ollila
  2012-11-27  2:11 ` David Bremner
  0 siblings, 2 replies; 11+ messages in thread
From: Michael Stapelberg @ 2012-10-29 13:30 UTC (permalink / raw)
  To: notmuch

[-- Attachment #1: Type: text/plain, Size: 887 bytes --]

Hello,

attached you can find a message which seems to trigger a bug somewhere
in my notmuch setup. The message has been sent to me and includes a
patchfile, which, when saved using the "w" key in notmuch-emacs, cannot
be applied.

When using munpack(1) on the raw mail file (I’ve attached rawmail.gz
just to be sure that the message doesn’t get mangled in some way), the
unpacked attachment can be attached just fine.

When diff'ing both files, I see that munpack correctly stores the file,
including the problematic UTF-8 apostrophe:
00000200  67 3b 20 64 69 64 6e e2  80 99 74 20 72 65 61 64  |g; didn...t read|

However, the version of the file saved with notmuch contains:
00000200  67 3b 20 64 69 64 6e 19  74 20 72 65 61 64 22 20  |g; didn.t read" |

If there is anything I can do to help debugging this (or if there is a
known fix), please let me know.


[-- Attachment #2: Type: message/rfc822, Size: 9312 bytes --]

[-- Attachment #2.1.1.1: Type: text/plain, Size: 2071 bytes --]

On 2012-10-25 04:44, Michael Stapelberg wrote:
> Hi Conley,
>
> Conley Moorhous <conleymoorhous@gmail.com> writes:
>> Sorry, I accidentally used the master branch. I've attached the proper
>> patch, matched against the next branch!
> Im sorry to bother you again about this, but I still cannot apply the
> patch you sent me on the "next" branch:
>
> midna /tmp $ git clone -b next git://code.i3wm.org/i3
> Cloning into 'i3'...
> remote: Counting objects: 20314, done.
> remote: Compressing objects: 100% (4651/4651), done.
> remote: Total 20314 (delta 15312), reused 20314 (delta 15312)
> Receiving objects: 100% (20314/20314), 4.98 MiB | 418 KiB/s, done.
> Resolving deltas: 100% (15312/15312), done.
> midna /tmp $ cd i3    
> midna /tmp/i3 next $ git am /tmp/fix_alt.patch
> Applying: docs/userguide: s/alt/Alt/
> error: patch failed: docs/userguide:12
> error: docs/userguide: patch does not apply
> Patch failed at 0001 docs/userguide: s/alt/Alt/
> When you have resolved this problem run "git am --resolved".
> If you would prefer to skip this patch, instead run "git am --skip".
> To restore the original branch and stop patching run "git am --abort".
>
> I then tried to make the changes you did on my own and generate a patch
> file using git format-patch HEAD^ and it looks very much like yours,
> except that it doesnt have broken UTF-8 in the first context line.
>
> Im not too sure where the problem lies here (that is, whether its your
> system, git version, locale setup, mail client), but you might want to
> investigate and re-send the patch. If you cant figure it out, I can
> also do the changes for you and commit it, though it seems desirable to
> me to fix such issues once and for all.
>
Wow, turns out I'm dumb :( It was Thunderbird, which, for some reason,
does not default to UTF-8. It /might/ work now, but knowing me, I'll
have done something else wrong (I tried applying it locally and it
worked)! I'm putting you through all this work for three measly words, ha!

I'll make up for it eventually, I hope. I'll submit a big ol' helpful patch.

[-- Attachment #2.1.1.2: Type: text/html, Size: 2568 bytes --]

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2.1.2: fix_alt.patch --]
[-- Type: text/x-patch; name=fix_alt.patch, Size: 1282 bytes --]

From eda92a24e2460a36e2e59372120c92a8fac213b9 Mon Sep 17 00:00:00 2001
From: Conley Moorhous <conleymoorhous@gmail.com>
Date: Thu, 18 Oct 2012 22:12:11 -0500
Subject: [PATCH] docs/userguide: s/alt/Alt/

---
 docs/userguide | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/docs/userguide b/docs/userguide
index e76e4e0..2cdca05 100644
--- a/docs/userguide
+++ b/docs/userguide
@@ -12,9 +12,9 @@ contact us on IRC (preferred) or post your question(s) on the mailing list.
 For the "too long; didnt read" people, here is an overview of the default
 keybindings (click to see the full size image):
 
-*Keys to use with $mod (alt):*
+*Keys to use with $mod (Alt):*
 
-image:keyboard-layer1.png["Keys to use with $mod (alt)",width=600,link="keyboard-layer1.png"]
+image:keyboard-layer1.png["Keys to use with $mod (Alt)",width=600,link="keyboard-layer1.png"]
 
 *Keys to use with Shift+$mod:*
 
@@ -26,7 +26,7 @@ are your homerow.
 == Using i3
 
 Throughout this guide, the keyword +$mod+ will be used to refer to the
-configured modifier. This is the alt key (Mod1) by default, with windows (Mod4)
+configured modifier. This is the Alt key (Mod1) by default, with windows (Mod4)
 being a popular alternative.
 
 === Opening terminals and moving around
-- 
1.8.0


[-- Attachment #3: rawmail.gz --]
[-- Type: application/octet-stream, Size: 3762 bytes --]

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* Re: [BUG] Saving attachments containing UTF-8 chars
  2012-10-29 13:30 [BUG] Saving attachments containing UTF-8 chars Michael Stapelberg
@ 2012-10-29 16:31 ` Tomi Ollila
  2012-11-18  5:29   ` Ethan Glasser-Camp
  2012-11-27  2:11 ` David Bremner
  1 sibling, 1 reply; 11+ messages in thread
From: Tomi Ollila @ 2012-10-29 16:31 UTC (permalink / raw)
  To: Michael Stapelberg, notmuch

On Mon, Oct 29 2012, Michael Stapelberg wrote:

> Hello,
>
> attached you can find a message which seems to trigger a bug somewhere
> in my notmuch setup. The message has been sent to me and includes a
> patchfile, which, when saved using the "w" key in notmuch-emacs, cannot
> be applied.
>
> When using munpack(1) on the raw mail file (I’ve attached rawmail.gz
> just to be sure that the message doesn’t get mangled in some way), the
> unpacked attachment can be attached just fine.
>
> When diff'ing both files, I see that munpack correctly stores the file,
> including the problematic UTF-8 apostrophe:
> 00000200  67 3b 20 64 69 64 6e e2  80 99 74 20 72 65 61 64  |g; didn...t read|
>
> However, the version of the file saved with notmuch contains:
> 00000200  67 3b 20 64 69 64 6e 19  74 20 72 65 61 64 22 20  |g; didn.t read" |
>
> If there is anything I can do to help debugging this (or if there is a
> known fix), please let me know.

I can verify this bug: I copied 'rawmail' to my mail store and attempted
to 'w' the attacment and got the same result (after notmuch new).

The saving code first does
notmuch show --format=raw id:"508953E6.70006@gmail.com"
which decodes OK on command line, and to the buffer when 
kill-buffer is outcommented in (with-current-notmuch-show-message ...) 
macro.

I attempted a set of trial-&-error tricks to get the attachment
saved "correctly", and at least this seems to do the trick:

diff --git a/emacs/notmuch-show.el b/emacs/notmuch-show.el
index f273eb4..a6a85c0 100644
--- a/emacs/notmuch-show.el
+++ b/emacs/notmuch-show.el
@@ -203,9 +203,11 @@ For example, if you wanted to remove an \"unread\" tag and add a
      (let ((id (notmuch-show-get-message-id)))
        (let ((buf (generate-new-buffer (concat "*notmuch-msg-" id "*"))))
          (with-current-buffer buf
-	    (call-process notmuch-command nil t nil "show" "--format=raw" id)
-           ,@body)
-	 (kill-buffer buf)))))
+	   (let ((coding-system-for-read 'no-conversion)
+		 (coding-system-for-write 'no-conversion))
+	     (call-process notmuch-command nil t nil "show" "--format=raw" id)
+	     ,@body))))))
+%%	 (kill-buffer buf)))))
 
 (defun notmuch-show-turn-on-visual-line-mode ()
   "Enable Visual Line mode."

---

(kill-buffer is outcommented above for testing purposes)

To test this this needs to me evaluated and then the functions
using this macro (notmuch-show-save-attachments  in this case)

Smart suggestions for proper fix ?

Tomi

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* Re: [BUG] Saving attachments containing UTF-8 chars
  2012-10-29 16:31 ` Tomi Ollila
@ 2012-11-18  5:29   ` Ethan Glasser-Camp
  2012-11-18 18:02     ` Ethan Glasser-Camp
  0 siblings, 1 reply; 11+ messages in thread
From: Ethan Glasser-Camp @ 2012-11-18  5:29 UTC (permalink / raw)
  To: Tomi Ollila, Michael Stapelberg, notmuch

Tomi Ollila <tomi.ollila@iki.fi> writes:

> I can verify this bug: I copied 'rawmail' to my mail store and attempted
> to 'w' the attacment and got the same result (after notmuch new).
>
> The saving code first does
> notmuch show --format=raw id:"508953E6.70006@gmail.com"
> which decodes OK on command line, and to the buffer when 
> kill-buffer is outcommented in (with-current-notmuch-show-message ...) 
> macro.

I was able to see this behavior, and Tomi did a good job tracking down
where it was :)

I even see the bytes as presented in the file. When moving point to the
problematic character, and doing M-x describe-char, it says:

          buffer code: #xE2 #x80 #x99
            file code: #xE2 #x80 #x99 (encoded by coding system utf-8)

buffer-file-coding-system is, of course, utf-8.

Writing this buffer using C-x C-w encodes it correctly too. So I think
this is an emacs MIME problem. We call mm-save-part, which calls
mm-save-part-to-file, which calls mm-with-unibyte-buffer. Hmm..

Indeed, it seems that inserting this character into a file that's been
marked "unibyte" using (set-buffer-multibyte nil) turns it into the ^Y
character (ASCII code 0x19 -- the character that comes out in the patch
file). There's probably a technical reason that this should be true, but
I can't think of why that would be.

> I attempted a set of trial-&-error tricks to get the attachment
> saved "correctly", and at least this seems to do the trick:
>
> diff --git a/emacs/notmuch-show.el b/emacs/notmuch-show.el
> index f273eb4..a6a85c0 100644
> --- a/emacs/notmuch-show.el
> +++ b/emacs/notmuch-show.el
> @@ -203,9 +203,11 @@ For example, if you wanted to remove an \"unread\" tag and add a
>       (let ((id (notmuch-show-get-message-id)))
>         (let ((buf (generate-new-buffer (concat "*notmuch-msg-" id "*"))))
>           (with-current-buffer buf
> -	    (call-process notmuch-command nil t nil "show" "--format=raw" id)
> -           ,@body)
> -	 (kill-buffer buf)))))
> +	   (let ((coding-system-for-read 'no-conversion)
> +		 (coding-system-for-write 'no-conversion))
> +	     (call-process notmuch-command nil t nil "show" "--format=raw" id)
> +	     ,@body))))))
> +%%	 (kill-buffer buf)))))
[snip]
> (kill-buffer is outcommented above for testing purposes)
>
> To test this this needs to me evaluated and then the functions
> using this macro (notmuch-show-save-attachments  in this case)
>
> Smart suggestions for proper fix ?

Well, we could limit it just to saving attachments (putting the let
around the with-current-notmuch-show-message). That feels like it could
be right, because intuitively saving an attachment should be done
without any conversions. Or even the above doesn't seem so bad. My vague
feeling is that messages should always be ASCII, or at least mm-* will
interpret it that way, so decoding them into any other character set
might cause problems. Anyone understand character sets?

Ethan

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [BUG] Saving attachments containing UTF-8 chars
  2012-11-18  5:29   ` Ethan Glasser-Camp
@ 2012-11-18 18:02     ` Ethan Glasser-Camp
  0 siblings, 0 replies; 11+ messages in thread
From: Ethan Glasser-Camp @ 2012-11-18 18:02 UTC (permalink / raw)
  To: Ethan Glasser-Camp, Tomi Ollila, Michael Stapelberg, notmuch

Ethan Glasser-Camp <ethan.glasser.camp@gmail.com> writes:

> Writing this buffer using C-x C-w encodes it correctly too. So I think
> this is an emacs MIME problem. We call mm-save-part, which calls
> mm-save-part-to-file, which calls mm-with-unibyte-buffer. Hmm..
>
> Indeed, it seems that inserting this character into a file that's been
> marked "unibyte" using (set-buffer-multibyte nil) turns it into the ^Y
> character (ASCII code 0x19 -- the character that comes out in the patch
> file). There's probably a technical reason that this should be true, but
> I can't think of why that would be.

The more I think about this, the more convinced I become that this is a
bug in emacs's multibyte handling. I've filed a bug, see:

http://debbugs.gnu.org/cgi/bugreport.cgi?bug=12925

But I think Tomi's going to formalize his hacky patch and send that out
later too. When he does, it has my +1.

Ethan

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [BUG] Saving attachments containing UTF-8 chars
  2012-10-29 13:30 [BUG] Saving attachments containing UTF-8 chars Michael Stapelberg
  2012-10-29 16:31 ` Tomi Ollila
@ 2012-11-27  2:11 ` David Bremner
  2012-11-30  8:51   ` Michael Stapelberg
  1 sibling, 1 reply; 11+ messages in thread
From: David Bremner @ 2012-11-27  2:11 UTC (permalink / raw)
  To: Michael Stapelberg, notmuch

Michael Stapelberg <michael+nm@stapelberg.de> writes:

> Hello,
>
> attached you can find a message which seems to trigger a bug somewhere
> in my notmuch setup. The message has been sent to me and includes a
> patchfile, which, when saved using the "w" key in notmuch-emacs, cannot
> be applied.
>

Hi Michael;

In principle this should be fixed in current git master.

d

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [BUG] Saving attachments containing UTF-8 chars
  2012-11-27  2:11 ` David Bremner
@ 2012-11-30  8:51   ` Michael Stapelberg
  2012-11-30  9:34     ` Mark Walters
  0 siblings, 1 reply; 11+ messages in thread
From: Michael Stapelberg @ 2012-11-30  8:51 UTC (permalink / raw)
  To: David Bremner, notmuch

Hi David,

David Bremner <david@tethera.net> writes:
> In principle this should be fixed in current git master.
I just tested this and you are right, it does work in current git.

However, since replying to mail doesn’t work, I can’t upgrade yet :-). I
suppose that will be fixed (tests fail, too) at some point in time.

-- 
Best regards,
Michael

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [BUG] Saving attachments containing UTF-8 chars
  2012-11-30  8:51   ` Michael Stapelberg
@ 2012-11-30  9:34     ` Mark Walters
  2012-11-30 11:14       ` Michael Stapelberg
  0 siblings, 1 reply; 11+ messages in thread
From: Mark Walters @ 2012-11-30  9:34 UTC (permalink / raw)
  To: Michael Stapelberg, David Bremner, notmuch


Hi

Michael Stapelberg <michael+nm@stapelberg.de> writes:
> David Bremner <david@tethera.net> writes:
>> In principle this should be fixed in current git master.
> I just tested this and you are right, it does work in current git.
>
> However, since replying to mail doesn’t work, I can’t upgrade yet :-). I
> suppose that will be fixed (tests fail, too) at some point in time.

I don't think that we expect any tests to fail: they all pass for
me. Can you say more about what is failing?

Many thanks

Mark

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [BUG] Saving attachments containing UTF-8 chars
  2012-11-30  9:34     ` Mark Walters
@ 2012-11-30 11:14       ` Michael Stapelberg
  2012-11-30 13:02         ` Mark Walters
  2012-11-30 13:12         ` Tomi Ollila
  0 siblings, 2 replies; 11+ messages in thread
From: Michael Stapelberg @ 2012-11-30 11:14 UTC (permalink / raw)
  To: Mark Walters, David Bremner, notmuch

[-- Attachment #1: Type: text/plain, Size: 355 bytes --]

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

[-- Attachment #2: nm-test-output.txt --]
[-- Type: text/plain, Size: 52172 bytes --]

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.

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [BUG] Saving attachments containing UTF-8 chars
  2012-11-30 11:14       ` Michael Stapelberg
@ 2012-11-30 13:02         ` Mark Walters
  2012-11-30 13:25           ` Michael Stapelberg
  2012-11-30 13:12         ` Tomi Ollila
  1 sibling, 1 reply; 11+ messages in thread
From: Mark Walters @ 2012-11-30 13:02 UTC (permalink / raw)
  To: Michael Stapelberg, David Bremner, notmuch


Hi

Do you have some patch applied which is outputting 
"address_match <something>" ? 

Best wishes

Mark

Michael Stapelberg <michael+nm@stapelberg.de> writes:

> 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.

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [BUG] Saving attachments containing UTF-8 chars
  2012-11-30 11:14       ` Michael Stapelberg
  2012-11-30 13:02         ` Mark Walters
@ 2012-11-30 13:12         ` Tomi Ollila
  1 sibling, 0 replies; 11+ messages in thread
From: Tomi Ollila @ 2012-11-30 13:12 UTC (permalink / raw)
  To: Michael Stapelberg, notmuch

On Fri, Nov 30 2012, Michael Stapelberg wrote:

> 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.

What version of gmime are you using ?

>
> -- 
> Best regards,
> Michael

Tomi

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [BUG] Saving attachments containing UTF-8 chars
  2012-11-30 13:02         ` Mark Walters
@ 2012-11-30 13:25           ` Michael Stapelberg
  0 siblings, 0 replies; 11+ messages in thread
From: Michael Stapelberg @ 2012-11-30 13:25 UTC (permalink / raw)
  To: Mark Walters, David Bremner, notmuch

Hi Mark,

Mark Walters <markwalters1009@gmail.com> writes:
> Do you have some patch applied which is outputting 
> "address_match <something>" ? 
I had indeed. Thanks for pointing it out and sorry for the noise :-).

After a git reset --hard, everything works as expected.

-- 
Best regards,
Michael

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2012-11-30 13:25 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-10-29 13:30 [BUG] Saving attachments containing UTF-8 chars Michael Stapelberg
2012-10-29 16:31 ` Tomi Ollila
2012-11-18  5:29   ` Ethan Glasser-Camp
2012-11-18 18:02     ` Ethan Glasser-Camp
2012-11-27  2:11 ` David Bremner
2012-11-30  8:51   ` Michael Stapelberg
2012-11-30  9:34     ` Mark Walters
2012-11-30 11:14       ` Michael Stapelberg
2012-11-30 13:02         ` Mark Walters
2012-11-30 13:25           ` Michael Stapelberg
2012-11-30 13:12         ` Tomi Ollila

Code repositories for project(s) associated with this public inbox

	https://yhetil.org/notmuch.git/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).