unofficial mirror of notmuch@notmuchmail.org
 help / color / mirror / code / Atom feed
blob 0936011ae6a1e50e3611d74846653afcffa5bf2f 2701 bytes (raw)
name: test/T570-revision-tracking.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
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 --lastmod '*' | cut -f2-3 > OUTPUT
test_expect_equal_file INITIAL_OUTPUT OUTPUT

test_begin_subtest "modification count increases"
before=$(notmuch count --lastmod '*' | cut -f3)
notmuch tag +a-random-tag-8743632 '*'
after=$(notmuch count --lastmod '*' | cut -f3)
result=$(($before < $after))
test_expect_equal 1 ${result}

notmuch count --lastmod '*' | cut -f2 > 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 --lastmod '*' | cut -f3)
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

debug log:

solving 0936011 ...
found 0936011 in https://yhetil.org/notmuch.git/

(*) 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).