]> diplodocus.org Git - nmh/blob - test/anno/test-anno
Tell make that uip/mhical.c depends on sbr/icalparse.h
[nmh] / test / anno / test-anno
1 #!/bin/sh
2 ######################################################
3 #
4 # Test anno
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' anno -
20 check_exit '-eq 1' anno -comp
21 check_exit '-eq 1' anno -comp foo -comp bar
22 check_exit '-eq 1' anno -text
23 check_exit '-eq 1' anno -text foo -text bar
24 check_exit '-eq 1' anno -number 0
25 check_exit '-eq 1' anno -number -number
26 check_exit '-eq 1' anno + @
27 check_exit '-eq 1' anno -draft 42
28 check_exit '-eq 1' anno -draft -list </dev/null
29 check_exit '-eq 1' anno -draft -list -comp foo
30 check_exit '-eq 1' anno -draft -comp f.o:
31 check_exit '-eq 1' anno -draft -comp ''
32 x=tendixzehn
33 l=$x$x$x$x$x
34 c=$l$l
35 d=$c$c$c$c$c
36 check_exit '-eq 1' anno -draft -comp $d$c$c$c$c$l$x$x$x${x}123456789
37
38 expected=$MH_TEST_DIR/$$.expected
39 expected_err=$MH_TEST_DIR/$$.expected_err
40 actual=$MH_TEST_DIR/$$.actual
41 actual_err=$MH_TEST_DIR/$$.actual_err
42
43 # check -help
44 start_test "-help"
45 cat >"$expected" <<EOF
46 Usage: anno [+folder] [msgs] [switches]
47 switches are:
48 -component field
49 -[no]inplace
50 -[no]date
51 -text body
52 -version
53 -help
54 -(dr)aft
55 -(l)ist
56 -(de)lete
57 -(nu)mber
58 -(a)ppend
59 -([no]p)reserve
60 EOF
61
62 #### Skip nmh intro text.
63 run_prog anno -help 2>&1 | sed '/^$/,$d' >"$actual"
64 check "$expected" "$actual"
65
66 # check -version
67 start_test "-version"
68 case `anno -v` in
69 anno\ --*) ;;
70 * ) printf '%s: anno -v generated unexpected output\n' "$0" >&2
71 failed=`expr ${failed:-0} + 1`;;
72 esac
73
74 # check unknown switch
75 start_test "unknown switch"
76 run_test "anno -nonexistent" 'anno: -nonexistent unknown'
77
78 cat "${MH_TEST_DIR}/Mail/inbox/1" >"${MH_TEST_DIR}/Mail/inbox/11"
79
80 # check with no switches
81 start_test "with no switches"
82 printf 'Nmh-test:\n' >"$expected"
83 cat "${MH_TEST_DIR}/Mail/inbox/1" >>"$expected"
84 folder -fast 1 >/dev/null
85
86 printf 'Nmh-test' | run_prog anno >/dev/null
87 sed -e 's/^Nmh-test:.*/Nmh-test:/' "${MH_TEST_DIR}/Mail/inbox/1" >"$actual"
88 check "$expected" "$actual" 'keep first'
89 cp -f "${MH_TEST_DIR}/Mail/inbox/11" "${MH_TEST_DIR}/Mail/inbox/1"
90
91 # check -component
92 start_test "-component"
93 run_prog anno -component Nmh-test
94 sed -e 's/^Nmh-test:.*/Nmh-test:/' "${MH_TEST_DIR}/Mail/inbox/1" >"$actual"
95 check "$expected" "$actual" 'keep first'
96 cp -f "${MH_TEST_DIR}/Mail/inbox/11" "${MH_TEST_DIR}/Mail/inbox/1"
97
98 # check +folder
99 start_test "+folder"
100 run_prog anno -component Nmh-test +inbox
101 sed -e 's/^Nmh-test:.*/Nmh-test:/' "${MH_TEST_DIR}/Mail/inbox/1" >"$actual"
102 check "$expected" "$actual" 'keep first'
103 cp -f "${MH_TEST_DIR}/Mail/inbox/11" "${MH_TEST_DIR}/Mail/inbox/1"
104
105 # check msg
106 start_test "msg"
107 folder -fast 2 >/dev/null
108 run_prog anno 1 -component Nmh-test
109 sed -e 's/^Nmh-test:.*/Nmh-test:/' "${MH_TEST_DIR}/Mail/inbox/1" >"$actual"
110 check "$expected" "$actual" 'keep first'
111 cp -f "${MH_TEST_DIR}/Mail/inbox/11" "${MH_TEST_DIR}/Mail/inbox/1"
112
113 check_for_hard_links
114 if [ $hard_links_supported -eq 1 ]; then
115 # check -noinplace
116 start_test "-noinplace"
117 # Hard link the message and verify that the new one doesn't get annotated.
118 cp "${MH_TEST_DIR}/Mail/inbox/8" "${MH_TEST_DIR}/Mail/inbox/8.copy"
119 ln "${MH_TEST_DIR}/Mail/inbox/8" "${MH_TEST_DIR}/Mail/inbox/8.link"
120 run_prog anno 8 -component Nmh-test -noinplace
121 mv -f "${MH_TEST_DIR}/Mail/inbox/8.copy" "${MH_TEST_DIR}/Mail/inbox/8"
122 check "${MH_TEST_DIR}/Mail/inbox/8" "${MH_TEST_DIR}/Mail/inbox/8.link" \
123 'keep first'
124
125 # check -inplace
126 start_test "-inplace"
127 # Hard link the message and verify that the new one does get annotated.
128 ln "${MH_TEST_DIR}/Mail/inbox/8" "${MH_TEST_DIR}/Mail/inbox/8.link"
129 run_prog anno 8 -component Nmh-test -noinplace -inplace
130 check "${MH_TEST_DIR}/Mail/inbox/8" "${MH_TEST_DIR}/Mail/inbox/8.link"
131 fi
132
133 # check -nodate. Without -text, it doesn't change the message.
134 start_test "-nodate. Without -text, it doesn't change the message."
135 cp -f "${MH_TEST_DIR}/Mail/inbox/11" "$expected-nodate"
136 run_prog anno 1 -component Nmh-test -nodate
137 cp -f "${MH_TEST_DIR}/Mail/inbox/1" "$actual"
138 check "$expected-nodate" "$actual"
139 cp -f "${MH_TEST_DIR}/Mail/inbox/11" "${MH_TEST_DIR}/Mail/inbox/1"
140
141 # check -date
142 start_test "-date"
143 run_prog anno 1 -component Nmh-test -nodate -date
144 sed -e 's/^Nmh-test:.*/Nmh-test:/' "${MH_TEST_DIR}/Mail/inbox/1" >"$actual"
145 check "$expected" "$actual" 'keep first'
146 cp -f "${MH_TEST_DIR}/Mail/inbox/11" "${MH_TEST_DIR}/Mail/inbox/1"
147
148 # check -draft.
149 start_test "-draft."
150 cp -f "${MH_TEST_DIR}/Mail/inbox/1" "${MH_TEST_DIR}/Mail/draft"
151 run_prog anno -draft -component Nmh-test
152 sed -e 's/^Nmh-test:.*/Nmh-test:/' "${MH_TEST_DIR}/Mail/draft" >"$actual"
153 check "$expected" "$actual"
154 rm "${MH_TEST_DIR}/Mail/draft"
155
156 # check -append
157 start_test "-append"
158 sed -e 's/\(Subject: Testing message 1\)/\1\
159 Nmh-test:/' <"${MH_TEST_DIR}/Mail/inbox/1" >"$expected"
160 run_prog anno 1 -component Nmh-test -append
161 sed -e 's/^Nmh-test:.*/Nmh-test:/' "${MH_TEST_DIR}/Mail/inbox/1" >"$actual"
162 check "$expected" "$actual"
163 cp -f "${MH_TEST_DIR}/Mail/inbox/11" "${MH_TEST_DIR}/Mail/inbox/1"
164
165 # check -list
166 start_test "-list"
167 printf 'Nmh-test: test of anno -list\n' >"$expected"
168 cat "${MH_TEST_DIR}/Mail/inbox/1" >>"$expected"
169 run_prog anno 1 -component Nmh-test -nodate -text 'test of anno -list'
170 run_test 'anno 1 -component Nmh-test -list' 'test of anno -list'
171 # check -text
172 start_test "-text"
173 check "$expected" "${MH_TEST_DIR}/Mail/inbox/1"
174 cp -f "${MH_TEST_DIR}/Mail/inbox/11" "${MH_TEST_DIR}/Mail/inbox/1"
175
176 # check -list -number
177 start_test "-list -number"
178 printf 'Nmh-test: test of anno -list -number\n' >"$expected"
179 cat "${MH_TEST_DIR}/Mail/inbox/1" >>"$expected"
180 run_prog anno 1 -component Nmh-test -nodate -text 'test of anno -list -number'
181 run_test 'anno 1 -component Nmh-test -list -number' \
182 '1 test of anno -list -number'
183 check "$expected" "${MH_TEST_DIR}/Mail/inbox/1"
184 cp -f "${MH_TEST_DIR}/Mail/inbox/11" "${MH_TEST_DIR}/Mail/inbox/1"
185
186 # check -delete
187 start_test "-delete"
188 cp "${MH_TEST_DIR}/Mail/inbox/1" "$expected"
189 run_prog anno 1 -component Nmh-test
190 run_prog anno 1 -component Nmh-test -delete
191 sed -e 's/^Nmh-test:.*/Nmh-test:/' "${MH_TEST_DIR}/Mail/inbox/1" >"$actual"
192 check "$expected" "$actual"
193 cp -f "${MH_TEST_DIR}/Mail/inbox/11" "${MH_TEST_DIR}/Mail/inbox/1"
194
195 # check -delete -number
196 start_test "-delete -number"
197 printf 'Nmh-test: 1\nNmh-test: 3\n' >"$expected"
198 cat "${MH_TEST_DIR}/Mail/inbox/1" >>"$expected"
199 run_prog anno 1 -component Nmh-test -nodate -text 3
200 run_prog anno 1 -component Nmh-test -nodate -text 2
201 run_prog anno 1 -component Nmh-test -nodate -text 1
202 run_prog anno 1 -component Nmh-test -delete -number 2
203 cp -f "${MH_TEST_DIR}/Mail/inbox/1" "$actual"
204 check "$expected" "$actual"
205 cp -f "${MH_TEST_DIR}/Mail/inbox/11" "${MH_TEST_DIR}/Mail/inbox/1"
206
207 # check -delete -all
208 start_test "-delete -all"
209 cp "${MH_TEST_DIR}/Mail/inbox/1" "$expected"
210 run_prog anno 1 -component Nmh-test -nodate -text 3
211 run_prog anno 1 -component Nmh-test -nodate -text 2
212 run_prog anno 1 -component Nmh-test -nodate -text 1
213 run_prog anno 1 -component Nmh-test -delete -number all
214 cp -f "${MH_TEST_DIR}/Mail/inbox/1" "$actual"
215 check "$expected" "$actual"
216 cp -f "${MH_TEST_DIR}/Mail/inbox/11" "${MH_TEST_DIR}/Mail/inbox/1"
217
218 # check -preserve
219 start_test "-preserve"
220 touch -t '201210010000.00' "${MH_TEST_DIR}/Mail/inbox/1"
221 ls -l "${MH_TEST_DIR}/Mail/inbox/1" >"$actual-ls1"
222 run_prog anno 1 -component Nmh-test -preserve
223 run_prog anno 1 -component Nmh-test -preserve -delete
224 ls -l "${MH_TEST_DIR}/Mail/inbox/1" >"$actual-ls2"
225 check "$actual-ls1" "$actual-ls2"
226 cp -f "${MH_TEST_DIR}/Mail/inbox/11" "${MH_TEST_DIR}/Mail/inbox/1"
227
228 # check -nopreserve
229 start_test "-nopreserve"
230 touch -t '2012100100.00' "${MH_TEST_DIR}/Mail/inbox/1"
231 ls -l "${MH_TEST_DIR}/Mail/inbox/1" >"$actual-ls1"
232 run_prog anno 1 -component Nmh-test -preserve -nopreserve
233 run_prog anno 1 -component Nmh-test -preserve -nopreserve -delete
234 ls -l "${MH_TEST_DIR}/Mail/inbox/1" >"$actual-ls2"
235 set +e
236 diff "$actual-ls1" "$actual-ls2" >/dev/null
237 run_test 'printf 1' "$?"
238 set -e
239 rm "$actual-ls1" "$actual-ls2"
240
241
242 finish_test
243 exit ${failed:-0}