--- /dev/null
+Return-Path: <amdragon@mit.edu>\r
+X-Original-To: notmuch@notmuchmail.org\r
+Delivered-To: notmuch@notmuchmail.org\r
+Received: from localhost (localhost [127.0.0.1])\r
+ by olra.theworths.org (Postfix) with ESMTP id C4ADE431FCB\r
+ for <notmuch@notmuchmail.org>; Sun, 8 Dec 2013 16:25:32 -0800 (PST)\r
+X-Virus-Scanned: Debian amavisd-new at olra.theworths.org\r
+X-Spam-Flag: NO\r
+X-Spam-Score: -0.7\r
+X-Spam-Level: \r
+X-Spam-Status: No, score=-0.7 tagged_above=-999 required=5\r
+ tests=[RCVD_IN_DNSWL_LOW=-0.7] autolearn=disabled\r
+Received: from olra.theworths.org ([127.0.0.1])\r
+ by localhost (olra.theworths.org [127.0.0.1]) (amavisd-new, port 10024)\r
+ with ESMTP id bD2RSf3HCdUR for <notmuch@notmuchmail.org>;\r
+ Sun, 8 Dec 2013 16:25:25 -0800 (PST)\r
+Received: from dmz-mailsec-scanner-1.mit.edu (dmz-mailsec-scanner-1.mit.edu\r
+ [18.9.25.12])\r
+ (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits))\r
+ (No client certificate requested)\r
+ by olra.theworths.org (Postfix) with ESMTPS id F1843431FC3\r
+ for <notmuch@notmuchmail.org>; Sun, 8 Dec 2013 16:25:24 -0800 (PST)\r
+X-AuditID: 1209190c-b7f7f6d000000bbd-11-52a50df32557\r
+Received: from mailhub-auth-2.mit.edu ( [18.7.62.36])\r
+ (using TLS with cipher AES256-SHA (256/256 bits))\r
+ (Client did not present a certificate)\r
+ by dmz-mailsec-scanner-1.mit.edu (Symantec Messaging Gateway) with SMTP\r
+ id 92.5A.03005.3FD05A25; Sun, 8 Dec 2013 19:25:24 -0500 (EST)\r
+Received: from outgoing.mit.edu (outgoing-auth-1.mit.edu [18.9.28.11])\r
+ by mailhub-auth-2.mit.edu (8.13.8/8.9.2) with ESMTP id rB90PMrO009392; \r
+ Sun, 8 Dec 2013 19:25:23 -0500\r
+Received: from awakening.csail.mit.edu (awakening.csail.mit.edu [18.26.4.91])\r
+ (authenticated bits=0)\r
+ (User authenticated as amdragon@ATHENA.MIT.EDU)\r
+ by outgoing.mit.edu (8.13.8/8.12.4) with ESMTP id rB90PKRo005885\r
+ (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NOT);\r
+ Sun, 8 Dec 2013 19:25:21 -0500\r
+Received: from amthrax by awakening.csail.mit.edu with local (Exim 4.80)\r
+ (envelope-from <amdragon@mit.edu>)\r
+ id 1Vpof1-0006Nu-Pb; Sun, 08 Dec 2013 19:25:19 -0500\r
+Date: Sun, 8 Dec 2013 19:25:19 -0500\r
+From: Austin Clements <amdragon@MIT.EDU>\r
+To: David Bremner <david@tethera.net>\r
+Subject: Re: [PATCH 3/4] test: sanitize dates in emacs, raw, and text output\r
+Message-ID: <20131209002519.GH8854@mit.edu>\r
+References: <1386517946-22054-1-git-send-email-david@tethera.net>\r
+ <1386517946-22054-4-git-send-email-david@tethera.net>\r
+MIME-Version: 1.0\r
+Content-Type: text/plain; charset=utf-8\r
+Content-Disposition: inline\r
+Content-Transfer-Encoding: 8bit\r
+In-Reply-To: <1386517946-22054-4-git-send-email-david@tethera.net>\r
+User-Agent: Mutt/1.5.21 (2010-09-15)\r
+X-Brightmail-Tracker:\r
+ H4sIAAAAAAAAA+NgFlrGKsWRmVeSWpSXmKPExsUixG6novuFd2mQwYHJzBY3WrsZLa7fnMns\r
+ wOTxbNUtZo8th94zBzBFcdmkpOZklqUW6dslcGVc+NfFXHDIuWLBo/lsDYzLzLsYOTkkBEwk\r
+ rp/sZ4ewxSQu3FvP1sXIxSEkMJtJ4tCFM8wgCSGBDYwSu78bQCROMUmsePGTFcJZwigxY85H\r
+ JpAqFgEViR+rl7KB2GwCGhLb9i9nBLFFBFQlrm6bDBZnFpCW+Pa7GaxeWMBHYs+mq2BxXgFt\r
+ id+XbwFt4wAaWinx7mAVRFhQ4uTMJywQreoSf+ZdAisBGbP8HwdEWF6ieetssDs5BZwk1my9\r
+ APaMKNA1U05uY5vAKDwLyaRZSCbNQpg0C8mkBYwsqxhlU3KrdHMTM3OKU5N1i5MT8/JSi3QN\r
+ 9XIzS/RSU0o3MYKigFOSZwfjm4NKhxgFOBiVeHgDmJcGCbEmlhVX5h5ilORgUhLlncwNFOJL\r
+ yk+pzEgszogvKs1JLT7EKMHBrCTCq3RiSZAQb0piZVVqUT5MSpqDRUmc9yaHfZCQQHpiSWp2\r
+ ampBahFMVoaDQ0mC9wQP0FDBotT01Iq0zJwShDQTByfIcB6g4d0gi3mLCxJzizPTIfKnGHU5\r
+ vtz5+I1RiCUvPy9VSpx3BsggAZCijNI8uDmw5PWKURzoLWHe7SBVPMDEBzfpFdASJqAlk64u\r
+ AllSkoiQkmpg1OWvPHby4qzHd79NepkmuXy3Yq7RyY17TLr8KnmOTzybqflXavM7wXtaEx3U\r
+ b9grFruIdAdesXA4tOZh/Kktretsg5WaDyrFCHXXbtgpL/Njkdk/y9h/2sfNDgVGRzR8U12U\r
+ cUL3UtSvHY8eT06Z/P+zz7F/P/beXqMQp//nT33T5izpR/XrXZRYijMSDbWYi4oTAchrY6w5 AwAA\r
+Cc: notmuch@notmuchmail.org\r
+X-BeenThere: notmuch@notmuchmail.org\r
+X-Mailman-Version: 2.1.13\r
+Precedence: list\r
+List-Id: "Use and development of the notmuch mail system."\r
+ <notmuch.notmuchmail.org>\r
+List-Unsubscribe: <http://notmuchmail.org/mailman/options/notmuch>,\r
+ <mailto:notmuch-request@notmuchmail.org?subject=unsubscribe>\r
+List-Archive: <http://notmuchmail.org/pipermail/notmuch>\r
+List-Post: <mailto:notmuch@notmuchmail.org>\r
+List-Help: <mailto:notmuch-request@notmuchmail.org?subject=help>\r
+List-Subscribe: <http://notmuchmail.org/mailman/listinfo/notmuch>,\r
+ <mailto:notmuch-request@notmuchmail.org?subject=subscribe>\r
+X-List-Received-Date: Mon, 09 Dec 2013 00:25:32 -0000\r
+\r
+Quoth David Bremner on Dec 08 at 11:52 pm:\r
+> add a new function notmuch_date_sanitize for rfc822-ish things. Add\r
+> date sanitization to notmuch_show_sanitize_all and use it more places.\r
+> \r
+> This is all in aid of a transition to unique timestamps on messages.\r
+> ---\r
+> test/emacs | 12 +++++++-----\r
+> test/emacs-show | 10 ++++++----\r
+> test/encoding | 8 ++++----\r
+> test/raw | 8 ++++----\r
+> test/test-lib.sh | 9 ++++++++-\r
+> 5 files changed, 29 insertions(+), 18 deletions(-)\r
+> \r
+> diff --git a/test/emacs b/test/emacs\r
+> index 456435c..1b1ebe3 100755\r
+> --- a/test/emacs\r
+> +++ b/test/emacs\r
+> @@ -86,15 +86,16 @@ add_message "[subject]=\"message-with-invalid-from\"" \\r
+> "[from]=\"\\\"Invalid \\\" From\\\" <test_suite@notmuchmail.org>\""\r
+> thread=$(notmuch search --output=threads subject:message-with-invalid-from)\r
+> test_emacs "(notmuch-show \"$thread\")\r
+> - (test-output)"\r
+> + (test-output \"OUTPUT.raw\")"\r
+> cat <<EOF >EXPECTED\r
+> "Invalid " (2001-01-05) (inbox)\r
+> Subject: message-with-invalid-from\r
+> To: Notmuch Test Suite <test_suite@notmuchmail.org>\r
+> -Date: Fri, 05 Jan 2001 15:43:57 +0000\r
+> +Date: GENERATED_DATE\r
+> \r
+> This is just a test message (#1)\r
+> EOF\r
+> +notmuch_date_sanitize < OUTPUT.raw > OUTPUT\r
+> test_expect_equal_file OUTPUT EXPECTED\r
+> \r
+> test_begin_subtest "Navigation of notmuch-search to thread view"\r
+> @@ -605,11 +606,11 @@ Q: Why is top-posting such a bad thing?\r
+> A: Top-posting.\r
+> Q: What is the most annoying thing in e-mail?"'\r
+> test_emacs "(notmuch-show \"top-posting\")\r
+> - (test-visible-output)"\r
+> + (test-visible-output \"OUTPUT.raw\")"\r
+> echo "Notmuch Test Suite <test_suite@notmuchmail.org> (2001-01-05) (inbox)\r
+> Subject: The problem with top-posting\r
+> To: Notmuch Test Suite <test_suite@notmuchmail.org>\r
+> -Date: Fri, 05 Jan 2001 15:43:57 +0000\r
+> +Date: GENERATED_DATE\r
+> \r
+> A: Because it messes up the order in which people normally read text.\r
+> Q: Why is top-posting such a bad thing?\r
+> @@ -618,13 +619,14 @@ Q: What is the most annoying thing in e-mail?\r
+> Top Poster <top@poster.com> (2001-01-05) (inbox unread)\r
+> Subject: Re: The problem with top-posting\r
+> To: Notmuch Test Suite <test_suite@notmuchmail.org>\r
+> -Date: Fri, 05 Jan 2001 15:43:57 +0000\r
+> +Date: GENERATED_DATE\r
+> \r
+> Thanks for the advice! I will be sure to put it to good use.\r
+> \r
+> -Top Poster\r
+> \r
+> [ 9-line hidden original message. Click/Enter to show. ]" > EXPECTED\r
+> +notmuch_date_sanitize < OUTPUT.raw > OUTPUT\r
+> test_expect_equal_file OUTPUT EXPECTED\r
+> \r
+> test_begin_subtest "Hiding message in notmuch-show view"\r
+> diff --git a/test/emacs-show b/test/emacs-show\r
+> index ec86333..2a3a535 100755\r
+> --- a/test/emacs-show\r
+> +++ b/test/emacs-show\r
+> @@ -19,13 +19,14 @@ cat <<EOF >EXPECTED\r
+> Notmuch Test Suite <test_suite@notmuchmail.org> (2001-01-05) (inbox)\r
+> Subject: Hiding Original Message region at beginning of a message\r
+> To: Notmuch Test Suite <test_suite@notmuchmail.org>\r
+> -Date: Fri, 05 Jan 2001 15:43:57 +0000\r
+> +Date: GENERATED_DATE\r
+> \r
+> [ 2-line hidden original message. Click/Enter to show. ]\r
+> EOF\r
+> \r
+> test_emacs "(notmuch-show \"id:$message_id\")\r
+> - (test-visible-output)"\r
+> + (test-visible-output \"OUTPUT.raw\")"\r
+> +notmuch_date_sanitize < OUTPUT.raw > OUTPUT\r
+> test_expect_equal_file OUTPUT EXPECTED\r
+> \r
+> test_begin_subtest "Bare subject #1"\r
+> @@ -130,12 +131,12 @@ mid:abc%20def\r
+> mid:abc. mid:abc, mid:abc;"'\r
+> test_emacs '(notmuch-show "id:'$gen_msg_id'")\r
+> (notmuch-test-mark-links)\r
+> - (test-visible-output)'\r
+> + (test-visible-output "OUTPUT.raw")'\r
+> cat <<EOF >EXPECTED\r
+> Notmuch Test Suite <test_suite@notmuchmail.org> (2001-01-05) (inbox)\r
+> Subject: id buttonization\r
+> To: Notmuch Test Suite <test_suite@notmuchmail.org>\r
+> -Date: Fri, 05 Jan 2001 15:43:57 +0000\r
+> +Date: GENERATED_DATE\r
+> \r
+> <<id:abc>>\r
+> <<id:abc.def>>. <<id:abc,def>>, <<id:abc;def>>; <<id:abc:def>>:\r
+> @@ -159,6 +160,7 @@ cid:xxx\r
+> <<mid:abc%20def>>\r
+> <<mid:abc>>. <<mid:abc>>, <<mid:abc>>;\r
+> EOF\r
+> +notmuch_date_sanitize < OUTPUT.raw > OUTPUT\r
+> test_expect_equal_file OUTPUT EXPECTED\r
+> \r
+> \r
+> diff --git a/test/encoding b/test/encoding\r
+> index 8609652..b6c86bf 100755\r
+> --- a/test/encoding\r
+> +++ b/test/encoding\r
+> @@ -5,14 +5,14 @@ test_description="encoding issues"\r
+> test_begin_subtest "Message with text of unknown charset"\r
+> add_message '[content-type]="text/plain; charset=unknown-8bit"' \\r
+> "[body]=irrelevant"\r
+> -output=$(notmuch show id:${gen_msg_id} 2>&1 | notmuch_show_sanitize)\r
+> -test_expect_equal "$output" "\f\r
+message{ id:msg-001@notmuch-test-suite depth:0 match:1 excluded:0 filename:/XXX/mail/msg-001\r
+> +output=$(notmuch show id:${gen_msg_id} 2>&1 | notmuch_show_sanitize_all)\r
+\r
+This may be orthogonal to this series, but I don't get why we have\r
+both notmuch_show_sanitize and notmuch_show_sanitize_all (especially\r
+when the "all" version is not obviously a superset of the non-"all"\r
+version!) Do you have a sense for whether these two functions could\r
+be easily merged?\r
+\r
+> +test_expect_equal "$output" "\f\r
+message{ id:XXXXX depth:0 match:1 excluded:0 filename:XXXXX\r
+> \f\r
+header{\r
+> Notmuch Test Suite <test_suite@notmuchmail.org> (2001-01-05) (inbox unread)\r
+> Subject: Message with text of unknown charset\r
+> From: Notmuch Test Suite <test_suite@notmuchmail.org>\r
+> To: Notmuch Test Suite <test_suite@notmuchmail.org>\r
+> -Date: Fri, 05 Jan 2001 15:43:57 +0000\r
+> +Date: GENERATED_DATE\r
+> \f\r
+header}\r
+> \f\r
+body{\r
+> \f\r
+part{ ID: 1, Content-type: text/plain\r
+> @@ -26,7 +26,7 @@ add_message '[content-type]="text/plain; charset=iso-8859-2"' \\r
+> '[content-transfer-encoding]=8bit' \\r
+> '[subject]="ISO-8859-2 encoded message"' \\r
+> "[body]=$'Czech word tu\350\362\341\350\350\355 means pinguin\'s.'" # ISO-8859-2 characters are generated by shell's escape sequences\r
+> -output=$(notmuch search tučňáččí 2>&1 | notmuch_show_sanitize)\r
+> +output=$(notmuch search tučňáččí 2>&1 | notmuch_show_sanitize_all)\r
+> test_expect_equal "$output" "thread:0000000000000002 2001-01-05 [1/1] Notmuch Test Suite; ISO-8859-2 encoded message (inbox unread)"\r
+> \r
+> test_begin_subtest "RFC 2047 encoded word with spaces"\r
+> diff --git a/test/raw b/test/raw\r
+> index de0b867..daf5735 100755\r
+> --- a/test/raw\r
+> +++ b/test/raw\r
+> @@ -11,22 +11,22 @@ output=$(notmuch show --format=raw "*" 2>&1)\r
+> test_expect_equal "$output" "Error: search term did not match precisely one message."\r
+> \r
+> test_begin_subtest "Show a raw message"\r
+> -output=$(notmuch show --format=raw id:msg-001@notmuch-test-suite)\r
+> +output=$(notmuch show --format=raw id:msg-001@notmuch-test-suite | notmuch_date_sanitize)\r
+> test_expect_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>\r
+> To: Notmuch Test Suite <test_suite@notmuchmail.org>\r
+> Message-Id: <msg-001@notmuch-test-suite>\r
+> Subject: Test message #1\r
+> -Date: Fri, 05 Jan 2001 15:43:57 +0000\r
+> +Date: GENERATED_DATE\r
+> \r
+> This is just a test message (#1)"\r
+> \r
+> test_begin_subtest "Show another raw message"\r
+> -output=$(notmuch show --format=raw id:msg-002@notmuch-test-suite)\r
+> +output=$(notmuch show --format=raw id:msg-002@notmuch-test-suite | notmuch_date_sanitize)\r
+> test_expect_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>\r
+> To: Notmuch Test Suite <test_suite@notmuchmail.org>\r
+> Message-Id: <msg-002@notmuch-test-suite>\r
+> Subject: Test message #2\r
+> -Date: Fri, 05 Jan 2001 15:43:57 +0000\r
+> +Date: GENERATED_DATE\r
+> \r
+> This is just a test message (#2)"\r
+> \r
+> diff --git a/test/test-lib.sh b/test/test-lib.sh\r
+> index 9d2f805..d238c66 100644\r
+> --- a/test/test-lib.sh\r
+> +++ b/test/test-lib.sh\r
+> @@ -618,7 +618,8 @@ notmuch_show_sanitize_all ()\r
+> {\r
+> sed \\r
+> -e 's| filename:.*| filename:XXXXX|' \\r
+> - -e 's| id:[^ ]* | id:XXXXX |'\r
+> + -e 's| id:[^ ]* | id:XXXXX |' \\r
+> + -e 's|Date: Fri, 05 Jan 2001.*|Date: GENERATED_DATE|'\r
+\r
+Rather than (nearly) duplicating the regexp, does it work to pipe this\r
+through notmuch_date_sanitize? Or do the minor differences matter?\r
+\r
+> }\r
+> \r
+> notmuch_json_show_sanitize ()\r
+> @@ -641,6 +642,12 @@ notmuch_emacs_error_sanitize ()\r
+> -e 's/^\[.*\]$/[XXX]/' \\r
+> -e "s|^\(command: \)\{0,1\}/.*/$command|\1YYY/$command|"\r
+> }\r
+> +\r
+> +notmuch_date_sanitize ()\r
+> +{\r
+> + sed \\r
+> + -e 's/^Date: Fri, 05 Jan 2001 .*/Date: GENERATED_DATE/'\r
+> +}\r
+> # End of notmuch helper functions\r
+> \r
+> # Use test_set_prereq to tell that a particular prerequisite is available.\r