[PATCH v2] test: Add test for messages with missing headers
authorAustin Clements <amdragon@MIT.EDU>
Wed, 8 Aug 2012 01:28:33 +0000 (21:28 +2000)
committerW. Trevor King <wking@tremily.us>
Fri, 7 Nov 2014 17:48:58 +0000 (09:48 -0800)
4a/73b994a85b74adc779e78ca6287af16c47943e [new file with mode: 0644]

diff --git a/4a/73b994a85b74adc779e78ca6287af16c47943e b/4a/73b994a85b74adc779e78ca6287af16c47943e
new file mode 100644 (file)
index 0000000..ebd4113
--- /dev/null
@@ -0,0 +1,282 @@
+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 C1F4E431FAF\r
+       for <notmuch@notmuchmail.org>; Tue,  7 Aug 2012 18:28:41 -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 thGjkK+KLwEq for <notmuch@notmuchmail.org>;\r
+       Tue,  7 Aug 2012 18:28:41 -0700 (PDT)\r
+Received: from dmz-mailsec-scanner-2.mit.edu (DMZ-MAILSEC-SCANNER-2.MIT.EDU\r
+       [18.9.25.13])\r
+       by olra.theworths.org (Postfix) with ESMTP id D40CB431FAE\r
+       for <notmuch@notmuchmail.org>; Tue,  7 Aug 2012 18:28:40 -0700 (PDT)\r
+X-AuditID: 1209190d-b7fd56d000000933-76-5021c0c57359\r
+Received: from mailhub-auth-2.mit.edu ( [18.7.62.36])\r
+       by dmz-mailsec-scanner-2.mit.edu (Symantec Messaging Gateway) with SMTP\r
+       id 78.03.02355.5C0C1205; Tue,  7 Aug 2012 21:28:37 -0400 (EDT)\r
+Received: from outgoing.mit.edu (OUTGOING-AUTH.MIT.EDU [18.7.22.103])\r
+       by mailhub-auth-2.mit.edu (8.13.8/8.9.2) with ESMTP id q781SaPr007205; \r
+       Tue, 7 Aug 2012 21:28:36 -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 q781SYU6021306\r
+       (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=NOT);\r
+       Tue, 7 Aug 2012 21:28:36 -0400 (EDT)\r
+Received: from amthrax by drake.dyndns.org with local (Exim 4.77)\r
+       (envelope-from <amdragon@mit.edu>)\r
+       id 1Syv4c-000276-LB; Tue, 07 Aug 2012 21:28:34 -0400\r
+From: Austin Clements <amdragon@MIT.EDU>\r
+To: notmuch@notmuchmail.org\r
+Subject: [PATCH v2] test: Add test for messages with missing headers\r
+Date: Tue,  7 Aug 2012 21:28:33 -0400\r
+Message-Id: <1344389313-7886-1-git-send-email-amdragon@mit.edu>\r
+X-Mailer: git-send-email 1.7.10\r
+In-Reply-To: <1344374501-28185-1-git-send-email-amdragon@mit.edu>\r
+References: <1344374501-28185-1-git-send-email-amdragon@mit.edu>\r
+X-Brightmail-Tracker:\r
+ H4sIAAAAAAAAA+NgFtrAIsWRmVeSWpSXmKPExsUixG6nonv0gGKAQdcBBYvrN2cyOzB6PFt1\r
+       izmAMYrLJiU1J7MstUjfLoErY90rmYK/WhVbHl9kbGCcJdPFyMkhIWAicXj5VzYIW0ziwr31\r
+       QDYXh5DAPkaJo12T2CGc9YwSi17uZoVwHjJJ3HrRzgzSIiQwl1Hi+vdcEJtNQENi2/7ljCC2\r
+       iIC0xM67s4EaODiYBdQk/nSpgISFBVwkWq7fBdvGIqAqMfv7KbAxvAL2Ev8efWWHuEJe4un9\r
+       PjaQVk4BR4nf/yMgNjlITFzzi20CI/8CRoZVjLIpuVW6uYmZOcWpybrFyYl5ealFukZ6uZkl\r
+       eqkppZsYQQHDKcm7g/HdQaVDjAIcjEo8vFHJigFCrIllxZW5hxglOZiURHnv7QUK8SXlp1Rm\r
+       JBZnxBeV5qQWH2KU4GBWEuFtawXK8aYkVlalFuXDpKQ5WJTEea+k3PQXEkhPLEnNTk0tSC2C\r
+       ycpwcChJ8OoCI0NIsCg1PbUiLTOnBCHNxMEJMpwHaLg7SA1vcUFibnFmOkT+FKOilDivE0hC\r
+       ACSRUZoH1wuL6FeM4kCvCPPygFTxAJMBXPcroMFMQIO95eVABpckIqSkGhglU5kD1P0urT5S\r
+       Z/smUet+ww39V+9V7jJW62Y/V55tte1MgYpjjap/YM/m2LyYH7e3uhfMefCLb/7HlxLHjxpE\r
+       qlhU7FGUml9kVLxue+0l4/nFmYUJN18cDHIIbJNPLL+9pLk/YsOMpyqzV+zScZh1/NjszZni\r
+       arnP5NbWzdpzQ2XydMvcVcJKLMUZiYZazEXFiQD3pEo1wwIAAA==\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: Wed, 08 Aug 2012 01:28:41 -0000\r
+\r
+Currently the JSON tests for search and show are broken because\r
+notmuch attempts to dereference a NULL pointer.\r
+---\r
+This version fixes the "Show: text" test so that it sanitize its\r
+output and doesn't hard-code my test paths.\r
+\r
+ test/missing-headers |  162 ++++++++++++++++++++++++++++++++++++++++++++++++++\r
+ test/notmuch-test    |    1 +\r
+ 2 files changed, 163 insertions(+)\r
+ create mode 100755 test/missing-headers\r
+\r
+diff --git a/test/missing-headers b/test/missing-headers\r
+new file mode 100755\r
+index 0000000..e79f922\r
+--- /dev/null\r
++++ b/test/missing-headers\r
+@@ -0,0 +1,162 @@\r
++#!/usr/bin/env bash\r
++test_description='messages with missing headers'\r
++. ./test-lib.sh\r
++\r
++# Notmuch requires at least one of from, subject, or to or it will\r
++# ignore the file.  Generate two messages so that together they cover\r
++# all possible missing headers.  We also give one of the messages a\r
++# date to ensure stable result ordering.\r
++\r
++cat <<EOF > "${MAIL_DIR}/msg-2"\r
++To: Notmuch Test Suite <test_suite@notmuchmail.org>\r
++Date: Fri, 05 Jan 2001 15:43:57 +0000\r
++\r
++Body\r
++EOF\r
++\r
++cat <<EOF > "${MAIL_DIR}/msg-1"\r
++From: Notmuch Test Suite <test_suite@notmuchmail.org>\r
++\r
++Body\r
++EOF\r
++\r
++NOTMUCH_NEW\r
++\r
++test_begin_subtest "Search: text"\r
++output=$(notmuch search '*' | notmuch_search_sanitize)\r
++test_expect_equal "$output" "\\r
++thread:XXX   2001-01-05 [1/1] (null);  (inbox unread)\r
++thread:XXX   1970-01-01 [1/1] Notmuch Test Suite;  (inbox unread)"\r
++\r
++test_begin_subtest "Search: json"\r
++test_subtest_known_broken\r
++output=$(notmuch search --format=json '*' | notmuch_search_sanitize)\r
++test_expect_equal_json "$output" '\r
++[\r
++    {\r
++        "authors": "",\r
++        "date_relative": "2001-01-05",\r
++        "matched": 1,\r
++        "subject": "",\r
++        "tags": [\r
++            "inbox",\r
++            "unread"\r
++        ],\r
++        "thread": "XXX",\r
++        "timestamp": 978709437,\r
++        "total": 1\r
++    },\r
++    {\r
++        "authors": "Notmuch Test Suite",\r
++        "date_relative": "1970-01-01",\r
++        "matched": 1,\r
++        "subject": "",\r
++        "tags": [\r
++            "inbox",\r
++            "unread"\r
++        ],\r
++        "thread": "XXX",\r
++        "timestamp": 0,\r
++        "total": 1\r
++    }\r
++]'\r
++\r
++test_begin_subtest "Show: text"\r
++output=$(notmuch show '*' | notmuch_show_sanitize)\r
++test_expect_equal "$output" "\\r
++\f\r
+message{ id:notmuch-sha1-7a6e4eac383ef958fcd3ebf2143db71b8ff01161 depth:0 match:1 excluded:0 filename:/XXX/mail/msg-2\r
++\f\r
+header{\r
++ (2001-01-05) (inbox unread)\r
++Subject: (null)\r
++From: (null)\r
++To: Notmuch Test Suite <test_suite@notmuchmail.org>\r
++Date: Fri, 05 Jan 2001 15:43:57 +0000\r
++\f\r
+header}\r
++\f\r
+body{\r
++\f\r
+part{ ID: 1, Content-type: text/plain\r
++Body\r
++\f\r
+part}\r
++\f\r
+body}\r
++\f\r
+message}\r
++\f\r
+message{ id:notmuch-sha1-ca55943aff7a72baf2ab21fa74fab3d632401334 depth:0 match:1 excluded:0 filename:/XXX/mail/msg-1\r
++\f\r
+header{\r
++Notmuch Test Suite <test_suite@notmuchmail.org> (1970-01-01) (inbox unread)\r
++Subject: (null)\r
++From: Notmuch Test Suite <test_suite@notmuchmail.org>\r
++Date: Thu, 01 Jan 1970 00:00:00 +0000\r
++\f\r
+header}\r
++\f\r
+body{\r
++\f\r
+part{ ID: 1, Content-type: text/plain\r
++Body\r
++\f\r
+part}\r
++\f\r
+body}\r
++\f\r
+message}"\r
++\r
++test_begin_subtest "Show: json"\r
++test_subtest_known_broken\r
++output=$(notmuch show --format=json '*' | notmuch_json_show_sanitize)\r
++test_expect_equal_json "$output" '\r
++[\r
++    [\r
++        [\r
++            {\r
++                "body": [\r
++                    {\r
++                        "content": "Body\n",\r
++                        "content-type": "text/plain",\r
++                        "id": 1\r
++                    }\r
++                ],\r
++                "date_relative": "2001-01-05",\r
++                "excluded": false,\r
++                "filename": "YYYYY",\r
++                "headers": {\r
++                    "Date": "Fri, 05 Jan 2001 15:43:57 +0000",\r
++                    "From": "",\r
++                    "Subject": "",\r
++                    "To": "Notmuch Test Suite <test_suite@notmuchmail.org>"\r
++                },\r
++                "id": "XXXXX",\r
++                "match": true,\r
++                "tags": [\r
++                    "inbox",\r
++                    "unread"\r
++                ],\r
++                "timestamp": 978709437\r
++            },\r
++            []\r
++        ]\r
++    ],\r
++    [\r
++        [\r
++            {\r
++                "body": [\r
++                    {\r
++                        "content": "Body\n",\r
++                        "content-type": "text/plain",\r
++                        "id": 1\r
++                    }\r
++                ],\r
++                "date_relative": "1970-01-01",\r
++                "excluded": false,\r
++                "filename": "YYYYY",\r
++                "headers": {\r
++                    "Date": "Thu, 01 Jan 1970 00:00:00 +0000",\r
++                    "From": "Notmuch Test Suite <test_suite@notmuchmail.org>",\r
++                    "Subject": ""\r
++                },\r
++                "id": "XXXXX",\r
++                "match": true,\r
++                "tags": [\r
++                    "inbox",\r
++                    "unread"\r
++                ],\r
++                "timestamp": 0\r
++            },\r
++            []\r
++        ]\r
++    ]\r
++]'\r
++\r
++\r
++test_done\r
+diff --git a/test/notmuch-test b/test/notmuch-test\r
+index ea39dfc..cc732c3 100755\r
+--- a/test/notmuch-test\r
++++ b/test/notmuch-test\r
+@@ -59,6 +59,7 @@ TESTS="\r
+   emacs-address-cleaning\r
+   emacs-hello\r
+   emacs-show\r
++  missing-headers\r
+ "\r
+ TESTS=${NOTMUCH_TESTS:=$TESTS}\r
\r
+-- \r
+1.7.10\r
+\r