aboutsummaryrefslogtreecommitdiff
path: root/test/emacs-large-search-buffer
diff options
context:
space:
mode:
authorCarl Worth <cworth@cworth.org>2011-03-10 13:22:04 -0800
committerCarl Worth <cworth@cworth.org>2011-03-10 13:22:04 -0800
commit4e414e2a5a72e8345df6371b3524030d07c2ce96 (patch)
treece8317fb862c0c375409eef48fe52825176bfe0d /test/emacs-large-search-buffer
parenta3bf541e2b28f368905fbc17be2987eb4502e25d (diff)
Rename/rewrite the new emacs-forgetfulness test (to emacs-large-search-buffer)
The new name is more descriptive of the bug being tested. Also, the test is rewritten slightly so that it's much more plain to see how the bug manifests itself, (that messages are droped from the emacs result at regular intervals). Primarily, this is by collapsing the large blobs used to inflate the message subjects.
Diffstat (limited to 'test/emacs-large-search-buffer')
-rwxr-xr-xtest/emacs-large-search-buffer27
1 files changed, 27 insertions, 0 deletions
diff --git a/test/emacs-large-search-buffer b/test/emacs-large-search-buffer
new file mode 100755
index 0000000..f827bb1
--- /dev/null
+++ b/test/emacs-large-search-buffer
@@ -0,0 +1,27 @@
+#!/bin/bash
+test_description="Emacs with large search results buffer"
+. test-lib.sh
+
+x=xxxxxxxxxx # 10
+x=$x$x$x$x$x$x$x$x$x$x # 100
+x=$x$x$x$x$x$x$x$x$x # 900
+
+# We generate a long subject here (over 900 bytes) so that the emacs
+# search results get large quickly. With 30 such messages we should
+# cross several 4kB page boundaries and see the bug.
+n=30
+for i in $(seq 1 $n); do
+ # Roughly 100B2 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]="$x $i of $n"'
+done
+
+notmuch new > /dev/null
+
+test_begin_subtest 'Comparing emacs result to "notmuch search"'
+expected="$(notmuch search '*' | sed -e 's/^thread:[0-9a-f]* //' -e 's/;//' -e 's/xx*/[BLOB]/')
+End of search results."
+output=$(test_emacs '(notmuch-search "*") (notmuch-test-wait) (message (buffer-string))' 2>&1 | sed -e s', *, ,g' -e 's/xx*/[BLOB]/')
+test_expect_equal "$output" "$expected"
+
+test_done