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