diff options
author | Carl Worth <cworth@cworth.org> | 2010-06-05 08:40:26 -0700 |
---|---|---|
committer | Carl Worth <cworth@cworth.org> | 2010-06-05 08:40:26 -0700 |
commit | 9c7668bdb51e4739eecda83b6452ef668ed0efa3 (patch) | |
tree | 4a8139cf7179186245a732f0df9b2ba1fc753a5a /test/notmuch-test | |
parent | 42e146a3a20c1ca2e1a9d6fd2d5e5e9d03a06641 (diff) |
Avoid giving GMime a NULL MIME-stream filter.
Micah Anderson reported an issue where a message failed to display in
the emacs interface, (it instead gave an error, "json-read-string: Bad
string format").
Micah tracked this down to the json output from "notmuch show" being
interrupted by a GMime error message:
gmime-CRITICAL **: g_mime_stream_filter_add: assertion
`GMIME_IS_FILTER (filter)
I tracked this down further to notmuch passing a NULL value to
g_mime_stream_filter_add. And this was due to calling
g_mime_filter_charset_new with a value of "unknown-8bit".
So we add a test message withe a Conten-Type of "text/plain;
charset=unknown-8bit" from Micah's message. Then we fix "notmuch show"
to test for NULL before calling g_mime_stream_filter_add. Bug fixed.
Diffstat (limited to 'test/notmuch-test')
-rwxr-xr-x | test/notmuch-test | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/test/notmuch-test b/test/notmuch-test index eaaaf89..00ac6b0 100755 --- a/test/notmuch-test +++ b/test/notmuch-test @@ -67,6 +67,7 @@ increment_mtime () # [reply-to]=some-address # [in-reply-to]=<message-id> # [references]=<message-id> +# [content-type]=content-type-specification # '[header]=full header line, including keyword' # # Additional values for email headers. If these are not provided @@ -147,6 +148,11 @@ ${additional_headers}" ${additional_headers}" fi + if [ ! -z "${template[content-type]}" ]; then + additional_headers="Content-Type: ${template[content-type]} +${additional_headers}" + fi + cat <<EOF >$gen_msg_filename From: ${template[from]} @@ -1147,6 +1153,27 @@ printf " Ensure all messages were threaded together...\t" output=$($NOTMUCH search 'subject:"a ridiculously-long message ID"' | notmuch_search_sanitize) pass_if_equal "$output" "thread:XXX 2001-01-05 [1/3] Notmuch Test Suite; A ridiculously-long message ID (inbox unread)" +printf "\nTesting encoding issues...\n" +printf " Message with text of unknown charset...\t" +add_message '[content-type]="text/plain; charset=unknown-8bit"' \ + '[body]=irrelevant' + +output=$($NOTMUCH show id:${gen_msg_id} 2>&1 | notmuch_show_sanitize) +pass_if_equal "$output" "message{ id:msg-074@notmuch-test-suite depth:0 match:1 filename:/XXX/mail/msg-074 +header{ +Notmuch Test Suite <test_suite@notmuchmail.org> (2001-01-05) (inbox unread) +Subject: Test message #74 +From: Notmuch Test Suite <test_suite@notmuchmail.org> +To: Notmuch Test Suite <test_suite@notmuchmail.org> +Date: Tue, 05 Jan 2001 15:43:57 -0800 +header} +body{ +part{ ID: 1, Content-type: text/plain +irrelevant +part} +body} +message}" + echo "" echo "Notmuch test suite complete." |