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
91
92
93
| | #!/usr/bin/env bash
test_description="database revision tracking"
. ./test-lib.sh || exit 1
add_email_corpus
test_begin_subtest "notmuch_database_get_revision"
test_C ${MAIL_DIR} <<'EOF'
#include <stdio.h>
#include <string.h>
#include <notmuch.h>
int main (int argc, char** argv)
{
notmuch_database_t *db;
notmuch_status_t stat;
unsigned long revision;
const char *uuid;
unsigned long rev;
stat = notmuch_database_open (argv[1], NOTMUCH_DATABASE_MODE_READ_ONLY, &db);
if (stat)
fputs ("open failed\n", stderr);
revision = notmuch_database_get_revision (db, &uuid);
printf("%s\t%lu\n", uuid, revision);
}
EOF
notmuch_uuid_sanitize < OUTPUT > CLEAN
cat <<'EOF' >EXPECTED
== stdout ==
UUID 53
== stderr ==
EOF
test_expect_equal_file EXPECTED CLEAN
grep '^[0-9a-f]' OUTPUT > INITIAL_OUTPUT
test_begin_subtest "output of count matches test code"
notmuch count --output=modifications '*' > OUTPUT
test_expect_equal_file INITIAL_OUTPUT OUTPUT
test_begin_subtest "modification count increases"
before=$(notmuch count --output=modifications '*' | cut -f2)
notmuch tag +a-random-tag-8743632 '*'
after=$(notmuch count --output=modifications '*' | cut -f2)
result=$(($before < $after))
test_expect_equal 1 ${result}
notmuch count --output=modifications '*' | cut -f1 > UUID
test_expect_success 'search succeeds with correct uuid' \
"notmuch search --uuid=$(cat UUID) '*'"
test_expect_success 'uuid works as global option ' \
"notmuch --uuid=$(cat UUID) search '*'"
test_expect_code 1 'uuid works as global option II' \
"notmuch --uuid=this-is-no-uuid search '*'"
test_expect_code 1 'search fails with incorrect uuid' \
"notmuch search --uuid=this-is-no-uuid '*'"
test_expect_success 'show succeeds with correct uuid' \
"notmuch show --uuid=$(cat UUID) '*'"
test_expect_code 1 'show fails with incorrect uuid' \
"notmuch show --uuid=this-is-no-uuid '*'"
test_expect_success 'tag succeeds with correct uuid' \
"notmuch tag --uuid=$(cat UUID) +test '*'"
test_expect_code 1 'tag fails with incorrect uuid' \
"notmuch tag --uuid=this-is-no-uuid '*' +test2"
test_begin_subtest 'lastmod:0.. matches everything'
total=$(notmuch count '*')
modtotal=$(notmuch count lastmod:0..)
test_expect_equal "$total" "$modtotal"
test_begin_subtest 'lastmod:1000000.. matches nothing'
modtotal=$(notmuch count lastmod:1000000..)
test_expect_equal 0 "$modtotal"
test_begin_subtest 'exclude one message using lastmod'
lastmod=$(notmuch count --output=modifications '*' | cut -f2)
total=$(notmuch count '*')
notmuch tag +4EFC743A.3060609@april.org id:4EFC743A.3060609@april.org
subtotal=$(notmuch count lastmod:..$lastmod)
result=$(($subtotal == $total-1))
test_expect_equal 1 "$result"
test_done
|