unofficial mirror of notmuch@notmuchmail.org
 help / color / mirror / code / Atom feed
blob f4990b6dfa24401c1ffe3244e61b0a4f98bc3b40 2695 bytes (raw)
name: test/T210-raw.sh 	 # note: path name is non-authoritative(*)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
 
#!/usr/bin/env bash

test_description='notmuch show --format=raw'
. $(dirname "$0")/test-lib.sh || exit 1

add_message
add_message

test_begin_subtest "Attempt to show multiple raw messages"
output=$(notmuch show --format=raw "*" 2>&1)
test_expect_equal "$output" "Error: search term did not match precisely one message (matched 2 messages)."

test_begin_subtest "Show a raw message"
output=$(notmuch show --format=raw id:msg-001@notmuch-test-suite | notmuch_date_sanitize)
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
Date: GENERATED_DATE

This is just a test message (#1)"

test_begin_subtest "Show another raw message"
output=$(notmuch show --format=raw id:msg-002@notmuch-test-suite | notmuch_date_sanitize)
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
Date: GENERATED_DATE

This is just a test message (#2)"

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
ID3=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:${ID3} | md5sum | cut -f1 -d' '  >> OUTPUT.raw
done
sort OUTPUT.raw > OUTPUT
notmuch search --output=files id:${ID3} | xargs md5sum | cut -f1 -d ' ' | sort > EXPECTED
test_expect_equal_file_nonempty EXPECTED OUTPUT

test_done

debug log:

solving f4990b6d ...
found f4990b6d in https://yhetil.org/notmuch/20220612190459.3804908-3-david@tethera.net/ ||
	https://yhetil.org/notmuch/20220619232152.846823-5-david@tethera.net/
found e1d50bf9 in https://yhetil.org/notmuch.git/
preparing index
index prepared:
100755 e1d50bf90a0a15881d1a7712b1fad813a13009ee	test/T210-raw.sh

applying [1/1] https://yhetil.org/notmuch/20220612190459.3804908-3-david@tethera.net/
diff --git a/test/T210-raw.sh b/test/T210-raw.sh
index e1d50bf9..f4990b6d 100755

1:10: trailing whitespace.
ID3=87r2ecrr6x.fsf@zephyr.silentflame.com 
Checking patch test/T210-raw.sh...
Applied patch test/T210-raw.sh cleanly.
warning: 1 line adds whitespace errors.

skipping https://yhetil.org/notmuch/20220619232152.846823-5-david@tethera.net/ for f4990b6d
index at:
100755 f4990b6dfa24401c1ffe3244e61b0a4f98bc3b40	test/T210-raw.sh

(*) Git path names are given by the tree(s) the blob belongs to.
    Blobs themselves have no identifier aside from the hash of its contents.^

Code repositories for project(s) associated with this public inbox

	https://yhetil.org/notmuch.git/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).