mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-25 04:18:08 +01:00
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.
This commit is contained in:
parent
a3bf541e2b
commit
4e414e2a5a
3 changed files with 28 additions and 39 deletions
|
@ -1,38 +0,0 @@
|
||||||
#!/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
|
|
27
test/emacs-large-search-buffer
Executable file
27
test/emacs-large-search-buffer
Executable file
|
@ -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
|
|
@ -36,8 +36,8 @@ TESTS="
|
||||||
long-id
|
long-id
|
||||||
encoding
|
encoding
|
||||||
emacs
|
emacs
|
||||||
|
emacs-large-search-buffer
|
||||||
maildir-sync
|
maildir-sync
|
||||||
emacs-forgetfulness
|
|
||||||
"
|
"
|
||||||
|
|
||||||
# Clean up any results from a previous run
|
# Clean up any results from a previous run
|
||||||
|
|
Loading…
Reference in a new issue