--- /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 3835B431FBC\r
+ for <notmuch@notmuchmail.org>; Fri, 27 Jul 2012 21:29:30 -0700 (PDT)\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 Go851ytBFD6k for <notmuch@notmuchmail.org>;\r
+ Fri, 27 Jul 2012 21:29:28 -0700 (PDT)\r
+Received: from dmz-mailsec-scanner-7.mit.edu (DMZ-MAILSEC-SCANNER-7.MIT.EDU\r
+ [18.7.68.36])\r
+ by olra.theworths.org (Postfix) with ESMTP id D2450431FBF\r
+ for <notmuch@notmuchmail.org>; Fri, 27 Jul 2012 21:29:25 -0700 (PDT)\r
+X-AuditID: 12074424-b7f2a6d0000008bf-a3-50136aa4c8b0\r
+Received: from mailhub-auth-4.mit.edu ( [18.7.62.39])\r
+ by dmz-mailsec-scanner-7.mit.edu (Symantec Messaging Gateway) with SMTP\r
+ id D3.1B.02239.4AA63105; Sat, 28 Jul 2012 00:29:24 -0400 (EDT)\r
+Received: from outgoing.mit.edu (OUTGOING-AUTH.MIT.EDU [18.7.22.103])\r
+ by mailhub-auth-4.mit.edu (8.13.8/8.9.2) with ESMTP id q6S4TNoH012931; \r
+ Sat, 28 Jul 2012 00:29:23 -0400\r
+Received: from drake.dyndns.org\r
+ (209-6-116-242.c3-0.arl-ubr1.sbo-arl.ma.cable.rcn.com\r
+ [209.6.116.242]) (authenticated bits=0)\r
+ (User authenticated as amdragon@ATHENA.MIT.EDU)\r
+ by outgoing.mit.edu (8.13.6/8.12.4) with ESMTP id q6S4TKXT027353\r
+ (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=NOT);\r
+ Sat, 28 Jul 2012 00:29:21 -0400 (EDT)\r
+Received: from amthrax by drake.dyndns.org with local (Exim 4.77)\r
+ (envelope-from <amdragon@mit.edu>)\r
+ id 1SuyeW-0002Wn-BK; Sat, 28 Jul 2012 00:29:20 -0400\r
+From: Austin Clements <amdragon@MIT.EDU>\r
+To: notmuch@notmuchmail.org\r
+Subject: [PATCH v2 02/13] test: Remove unnecessary JSON canonicalization\r
+Date: Sat, 28 Jul 2012 00:29:03 -0400\r
+Message-Id: <1343449754-9010-3-git-send-email-amdragon@mit.edu>\r
+X-Mailer: git-send-email 1.7.10\r
+In-Reply-To: <1343449754-9010-1-git-send-email-amdragon@mit.edu>\r
+References: <1343449754-9010-1-git-send-email-amdragon@mit.edu>\r
+MIME-Version: 1.0\r
+Content-Type: text/plain; charset=UTF-8\r
+Content-Transfer-Encoding: 8bit\r
+X-Brightmail-Tracker:\r
+ H4sIAAAAAAAAA+NgFprGKsWRmVeSWpSXmKPExsUixG6nrrskSzjAYEKrosXehnZGi9VzeSyu\r
+ 35zJbPFm5TxWBxaPnbPusnss3rSfzePw14UsHs9W3WIOYInisklJzcksSy3St0vgyjhz7CtL\r
+ wVeXih1vJjM3ML627mLk5JAQMJHoP7+CDcIWk7hwbz2QzcUhJLCPUaL17AZmCGcDo8TP87uh\r
+ Mo+YJGa9WwaVmcsosefeTRaQfjYBDYlt+5czgtgiAtISO+/OZu1i5OBgFsiTeLxWAiQsLJAh\r
+ sWTqA2YQm0VAVeLCMohWXgF7idvb30KdIS/x9H4fmM0p4CCx+eUHsHohoJrdkzewQtQLSpyc\r
+ +YQFYry6xPp5QiBhZqDW5q2zmScwCs1CUjULoWoWkqoFjMyrGGVTcqt0cxMzc4pTk3WLkxPz\r
+ 8lKLdM31cjNL9FJTSjcxgoPfRWUHY/MhpUOMAhyMSjy8p64IBQixJpYVV+YeYpTkYFIS5Y0K\r
+ Fw4Q4kvKT6nMSCzOiC8qzUktPsQowcGsJMK7UxAox5uSWFmVWpQPk5LmYFES572ectNfSCA9\r
+ sSQ1OzW1ILUIJivDwaEkwbs9E6hRsCg1PbUiLTOnBCHNxMEJMpwHaPgakBre4oLE3OLMdIj8\r
+ KUZFKXHexyAJAZBERmkeXC8sOb1iFAd6RZj3GkgVDzCxwXW/AhrMBDTYIloIZHBJIkJKqoFR\r
+ yVnK5kq8u6X+/crS3stvhLZ+WPL0+p/S65d360/atOmG3dzQzf3mcyVNEuJZ/0tMCjdLfVZ9\r
+ Tz1yqeG54txTT81mTHCvXSGQv09tK/vk936nvX6k7s+v87KqFVneV36w7d8F8bPHZA13LEiS\r
+ qLr1IGCK0wyxyNxlW2+u9l2m6sURGm4i0c2oxFKckWioxVxUnAgALkwjeCkDAAA=\r
+Cc: tomi.ollila@iki.fi\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: Sat, 28 Jul 2012 04:29:30 -0000\r
+\r
+Format canonicalization of JSON output is no longer necessary, so\r
+remove it. Value canonicalization (e.g., normalizing thread IDs) is\r
+still necessary, so all of the sanitization functions remain.\r
+---\r
+ test/json | 4 ++--\r
+ test/maildir-sync | 1 -\r
+ test/multipart | 40 ++++++++++------------------------------\r
+ 3 files changed, 12 insertions(+), 33 deletions(-)\r
+\r
+diff --git a/test/json b/test/json\r
+index d86ee46..ac8fa8e 100755\r
+--- a/test/json\r
++++ b/test/json\r
+@@ -18,7 +18,7 @@ test_expect_equal_json "$output" "[[[{\"id\": \"${gen_msg_id}\", \"match\": true\r
+ \r
+ test_begin_subtest "Search message: json"\r
+ add_message "[subject]=\"json-search-subject\"" "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" "[body]=\"json-search-message\""\r
+-output=$(notmuch search --format=json "json-search-message" | notmuch_json_show_sanitize | notmuch_search_sanitize)\r
++output=$(notmuch search --format=json "json-search-message" | notmuch_search_sanitize)\r
+ test_expect_equal_json "$output" "[{\"thread\": \"XXX\",\r
+ \"timestamp\": 946728000,\r
+ \"date_relative\": \"2000-01-01\",\r
+@@ -49,7 +49,7 @@ test_expect_equal_json "$output" "[[[{\"id\": \"$id\", \"match\": true, \"exclud\r
+ \r
+ test_begin_subtest "Search message: json, utf-8"\r
+ add_message "[subject]=\"json-search-utf8-body-sübjéct\"" "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" "[body]=\"jsön-search-méssage\""\r
+-output=$(notmuch search --format=json "jsön-search-méssage" | notmuch_json_show_sanitize | notmuch_search_sanitize)\r
++output=$(notmuch search --format=json "jsön-search-méssage" | notmuch_search_sanitize)\r
+ test_expect_equal_json "$output" "[{\"thread\": \"XXX\",\r
+ \"timestamp\": 946728000,\r
+ \"date_relative\": \"2000-01-01\",\r
+diff --git a/test/maildir-sync b/test/maildir-sync\r
+index b748d04..cd7d241 100755\r
+--- a/test/maildir-sync\r
++++ b/test/maildir-sync\r
+@@ -7,7 +7,6 @@ test_description="maildir synchronization"\r
+ # Avoid including the local value of MAIL_DIR in the result.\r
+ filter_show_json() {\r
+ sed -e "s|${MAIL_DIR}/|MAIL_DIR/|"\r
+- echo\r
+ }\r
+ \r
+ # Create the expected maildir structure\r
+diff --git a/test/multipart b/test/multipart\r
+index 3ccf27f..0527f84 100755\r
+--- a/test/multipart\r
++++ b/test/multipart\r
+@@ -319,10 +319,8 @@ test_expect_success \\r
+ "notmuch show --format=text --part=8 'id:87liy5ap00.fsf@yoom.home.cworth.org'"\r
+ \r
+ test_begin_subtest "--format=json --part=0, full message"\r
+-notmuch show --format=json --part=0 'id:87liy5ap00.fsf@yoom.home.cworth.org' | sed 's|{"id":|\n{"id":|g' >OUTPUT\r
+-echo >>OUTPUT # expect *no* newline at end of output\r
++notmuch show --format=json --part=0 'id:87liy5ap00.fsf@yoom.home.cworth.org' >OUTPUT\r
+ cat <<EOF >EXPECTED\r
+-\r
+ {"id": "87liy5ap00.fsf@yoom.home.cworth.org", "match": true, "excluded": false, "filename": "${MAIL_DIR}/multipart", "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": [\r
+ {"id": 1, "content-type": "multipart/signed", "content": [\r
+ {"id": 2, "content-type": "multipart/mixed", "content": [\r
+@@ -337,10 +335,8 @@ EOF\r
+ test_expect_equal_json "$(cat OUTPUT)" "$(cat EXPECTED)"\r
+ \r
+ test_begin_subtest "--format=json --part=1, message body"\r
+-notmuch show --format=json --part=1 'id:87liy5ap00.fsf@yoom.home.cworth.org' | sed 's|{"id":|\n{"id":|g' >OUTPUT\r
+-echo >>OUTPUT # expect *no* newline at end of output\r
++notmuch show --format=json --part=1 'id:87liy5ap00.fsf@yoom.home.cworth.org' >OUTPUT\r
+ cat <<EOF >EXPECTED\r
+-\r
+ {"id": 1, "content-type": "multipart/signed", "content": [\r
+ {"id": 2, "content-type": "multipart/mixed", "content": [\r
+ {"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": [\r
+@@ -354,10 +350,8 @@ EOF\r
+ test_expect_equal_json "$(cat OUTPUT)" "$(cat EXPECTED)"\r
+ \r
+ test_begin_subtest "--format=json --part=2, multipart/mixed"\r
+-notmuch show --format=json --part=2 'id:87liy5ap00.fsf@yoom.home.cworth.org' | sed 's|{"id":|\n{"id":|g' >OUTPUT\r
+-echo >>OUTPUT # expect *no* newline at end of output\r
++notmuch show --format=json --part=2 'id:87liy5ap00.fsf@yoom.home.cworth.org' >OUTPUT\r
+ cat <<EOF >EXPECTED\r
+-\r
+ {"id": 2, "content-type": "multipart/mixed", "content": [\r
+ {"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": [\r
+ {"id": 4, "content-type": "multipart/alternative", "content": [\r
+@@ -369,10 +363,8 @@ EOF\r
+ test_expect_equal_json "$(cat OUTPUT)" "$(cat EXPECTED)"\r
+ \r
+ test_begin_subtest "--format=json --part=3, rfc822 part"\r
+-notmuch show --format=json --part=3 'id:87liy5ap00.fsf@yoom.home.cworth.org' | sed 's|{"id":|\n{"id":|g' >OUTPUT\r
+-echo >>OUTPUT # expect *no* newline at end of output\r
++notmuch show --format=json --part=3 'id:87liy5ap00.fsf@yoom.home.cworth.org' >OUTPUT\r
+ cat <<EOF >EXPECTED\r
+-\r
+ {"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": [\r
+ {"id": 4, "content-type": "multipart/alternative", "content": [\r
+ {"id": 5, "content-type": "text/html"}, \r
+@@ -381,10 +373,8 @@ EOF\r
+ test_expect_equal_json "$(cat OUTPUT)" "$(cat EXPECTED)"\r
+ \r
+ test_begin_subtest "--format=json --part=4, rfc822's multipart/alternative"\r
+-notmuch show --format=json --part=4 'id:87liy5ap00.fsf@yoom.home.cworth.org' | sed 's|{"id":|\n{"id":|g' >OUTPUT\r
+-echo >>OUTPUT # expect *no* newline at end of output\r
++notmuch show --format=json --part=4 'id:87liy5ap00.fsf@yoom.home.cworth.org' >OUTPUT\r
+ cat <<EOF >EXPECTED\r
+-\r
+ {"id": 4, "content-type": "multipart/alternative", "content": [\r
+ {"id": 5, "content-type": "text/html"}, \r
+ {"id": 6, "content-type": "text/plain", "content": "This is an embedded message, with a multipart/alternative part.\n"}]}\r
+@@ -392,46 +382,36 @@ EOF\r
+ test_expect_equal_json "$(cat OUTPUT)" "$(cat EXPECTED)"\r
+ \r
+ test_begin_subtest "--format=json --part=5, rfc822's html part"\r
+-notmuch show --format=json --part=5 'id:87liy5ap00.fsf@yoom.home.cworth.org' | sed 's|{"id":|\n{"id":|g' >OUTPUT\r
+-echo >>OUTPUT # expect *no* newline at end of output\r
++notmuch show --format=json --part=5 'id:87liy5ap00.fsf@yoom.home.cworth.org' >OUTPUT\r
+ cat <<EOF >EXPECTED\r
+-\r
+ {"id": 5, "content-type": "text/html"}\r
+ EOF\r
+ test_expect_equal_json "$(cat OUTPUT)" "$(cat EXPECTED)"\r
+ \r
+ test_begin_subtest "--format=json --part=6, rfc822's text part"\r
+-notmuch show --format=json --part=6 'id:87liy5ap00.fsf@yoom.home.cworth.org' | sed 's|{"id":|\n{"id":|g' >OUTPUT\r
+-echo >>OUTPUT # expect *no* newline at end of output\r
++notmuch show --format=json --part=6 'id:87liy5ap00.fsf@yoom.home.cworth.org' >OUTPUT\r
+ cat <<EOF >EXPECTED\r
+-\r
+ {"id": 6, "content-type": "text/plain", "content": "This is an embedded message, with a multipart/alternative part.\n"}\r
+ EOF\r
+ test_expect_equal_json "$(cat OUTPUT)" "$(cat EXPECTED)"\r
+ \r
+ test_begin_subtest "--format=json --part=7, inline attachment"\r
+-notmuch show --format=json --part=7 'id:87liy5ap00.fsf@yoom.home.cworth.org' | sed 's|{"id":|\n{"id":|g' >OUTPUT\r
+-echo >>OUTPUT # expect *no* newline at end of output\r
++notmuch show --format=json --part=7 'id:87liy5ap00.fsf@yoom.home.cworth.org' >OUTPUT\r
+ cat <<EOF >EXPECTED\r
+-\r
+ {"id": 7, "content-type": "text/plain", "filename": "attachment", "content": "This is a text attachment.\n"}\r
+ EOF\r
+ test_expect_equal_json "$(cat OUTPUT)" "$(cat EXPECTED)"\r
+ \r
+ test_begin_subtest "--format=json --part=8, plain text part"\r
+-notmuch show --format=json --part=8 'id:87liy5ap00.fsf@yoom.home.cworth.org' | sed 's|{"id":|\n{"id":|g' >OUTPUT\r
+-echo >>OUTPUT # expect *no* newline at end of output\r
++notmuch show --format=json --part=8 'id:87liy5ap00.fsf@yoom.home.cworth.org' >OUTPUT\r
+ cat <<EOF >EXPECTED\r
+-\r
+ {"id": 8, "content-type": "text/plain", "content": "And this message is signed.\n\n-Carl\n"}\r
+ EOF\r
+ test_expect_equal_json "$(cat OUTPUT)" "$(cat EXPECTED)"\r
+ \r
+ test_begin_subtest "--format=json --part=9, pgp signature (unverified)"\r
+-notmuch show --format=json --part=9 'id:87liy5ap00.fsf@yoom.home.cworth.org' | sed 's|{"id":|\n{"id":|g' >OUTPUT\r
+-echo >>OUTPUT # expect *no* newline at end of output\r
++notmuch show --format=json --part=9 'id:87liy5ap00.fsf@yoom.home.cworth.org' >OUTPUT\r
+ cat <<EOF >EXPECTED\r
+-\r
+ {"id": 9, "content-type": "application/pgp-signature"}\r
+ EOF\r
+ test_expect_equal_json "$(cat OUTPUT)" "$(cat EXPECTED)"\r
+-- \r
+1.7.10\r
+\r