2011-11-20 22:15:24 +01:00
|
|
|
#!/usr/bin/env bash
|
2010-10-22 11:28:03 +02:00
|
|
|
|
2010-11-06 20:03:51 +01:00
|
|
|
test_description='notmuch show --format=raw'
|
2017-09-25 22:38:19 +02:00
|
|
|
. $(dirname "$0")/test-lib.sh || exit 1
|
2010-10-22 11:28:03 +02:00
|
|
|
|
2012-03-10 02:24:50 +01:00
|
|
|
add_message
|
|
|
|
add_message
|
2010-10-22 11:28:03 +02:00
|
|
|
|
2010-11-06 20:03:51 +01:00
|
|
|
test_begin_subtest "Attempt to show multiple raw messages"
|
|
|
|
output=$(notmuch show --format=raw "*" 2>&1)
|
2016-05-07 21:24:18 +02:00
|
|
|
test_expect_equal "$output" "Error: search term did not match precisely one message (matched 2 messages)."
|
2010-10-22 11:28:03 +02:00
|
|
|
|
2010-11-06 20:03:51 +01:00
|
|
|
test_begin_subtest "Show a raw message"
|
2013-12-08 15:52:41 +01:00
|
|
|
output=$(notmuch show --format=raw id:msg-001@notmuch-test-suite | notmuch_date_sanitize)
|
2010-10-22 11:28:03 +02:00
|
|
|
test_expect_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
|
|
|
|
To: Notmuch Test Suite <test_suite@notmuchmail.org>
|
|
|
|
Message-Id: <msg-001@notmuch-test-suite>
|
|
|
|
Subject: Test message #1
|
2013-12-08 15:52:41 +01:00
|
|
|
Date: GENERATED_DATE
|
2010-10-22 11:28:03 +02:00
|
|
|
|
|
|
|
This is just a test message (#1)"
|
|
|
|
|
2010-11-06 20:03:51 +01:00
|
|
|
test_begin_subtest "Show another raw message"
|
2013-12-08 15:52:41 +01:00
|
|
|
output=$(notmuch show --format=raw id:msg-002@notmuch-test-suite | notmuch_date_sanitize)
|
2010-10-22 11:28:03 +02:00
|
|
|
test_expect_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
|
|
|
|
To: Notmuch Test Suite <test_suite@notmuchmail.org>
|
|
|
|
Message-Id: <msg-002@notmuch-test-suite>
|
|
|
|
Subject: Test message #2
|
2013-12-08 15:52:41 +01:00
|
|
|
Date: GENERATED_DATE
|
2010-10-22 11:28:03 +02:00
|
|
|
|
|
|
|
This is just a test message (#2)"
|
|
|
|
|
2019-05-05 00:29:08 +02:00
|
|
|
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 = ""
|
2020-07-03 12:23:32 +02:00
|
|
|
msg.set_content("\n")
|
2019-05-05 00:29:08 +02:00
|
|
|
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"
|
2021-01-16 02:29:17 +01:00
|
|
|
test_expect_success "notmuch show --format=raw subject:$size > /dev/null"
|
2019-05-05 00:29:08 +02:00
|
|
|
done
|
|
|
|
|
2022-07-01 23:45:43 +02:00
|
|
|
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
|
|
|
|
|
2010-10-22 11:28:03 +02:00
|
|
|
test_done
|