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
| | #!/usr/bin/env bash
test_description='indexing user specified headers'
. $(dirname "$0")/test-lib.sh || exit 1
test_begin_subtest "error adding user header before initializing DB"
test_expect_code 1 "notmuch config set index.header.list \"List-Id\""
add_email_corpus
notmuch search '*' | notmuch_search_sanitize > initial-threads
notmuch search --output=messages '*' > initial-message-ids
notmuch dump > initial-dump
test_begin_subtest "adding user header"
test_expect_code 0 "notmuch config set index.header.list \"List-Id\""
test_begin_subtest "adding existing user header"
test_expect_code 0 "notmuch config set index.header.list \"List-Id\""
test_begin_subtest "retrieve user header"
output=$(notmuch config get index.header.list)
test_expect_equal "List-Id" "$output"
test_begin_subtest 'reindex after adding header preserves threads'
notmuch reindex '*'
notmuch search '*' | notmuch_search_sanitize > OUTPUT
test_expect_equal_file initial-threads OUTPUT
test_begin_subtest "List all user headers"
notmuch config set index.header.spam "X-Spam"
notmuch config list | grep ^index.header | notmuch_config_sanitize > OUTPUT
cat <<EOF > EXPECTED
index.header.list=List-Id
index.header.spam=X-Spam
EOF
test_expect_equal_file EXPECTED OUTPUT
test_begin_subtest "parse user prefix"
NOTMUCH_DEBUG_QUERY=t notmuch count 'list:"notmuch"' 2>&1 | grep Tmail >OUTPUT
cat <<EOF > EXPECTED
Query((Tmail AND XUlist:notmuch@1))
EOF
test_expect_equal_file EXPECTED OUTPUT
test_begin_subtest "parse user prefix, stemmed"
NOTMUCH_DEBUG_QUERY=t notmuch count 'list:notmuch' 2>&1 | grep Tmail >OUTPUT
cat <<EOF > EXPECTED
Query((Tmail AND ZXUlist:notmuch@1))
EOF
test_expect_equal_file EXPECTED OUTPUT
test_begin_subtest "parse user prefix, phrase"
NOTMUCH_DEBUG_QUERY=t notmuch count 'list:notmuchmail.org' 2>&1 | grep Tmail >OUTPUT
cat <<EOF > EXPECTED
Query((Tmail AND (XUlist:notmuchmail@1 PHRASE 2 XUlist:org@2)))
EOF
test_expect_equal_file EXPECTED OUTPUT
test_begin_subtest "index user header"
notmuch config set index.header.list "List-Id"
notmuch reindex '*'
notmuch search --output=files list:notmuch | notmuch_search_files_sanitize | sort > OUTPUT
cat <<EOF > EXPECTED
MAIL_DIR/bar/baz/05:2,
MAIL_DIR/bar/baz/23:2,
MAIL_DIR/bar/baz/24:2,
MAIL_DIR/bar/cur/20:2,
MAIL_DIR/bar/new/21:2,
MAIL_DIR/bar/new/22:2,
MAIL_DIR/foo/cur/08:2,
MAIL_DIR/foo/new/03:2,
MAIL_DIR/new/04:2,
EOF
test_expect_equal_file EXPECTED OUTPUT
test_done
|