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
79
80
81
82
83
84
85
86
87
88
89
90
| | #!/usr/bin/env bash
test_description='Configuration of mail-root and database path'
. $(dirname "$0")/test-lib.sh || exit 1
backup_config () {
local test_name=$(basename $0 .sh)
cp ${NOTMUCH_CONFIG} notmuch-config-backup.${test_name}
}
restore_config () {
local test_name=$(basename $0 .sh)
export NOTMUCH_CONFIG="${TMP_DIRECTORY}/notmuch-config"
unset CONFIG_PATH
unset DATABASE_PATH
unset NOTMUCH_PROFILE
cp notmuch-config-backup.${test_name} ${NOTMUCH_CONFIG}
}
split_config () {
local dir
backup_config
dir="$TMP_DIRECTORY/database.$test_count"
rm -rf $dir
mkdir $dir
notmuch config set database.path $dir
notmuch config set database.mail_root $MAIL_DIR
DATABASE_PATH=$dir
}
for config in traditional split; do
# start each set of tests with a known set of messages
add_email_corpus
case $config in
traditional)
backup_config
;;
split)
split_config
mv mail/.notmuch/xapian $DATABASE_PATH
;;
esac
test_begin_subtest "count ($config)"
output=$(notmuch count '*')
test_expect_equal "$output" '52'
test_begin_subtest "count+tag ($config)"
tag="tag${RANDOM}"
notmuch tag +$tag '*'
output=$(notmuch count tag:$tag)
notmuch tag -$tag '*'
test_expect_equal "$output" '52'
test_begin_subtest "address ($config)"
notmuch address --deduplicate=no --sort=newest-first --output=sender --output=recipients path:foo >OUTPUT
cat <<EOF >EXPECTED
Carl Worth <cworth@cworth.org>
notmuch@notmuchmail.org
EOF
test_expect_equal_file EXPECTED OUTPUT
test_begin_subtest "dump ($config)"
notmuch dump is:attachment and is:signed | sort > OUTPUT
cat <<EOF > EXPECTED
#notmuch-dump batch-tag:3 config,properties,tags
+attachment +inbox +signed +unread -- id:20091118005829.GB25380@dottiness.seas.harvard.edu
+attachment +inbox +signed +unread -- id:20091118010116.GC25380@dottiness.seas.harvard.edu
EOF
test_expect_equal_file EXPECTED OUTPUT
test_begin_subtest "dump + tag + restore ($config)"
notmuch dump '*' > EXPECTED
notmuch tag -inbox '*'
notmuch restore < EXPECTED
notmuch dump > OUTPUT
test_expect_equal_file EXPECTED OUTPUT
test_begin_subtest "reindex ($config)"
notmuch search --output=messages '*' > EXPECTED
notmuch reindex '*'
notmuch search --output=messages '*' > OUTPUT
test_expect_equal_file EXPECTED OUTPUT
restore_config
done
test_done
|