]> diplodocus.org Git - nmh/blob - test/sequences/test-mark
Added -[no]changecur switches to mhfixmsg(1).
[nmh] / test / sequences / test-mark
1 #!/bin/sh
2 ######################################################
3 #
4 # Test mark
5 #
6 ######################################################
7
8 set -e
9
10 if test -z "${MH_OBJ_DIR}"; then
11 srcdir=`dirname $0`/../..
12 MH_OBJ_DIR=`cd $srcdir && pwd`; export MH_OBJ_DIR
13 fi
14
15 . "$MH_OBJ_DIR/test/common.sh"
16
17 setup_test
18
19 # Test sequence creation.
20 run_test 'mark 1 3 5 7 +inbox -sequence odd' ''
21 run_test 'mark 2 4 6 8 10 +inbox -sequence even' ''
22 run_test 'mark +inbox -seq odd -seq even -list' \
23 'odd: 1 3 5 7
24 even: 2 4 6 8 10'
25
26 # Test add.
27 run_test 'mark 9 -sequence odd -add -nozero' ''
28 run_test 'mark -seq odd -list' 'odd: 1 3 5 7 9'
29
30 # Test delete.
31 run_test 'mark 9 -sequence odd -delete' ''
32 run_test 'mark -seq odd -list' 'odd: 1 3 5 7'
33
34 # Test that -nozero is default
35 run_test 'mark 9 -sequence odd -add' ''
36 run_test 'mark -seq odd -list' 'odd: 1 3 5 7 9'
37
38 # Test -zero
39 run_test 'mark 10 -s even -add -zero' ''
40 run_test 'mark -s even -list' 'even: 10'
41
42 # Test add prior to last message;
43 run_test 'mark 8 -s even -add' ''
44 run_test 'mark -s even -list' 'even: 8 10'
45
46 # Test list.
47 run_test 'mark -s odd -list' 'odd: 1 3 5 7 9'
48
49 # Try to mark message that doesn't exist.
50 run_test 'mark 12' "mark: message 12 doesn't exist"
51
52 # Try to mark nonexistent folder.
53 run_test 'mark +nonexistent' \
54 "mark: unable to change directory to `mhpath +`/nonexistent: \
55 No such file or directory"
56
57 # Test message ranges
58 # Set current message for following tests.
59 folder +inbox 5 >/dev/null
60 run_test 'mark -s foo -zero cur' ''
61 run_test 'mark -s foo -list' 'foo: 5'
62 run_test 'mark -s foo -zero 5:-3' ''
63 run_test 'mark -s foo -list' 'foo: 3-5'
64 run_test 'mark -s foo -zero 5:2' ''
65 run_test 'mark -s foo -list' 'foo: 5-6'
66 run_test 'mark -s foo -zero 5=1' ''
67 run_test 'mark -s foo -list' 'foo: 5'
68 run_test 'mark -s foo -zero 5=-2' ''
69 run_test 'mark -s foo -list' 'foo: 4'
70 run_test 'mark -s foo -zero 5=7' 'mark: no such message'
71
72 run_test 'mark -s onesix -zero 1 2 3 4 5 6'
73 run_test 'mark -s onesix -list' 'onesix: 1-6'
74 run_test 'mark -s foo -zero onesix:2'
75 run_test 'mark -s foo -list' 'foo: 1-2'
76 run_test 'mark -s foo -zero onesix=3'
77 run_test 'mark -s foo -list' 'foo: 3'
78 run_test 'mark -s foo -zero onesix:-3'
79 run_test 'mark -s foo -list' 'foo: 4-6'
80 run_test 'mark -s foo -zero onesix=-3'
81 run_test 'mark -s foo -list' 'foo: 4'
82 run_test 'mark -s foo -zero onesix:8'
83 run_test 'mark -s foo -list' 'foo: 1-6'
84 run_test 'mark -s foo -zero onesix=11' 'mark: no onesix=11 message'
85
86 run_test 'mark -s foo -delete all' ''
87 run_test 'mark -s onesix -delete all' ''
88
89
90 # Test private sequence creation.
91 # Set current message for following tests.
92 folder +inbox 1 >/dev/null
93 run_test 'mark 1 -sequence privateseq -add -nopublic' ''
94 run_test 'mark -list' 'cur: 1
95 odd: 1 3 5 7 9
96 even: 8 10
97 privateseq (private): 1'
98
99 # Test add to private sequence.
100 run_test 'mark 2 -sequence privateseq -add -nopublic' ''
101 run_test 'mark -list' 'cur: 1
102 odd: 1 3 5 7 9
103 even: 8 10
104 privateseq (private): 1-2'
105
106 # Test private sequence list.
107 run_test 'mark -sequence privateseq -list' 'privateseq (private): 1-2'
108
109 # Test private sequence list with -public, which is apparently ignored.
110 run_test 'mark -sequence privateseq -list -public' 'privateseq (private): 1-2'
111
112 # Test mark on empty folder.
113 folder -create +other >/dev/null
114 run_test 'mark +other -sequence unseen all' 'mark: no messages in other'
115
116 # Test removal of indication of cur message.
117 mark +inbox -sequence cur -delete all
118 run_test 'pick -nolist cur' 'pick: no cur message'
119
120 # Check large number of sequences.
121 for i in 1 2 3 4 5; do
122 for j in 0 1 2 3 4 5 6 7 8 9; do
123 run_prog mark $i -seq seq$i${j}0 -seq seq$i${j}1 -seq seq$i${j}2 \
124 -seq seq$i${j}3 -seq seq$i${j}4 -seq seq$i${j}5 \
125 -seq seq$i${j}6 -seq seq$i${j}7 -seq seq$i${j}8 \
126 -seq seq$i${j}9
127 run_test "pick seq$i${j}0 seq$i${j}1 seq$i${j}2 seq$i${j}3 seq$i${j}4 \
128 seq$i${j}5 seq$i${j}6 seq$i${j}7 seq$i${j}8 seq$i${j}9" $i
129 done
130 done
131
132 exit $failed