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 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192
|
#!/bin/sh
######################################################
#
# Test mark
#
######################################################
set -e
if test -z "${MH_OBJ_DIR}"; then
srcdir=`dirname $0`/../..
MH_OBJ_DIR=`cd $srcdir && pwd`; export MH_OBJ_DIR
fi
. "$MH_OBJ_DIR/test/common.sh"
setup_test
check_exit '-eq 1' mark -
# Test sequence creation.
run_test 'mark 1 3 5 7 +inbox -sequence odd' ''
run_test 'mark 2 4 6 8 10 +inbox -sequence even' ''
run_test 'mark +inbox -seq odd -seq even -list' \
'odd: 1 3 5 7
even: 2 4 6 8 10'
# Test add.
run_test 'mark 9 -sequence odd -add -nozero' ''
run_test 'mark -seq odd -list' 'odd: 1 3 5 7 9'
# Test delete.
run_test 'mark 9 -sequence odd -delete' ''
run_test 'mark -seq odd -list' 'odd: 1 3 5 7'
# Test that -nozero is default
run_test 'mark 9 -sequence odd -add' ''
run_test 'mark -seq odd -list' 'odd: 1 3 5 7 9'
# Test -zero
run_test 'mark 10 -s even -add -zero' ''
run_test 'mark -s even -list' 'even: 10'
# Test add prior to last message;
run_test 'mark 8 -s even -add' ''
run_test 'mark -s even -list' 'even: 8 10'
# Test list.
run_test 'mark -sequence big -add 8 9 10 -zero' \
''
run_test 'mark -l' \
'odd: 1 3 5 7 9
even: 8 10
big: 8-10'
run_test 'mark -l -noempty' \
'odd: 1 3 5 7 9
even: 8 10
big: 8-10'
run_test 'mark -l -s big' \
'big: 8-10'
run_test 'mark -l -s big -norange' \
'big: 8 9 10'
run_test 'mark -l -s big -s cur' \
'big: 8-10'
run_test 'mark -l -s big -s cur -noempty' \
'big: 8-10'
run_test 'mark -l -s big -s cur -s xyzzy' \
'big: 8-10
xyzzy: '
run_test 'mark -l -s big -s cur -s xyzzy -noempty' \
'big: 8-10'
run_test 'mark -l 9' \
'odd: 9
even:
big: 9'
run_test 'mark -l 9 -noempty' \
'odd: 9
big: 9'
run_test 'mark -l -s big -s cur 9' \
'big: 9'
run_test 'mark -l -s big -s cur 9 -noempty' \
'big: 9'
run_test 'mark -l -s big -s cur -s xyzzy 9' \
'big: 9
xyzzy: '
run_test 'mark -l -s big -s cur -s xyzzy 9 -noempty' \
'big: 9'
run_test 'mark -sequence big -delete all' \
''
# Try to mark message that doesn't exist.
run_test 'mark 12' "mark: message 12 doesn't exist"
# Try to mark nonexistent folder.
run_test 'mark +nonexistent' \
"mark: unable to change directory to `mhpath +`/nonexistent: \
No such file or directory"
# Test message ranges
# Set current message for following tests.
folder +inbox 5 >/dev/null
run_test 'mark -s foo -zero cur' ''
run_test 'mark -s foo -list' 'foo: 5'
run_test 'mark -s foo -zero 5:-3' ''
run_test 'mark -s foo -list' 'foo: 3-5'
run_test 'mark -s foo -zero 5:2' ''
run_test 'mark -s foo -list' 'foo: 5-6'
run_test 'mark -s foo -zero 5=1' ''
run_test 'mark -s foo -list' 'foo: 5'
run_test 'mark -s foo -zero 5=-2' ''
run_test 'mark -s foo -list' 'foo: 4'
run_test 'mark -s foo -zero 5=7' 'mark: no such message'
run_test 'mark -s onesix -zero 1 2 3 4 5 6'
run_test 'mark -s onesix -list' 'onesix: 1-6'
run_test 'mark -s foo -zero onesix:2'
run_test 'mark -s foo -list' 'foo: 1-2'
run_test 'mark -s foo -zero onesix=3'
run_test 'mark -s foo -list' 'foo: 3'
run_test 'mark -s foo -zero onesix:-3'
run_test 'mark -s foo -list' 'foo: 4-6'
run_test 'mark -s foo -zero onesix=-3'
run_test 'mark -s foo -list' 'foo: 4'
run_test 'mark -s foo -zero onesix:8'
run_test 'mark -s foo -list' 'foo: 1-6'
run_test 'mark -s foo -zero onesix=11' 'mark: no onesix=11 message'
run_test 'mark -s foo -delete all' ''
run_test 'mark -s onesix -delete all' ''
# Test private sequence creation.
# Set current message for following tests.
folder +inbox 1 >/dev/null
run_test 'mark 1 -sequence privateseq -add -nopublic' ''
run_test 'mark -list' 'cur: 1
odd: 1 3 5 7 9
even: 8 10
privateseq (private): 1'
# Test add to private sequence.
run_test 'mark 2 -sequence privateseq -add -nopublic' ''
run_test 'mark -list' 'cur: 1
odd: 1 3 5 7 9
even: 8 10
privateseq (private): 1-2'
# Test private sequence list.
run_test 'mark -sequence privateseq -list' 'privateseq (private): 1-2'
# Test private sequence list with a message list.
run_test 'mark -sequence privateseq -sequence odd -list 1 5' \
'privateseq (private): 1
odd: 1 5'
# Test private sequence list with -public, which is apparently ignored.
run_test 'mark -sequence privateseq -list -public' 'privateseq (private): 1-2'
# Test mark on empty folder.
folder -create +other >/dev/null
run_test 'mark +other -sequence unseen all' 'mark: no messages in other'
# Test removal of indication of cur message.
mark +inbox -sequence cur -delete all
run_test 'pick -nolist cur' 'pick: no cur message'
# Check large number of sequences.
for i in 1 2 3 4 5; do
for j in 0 1 2 3 4 5 6 7 8 9; do
run_prog mark $i -seq seq$i${j}0 -seq seq$i${j}1 -seq seq$i${j}2 \
-seq seq$i${j}3 -seq seq$i${j}4 -seq seq$i${j}5 \
-seq seq$i${j}6 -seq seq$i${j}7 -seq seq$i${j}8 \
-seq seq$i${j}9
run_test "pick seq$i${j}0 seq$i${j}1 seq$i${j}2 seq$i${j}3 seq$i${j}4 \
seq$i${j}5 seq$i${j}6 seq$i${j}7 seq$i${j}8 seq$i${j}9" $i
done
done
exit $failed
|