This highlights a bug where zero bytes are read at the end of the file, and we attempt to write those to stdout, causing spurious write failures. --- test/T210-raw.sh | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/test/T210-raw.sh b/test/T210-raw.sh index 99fdef72..0d57deb5 100755 --- a/test/T210-raw.sh +++ b/test/T210-raw.sh @@ -30,4 +30,39 @@ Date: GENERATED_DATE This is just a test message (#2)" +test_python <<EOF +from email.message import EmailMessage +for pow in range(12,21): + size = 2**pow + msg=EmailMessage() + msg['Subject'] = 'message with {:07d} bytes'.format(size) + msg['From'] = 'Notmuch Test Suite <test_suite@notmuchmail.org>' + msg['To'] = msg['From'] + msg['Message-Id'] = 'size-{0:07d}@notmuch-test-suite'.format(size) + content="" + msg.set_content("") + padding = size - len(bytes(msg)) + lines = [] + while padding > 0: + line = '.' * min(padding, 72) + lines.append(line) + padding = padding - len(line) - 1 + content ='\n'.join(lines) + msg.set_content(content) + with open('mail/size-{0:07d}'.format(size),'wb') as f: + f.write(bytes(msg)) +EOF + +notmuch new --quiet + +for pow in $(seq 12 20); do + size=$(printf "%07d" $((2**$pow))) + test_begin_subtest "content, message of size $size" + notmuch show --format=raw subject:$size > OUTPUT + test_expect_equal_file mail/size-$size OUTPUT + test_begin_subtest "return value, message of size $size" + test_subtest_known_broken + test_expect_success "notmuch show --format=raw subject:$size > /dev/null" +done + test_done -- 2.20.1 _______________________________________________ notmuch mailing list notmuch@notmuchmail.org https://notmuchmail.org/mailman/listinfo/notmuch