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