From a3bf541e2b28f368905fbc17be2987eb4502e25d Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Thu, 3 Feb 2011 00:56:38 +0100 Subject: [PATCH] New test: Emacs' forgetfulness. Signed-off-by: Thomas Schwinge --- test/emacs-forgetfulness | 38 ++++++++++++++++++++++++++++++++++++++ test/notmuch-test | 1 + 2 files changed, 39 insertions(+) create mode 100755 test/emacs-forgetfulness diff --git a/test/emacs-forgetfulness b/test/emacs-forgetfulness new file mode 100755 index 00000000..e17b26fa --- /dev/null +++ b/test/emacs-forgetfulness @@ -0,0 +1,38 @@ +#!/bin/bash + +test_description=Emacs\'\ forgetfulness + +. test-lib.sh + +# RFC822 imposes a 998 character limit per line. +x=0123456789 # 10 +x=$x$x$x$x$x$x$x$x$x$x # 100 +x=$x$x$x$x$x$x$x$x$x # 900 + +# If setting this ``too high'' (TODO: yet to be determined), Emacs will crash +# with a segmentation fault. +n=20 +for i in $(seq 1 $n); do + # Roughly 2 KiB per message. That is, we need two messages in order to + # exceed the typical size of the pipe buffer (4 KiB on commodity systems). + generate_message [subject]=$i-$x [from]=$i-$x@x.x +done +# With 20 messages à 2 KiB, we have about 10 full pipe buffers, which should be +# enough to trigger the erroneous behavior. + +notmuch new > /dev/null + +test_begin_subtest 'Search for all messages' +output=$(exec 2>&1; \ + diff -wu \ + <(notmuch search \* \ + | sed \ + -e 's%^thread:[0-9a-f]*\ %%' \ + -e 's%;%%'; \ + echo 'End of search results.'; \ + echo) \ + <(test_emacs 2>&1 \ + '(notmuch-search "*") (notmuch-test-wait) (message (buffer-string))')) +test_expect_equal "$output" '' + +test_done diff --git a/test/notmuch-test b/test/notmuch-test index e3e04476..c0aed314 100755 --- a/test/notmuch-test +++ b/test/notmuch-test @@ -37,6 +37,7 @@ TESTS=" encoding emacs maildir-sync + emacs-forgetfulness " # Clean up any results from a previous run