+test_python <<EOF
+from email.message import EmailMessage
+for pow in range(10,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-{:07d}@notmuch-test-suite'.format(size)
+ content = ""
+ msg.set_content("\n")
+ 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-{:07d}'.format(size), 'wb') as f:
+ f.write(bytes(msg))
+EOF
+
+notmuch new --quiet
+
+for pow in {10..20}; do
+ printf -v size "%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_expect_success "notmuch show --format=raw subject:$size > /dev/null"
+done
+
+add_email_corpus duplicate
+ID=87r2ecrr6x.fsf@zephyr.silentflame.com
+test_begin_subtest "raw content, duplicate files"
+rm -f OUTPUT.raw
+for dup in {1..5}; do
+ notmuch show --format=raw --duplicate=${dup} --format=raw id:${ID} | md5sum | cut -f1 -d' ' >> OUTPUT.raw
+done
+sort OUTPUT.raw > OUTPUT
+notmuch search --output=files id:${ID} | xargs md5sum | cut -f1 -d ' ' | sort > EXPECTED
+test_expect_equal_file_nonempty EXPECTED OUTPUT
+