Ensure that "notmuch reply" succeeds during testing.

In some (bad!) cases, "notmuch reply" might fail, or might even
segfault.  If this happens, it indicates a bug, and the test suite
should notice it.
This commit is contained in:
Daniel Kahn Gillmor 2017-07-14 22:14:22 +02:00 committed by David Bremner
parent cd853915ec
commit 23a4d09773

View file

@ -9,7 +9,7 @@ add_message '[from]="Sender <sender@example.com>"' \
'[date]="Tue, 05 Jan 2010 15:43:56 -0000"' \ '[date]="Tue, 05 Jan 2010 15:43:56 -0000"' \
'[body]="basic reply test"' '[body]="basic reply test"'
output=$(notmuch reply id:${gen_msg_id}) output=$(notmuch reply id:${gen_msg_id} 2>&1 && echo OK)
test_expect_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org> test_expect_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
Subject: Re: notmuch-reply-test Subject: Re: notmuch-reply-test
To: Sender <sender@example.com> To: Sender <sender@example.com>
@ -17,7 +17,8 @@ In-Reply-To: <${gen_msg_id}>
References: <${gen_msg_id}> References: <${gen_msg_id}>
On Tue, 05 Jan 2010 15:43:56 -0000, Sender <sender@example.com> wrote: On Tue, 05 Jan 2010 15:43:56 -0000, Sender <sender@example.com> wrote:
> basic reply test" > basic reply test
OK"
test_begin_subtest "Multiple recipients" test_begin_subtest "Multiple recipients"
add_message '[from]="Sender <sender@example.com>"' \ add_message '[from]="Sender <sender@example.com>"' \
@ -26,7 +27,7 @@ add_message '[from]="Sender <sender@example.com>"' \
'[date]="Tue, 05 Jan 2010 15:43:56 -0000"' \ '[date]="Tue, 05 Jan 2010 15:43:56 -0000"' \
'[body]="Multiple recipients"' '[body]="Multiple recipients"'
output=$(notmuch reply id:${gen_msg_id}) output=$(notmuch reply id:${gen_msg_id} 2>&1 && echo OK)
test_expect_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org> test_expect_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
Subject: Re: notmuch-reply-test Subject: Re: notmuch-reply-test
To: Sender <sender@example.com>, Someone Else <someone@example.com> To: Sender <sender@example.com>, Someone Else <someone@example.com>
@ -34,7 +35,8 @@ In-Reply-To: <${gen_msg_id}>
References: <${gen_msg_id}> References: <${gen_msg_id}>
On Tue, 05 Jan 2010 15:43:56 -0000, Sender <sender@example.com> wrote: On Tue, 05 Jan 2010 15:43:56 -0000, Sender <sender@example.com> wrote:
> Multiple recipients" > Multiple recipients
OK"
test_begin_subtest "Reply with CC" test_begin_subtest "Reply with CC"
add_message '[from]="Sender <sender@example.com>"' \ add_message '[from]="Sender <sender@example.com>"' \
@ -44,7 +46,7 @@ add_message '[from]="Sender <sender@example.com>"' \
'[date]="Tue, 05 Jan 2010 15:43:56 -0000"' \ '[date]="Tue, 05 Jan 2010 15:43:56 -0000"' \
'[body]="reply with CC"' '[body]="reply with CC"'
output=$(notmuch reply id:${gen_msg_id}) output=$(notmuch reply id:${gen_msg_id} 2>&1 && echo OK)
test_expect_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org> test_expect_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
Subject: Re: notmuch-reply-test Subject: Re: notmuch-reply-test
To: Sender <sender@example.com> To: Sender <sender@example.com>
@ -53,7 +55,8 @@ In-Reply-To: <${gen_msg_id}>
References: <${gen_msg_id}> References: <${gen_msg_id}>
On Tue, 05 Jan 2010 15:43:56 -0000, Sender <sender@example.com> wrote: On Tue, 05 Jan 2010 15:43:56 -0000, Sender <sender@example.com> wrote:
> reply with CC" > reply with CC
OK"
test_begin_subtest "Reply from alternate address" test_begin_subtest "Reply from alternate address"
add_message '[from]="Sender <sender@example.com>"' \ add_message '[from]="Sender <sender@example.com>"' \
@ -62,7 +65,7 @@ add_message '[from]="Sender <sender@example.com>"' \
'[date]="Tue, 05 Jan 2010 15:43:56 -0000"' \ '[date]="Tue, 05 Jan 2010 15:43:56 -0000"' \
'[body]="reply from alternate address"' '[body]="reply from alternate address"'
output=$(notmuch reply id:${gen_msg_id}) output=$(notmuch reply id:${gen_msg_id} 2>&1 && echo OK)
test_expect_equal "$output" "From: Notmuch Test Suite <test_suite_other@notmuchmail.org> test_expect_equal "$output" "From: Notmuch Test Suite <test_suite_other@notmuchmail.org>
Subject: Re: notmuch-reply-test Subject: Re: notmuch-reply-test
To: Sender <sender@example.com> To: Sender <sender@example.com>
@ -70,7 +73,8 @@ In-Reply-To: <${gen_msg_id}>
References: <${gen_msg_id}> References: <${gen_msg_id}>
On Tue, 05 Jan 2010 15:43:56 -0000, Sender <sender@example.com> wrote: On Tue, 05 Jan 2010 15:43:56 -0000, Sender <sender@example.com> wrote:
> reply from alternate address" > reply from alternate address
OK"
test_begin_subtest "Reply from address in named group list" test_begin_subtest "Reply from address in named group list"
add_message '[from]="Sender <sender@example.com>"' \ add_message '[from]="Sender <sender@example.com>"' \
@ -80,7 +84,7 @@ add_message '[from]="Sender <sender@example.com>"' \
'[date]="Tue, 05 Jan 2010 15:43:56 -0000"' \ '[date]="Tue, 05 Jan 2010 15:43:56 -0000"' \
'[body]="Reply from address in named group list"' '[body]="Reply from address in named group list"'
output=$(notmuch reply id:${gen_msg_id}) output=$(notmuch reply id:${gen_msg_id} 2>&1 && echo OK)
test_expect_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org> test_expect_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
Subject: Re: notmuch-reply-test Subject: Re: notmuch-reply-test
To: Sender <sender@example.com>, someone@example.com To: Sender <sender@example.com>, someone@example.com
@ -88,7 +92,8 @@ In-Reply-To: <${gen_msg_id}>
References: <${gen_msg_id}> References: <${gen_msg_id}>
On Tue, 05 Jan 2010 15:43:56 -0000, Sender <sender@example.com> wrote: On Tue, 05 Jan 2010 15:43:56 -0000, Sender <sender@example.com> wrote:
> Reply from address in named group list" > Reply from address in named group list
OK"
test_begin_subtest "Support for Reply-To" test_begin_subtest "Support for Reply-To"
add_message '[from]="Sender <sender@example.com>"' \ add_message '[from]="Sender <sender@example.com>"' \
@ -98,7 +103,7 @@ add_message '[from]="Sender <sender@example.com>"' \
'[body]="support for reply-to"' \ '[body]="support for reply-to"' \
'[reply-to]="Sender <elsewhere@example.com>"' '[reply-to]="Sender <elsewhere@example.com>"'
output=$(notmuch reply id:${gen_msg_id}) output=$(notmuch reply id:${gen_msg_id} 2>&1 && echo OK)
test_expect_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org> test_expect_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
Subject: Re: notmuch-reply-test Subject: Re: notmuch-reply-test
To: Sender <elsewhere@example.com> To: Sender <elsewhere@example.com>
@ -106,7 +111,8 @@ In-Reply-To: <${gen_msg_id}>
References: <${gen_msg_id}> References: <${gen_msg_id}>
On Tue, 05 Jan 2010 15:43:56 -0000, Sender <sender@example.com> wrote: On Tue, 05 Jan 2010 15:43:56 -0000, Sender <sender@example.com> wrote:
> support for reply-to" > support for reply-to
OK"
test_begin_subtest "Un-munging Reply-To" test_begin_subtest "Un-munging Reply-To"
add_message '[from]="Sender <sender@example.com>"' \ add_message '[from]="Sender <sender@example.com>"' \
@ -116,7 +122,7 @@ add_message '[from]="Sender <sender@example.com>"' \
'[body]="Un-munging Reply-To"' \ '[body]="Un-munging Reply-To"' \
'[reply-to]="Evil Munging List <list@example.com>"' '[reply-to]="Evil Munging List <list@example.com>"'
output=$(notmuch reply id:${gen_msg_id}) output=$(notmuch reply id:${gen_msg_id} 2>&1 && echo OK)
test_expect_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org> test_expect_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
Subject: Re: notmuch-reply-test Subject: Re: notmuch-reply-test
To: Sender <sender@example.com>, Some List <list@example.com> To: Sender <sender@example.com>, Some List <list@example.com>
@ -124,13 +130,14 @@ In-Reply-To: <${gen_msg_id}>
References: <${gen_msg_id}> References: <${gen_msg_id}>
On Tue, 05 Jan 2010 15:43:56 -0000, Sender <sender@example.com> wrote: On Tue, 05 Jan 2010 15:43:56 -0000, Sender <sender@example.com> wrote:
> Un-munging Reply-To" > Un-munging Reply-To
OK"
test_begin_subtest "Message with header of exactly 200 bytes" test_begin_subtest "Message with header of exactly 200 bytes"
add_message '[subject]="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"' \ add_message '[subject]="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"' \
'[date]="Tue, 05 Jan 2010 15:43:56 -0000"' \ '[date]="Tue, 05 Jan 2010 15:43:56 -0000"' \
'[body]="200-byte header"' '[body]="200-byte header"'
output=$(notmuch reply id:${gen_msg_id}) output=$(notmuch reply id:${gen_msg_id} 2>&1 && echo OK)
test_expect_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org> test_expect_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
Subject: Re: This subject is exactly 200 bytes in length. Other than its 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 length there is not much of note here. Note that the length of 200 bytes
@ -139,7 +146,8 @@ In-Reply-To: <${gen_msg_id}>
References: <${gen_msg_id}> References: <${gen_msg_id}>
On Tue, 05 Jan 2010 15:43:56 -0000, Notmuch Test Suite <test_suite@notmuchmail.org> wrote: On Tue, 05 Jan 2010 15:43:56 -0000, Notmuch Test Suite <test_suite@notmuchmail.org> wrote:
> 200-byte header" > 200-byte header
OK"
test_begin_subtest "From guessing: Envelope-To" test_begin_subtest "From guessing: Envelope-To"
add_message '[from]="Sender <sender@example.com>"' \ add_message '[from]="Sender <sender@example.com>"' \
@ -149,7 +157,7 @@ add_message '[from]="Sender <sender@example.com>"' \
'[body]="From guessing"' \ '[body]="From guessing"' \
'[header]="Envelope-To: test_suite_other@notmuchmail.org"' '[header]="Envelope-To: test_suite_other@notmuchmail.org"'
output=$(notmuch reply id:${gen_msg_id}) output=$(notmuch reply id:${gen_msg_id} 2>&1 && echo OK)
test_expect_equal "$output" "From: Notmuch Test Suite <test_suite_other@notmuchmail.org> test_expect_equal "$output" "From: Notmuch Test Suite <test_suite_other@notmuchmail.org>
Subject: Re: From guessing Subject: Re: From guessing
To: Sender <sender@example.com>, Recipient <recipient@example.com> To: Sender <sender@example.com>, Recipient <recipient@example.com>
@ -157,7 +165,8 @@ In-Reply-To: <${gen_msg_id}>
References: <${gen_msg_id}> References: <${gen_msg_id}>
On Tue, 05 Jan 2010 15:43:56 -0000, Sender <sender@example.com> wrote: On Tue, 05 Jan 2010 15:43:56 -0000, Sender <sender@example.com> wrote:
> From guessing" > From guessing
OK"
test_begin_subtest "From guessing: X-Original-To" test_begin_subtest "From guessing: X-Original-To"
add_message '[from]="Sender <sender@example.com>"' \ add_message '[from]="Sender <sender@example.com>"' \
@ -167,7 +176,7 @@ add_message '[from]="Sender <sender@example.com>"' \
'[body]="From guessing"' \ '[body]="From guessing"' \
'[header]="X-Original-To: test_suite@otherdomain.org"' '[header]="X-Original-To: test_suite@otherdomain.org"'
output=$(notmuch reply id:${gen_msg_id}) output=$(notmuch reply id:${gen_msg_id} 2>&1 && echo OK)
test_expect_equal "$output" "From: Notmuch Test Suite <test_suite@otherdomain.org> test_expect_equal "$output" "From: Notmuch Test Suite <test_suite@otherdomain.org>
Subject: Re: From guessing Subject: Re: From guessing
To: Sender <sender@example.com>, Recipient <recipient@example.com> To: Sender <sender@example.com>, Recipient <recipient@example.com>
@ -175,7 +184,8 @@ In-Reply-To: <${gen_msg_id}>
References: <${gen_msg_id}> References: <${gen_msg_id}>
On Tue, 05 Jan 2010 15:43:56 -0000, Sender <sender@example.com> wrote: On Tue, 05 Jan 2010 15:43:56 -0000, Sender <sender@example.com> wrote:
> From guessing" > From guessing
OK"
test_begin_subtest "From guessing: Delivered-To" test_begin_subtest "From guessing: Delivered-To"
add_message '[from]="Sender <sender@example.com>"' \ add_message '[from]="Sender <sender@example.com>"' \
@ -185,7 +195,7 @@ add_message '[from]="Sender <sender@example.com>"' \
'[body]="From guessing"' \ '[body]="From guessing"' \
'[header]="Delivered-To: test_suite_other@notmuchmail.org"' '[header]="Delivered-To: test_suite_other@notmuchmail.org"'
output=$(notmuch reply id:${gen_msg_id}) output=$(notmuch reply id:${gen_msg_id} 2>&1 && echo OK)
test_expect_equal "$output" "From: Notmuch Test Suite <test_suite_other@notmuchmail.org> test_expect_equal "$output" "From: Notmuch Test Suite <test_suite_other@notmuchmail.org>
Subject: Re: From guessing Subject: Re: From guessing
To: Sender <sender@example.com>, Recipient <recipient@example.com> To: Sender <sender@example.com>, Recipient <recipient@example.com>
@ -193,7 +203,8 @@ In-Reply-To: <${gen_msg_id}>
References: <${gen_msg_id}> References: <${gen_msg_id}>
On Tue, 05 Jan 2010 15:43:56 -0000, Sender <sender@example.com> wrote: On Tue, 05 Jan 2010 15:43:56 -0000, Sender <sender@example.com> wrote:
> From guessing" > From guessing
OK"
test_begin_subtest "Reply with RFC 2047-encoded headers" test_begin_subtest "Reply with RFC 2047-encoded headers"
add_message '[subject]="=?iso-8859-1?q?=e0=df=e7?="' \ add_message '[subject]="=?iso-8859-1?q?=e0=df=e7?="' \
@ -204,7 +215,7 @@ add_message '[subject]="=?iso-8859-1?q?=e0=df=e7?="' \
# GMime happens to change from Q- to B-encoding. We canonicalize the # GMime happens to change from Q- to B-encoding. We canonicalize the
# case of the encoding and charset because different versions of GMime # case of the encoding and charset because different versions of GMime
# capitalize the encoding differently. # capitalize the encoding differently.
output=$(notmuch reply id:${gen_msg_id} | perl -pe 's/=\?[^?]+\?[bB]\?/lc($&)/ge') output=$( (notmuch reply id:${gen_msg_id} 2>&1 && echo OK) | perl -pe 's/=\?[^?]+\?[bB]\?/lc($&)/ge')
test_expect_equal "$output" "\ test_expect_equal "$output" "\
From: Notmuch Test Suite <test_suite@notmuchmail.org> From: Notmuch Test Suite <test_suite@notmuchmail.org>
Subject: Re: =?iso-8859-1?b?4N/n?= Subject: Re: =?iso-8859-1?b?4N/n?=
@ -213,12 +224,13 @@ In-Reply-To: <${gen_msg_id}>
References: <${gen_msg_id}> References: <${gen_msg_id}>
On Tue, 05 Jan 2010 15:43:56 -0000, ☃ <snowman@example.com> wrote: On Tue, 05 Jan 2010 15:43:56 -0000, ☃ <snowman@example.com> wrote:
> Encoding" > Encoding
OK"
test_begin_subtest "Reply with RFC 2047-encoded headers (JSON)" test_begin_subtest "Reply with RFC 2047-encoded headers (JSON)"
output=$(notmuch reply --format=json id:${gen_msg_id}) output=$(echo '{"answer":' && notmuch reply --format=json id:${gen_msg_id} 2>&1 && echo ', "success": "OK"}')
test_expect_equal_json "$output" ' test_expect_equal_json "$output" '
{ { "answer": {
"original": { "original": {
"body": [ "body": [
{ {
@ -251,11 +263,13 @@ test_expect_equal_json "$output" '
"Subject": "Re: \u00e0\u00df\u00e7", "Subject": "Re: \u00e0\u00df\u00e7",
"To": "\u2603 <snowman@example.com>" "To": "\u2603 <snowman@example.com>"
} }
},
"success": "OK"
}' }'
test_begin_subtest "Reply to a message with multiple Cc headers" test_begin_subtest "Reply to a message with multiple Cc headers"
add_email_corpus broken add_email_corpus broken
output=$(notmuch reply id:multiple-cc@example.org) output=$(notmuch reply id:multiple-cc@example.org 2>&1 && echo OK)
test_expect_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org> test_expect_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
Subject: Re: wowsers! Subject: Re: wowsers!
To: Alice <alice@example.org>, Daniel <daniel@example.org> To: Alice <alice@example.org>, Daniel <daniel@example.org>
@ -264,6 +278,7 @@ In-Reply-To: <multiple-cc@example.org>
References: <multiple-cc@example.org> References: <multiple-cc@example.org>
On Thu, 16 Jun 2016 22:14:41 -0400, Alice <alice@example.org> wrote: On Thu, 16 Jun 2016 22:14:41 -0400, Alice <alice@example.org> wrote:
> Note the Cc: and cc: headers." > Note the Cc: and cc: headers.
OK"
test_done test_done