2 ######################################################
6 ######################################################
10 if test -z "${MH_OBJ_DIR}"; then
11 srcdir=`dirname $0`/../..
12 MH_OBJ_DIR=`cd $srcdir && pwd`; export MH_OBJ_DIR
15 . "$MH_OBJ_DIR/test/common.sh"
19 expected=$MH_TEST_DIR/$$.expected
20 actual=$MH_TEST_DIR/$$.actual
26 Usage: sortm [+folder] [msgs] [switches]
38 sortm -help >$actual 2>&1
39 check $expected $actual
42 case `sortm -version` in
44 * ) echo "$0: sortm -v generated unexpected output" 1>&2
45 failed=`expr ${failed:-0} + 1`;;
48 cat > $MH_TEST_DIR/Mail/inbox/11 <<EOF || exit 1
49 From: Test11 <test11@example.com>
50 To: Some User <user@example.com>
51 Date: Fri, 29 Sep 2006 00:00:01
52 Alt-Date: Thu, 1 Sep 2005 00:00:00
53 Subject: Re: common subject
55 This is message number 11
58 cat > $MH_TEST_DIR/Mail/inbox/12 <<EOF || exit 1
59 From: Test12 <test12@example.com>
60 To: Some User <user@example.com>
61 Date: Thu, 28 Sep 2006 23:59:59
62 Alt-Date: Sat, 30 Sep 2006 00:00:00
63 Subject: common subject
65 This is message number 12
68 # check with no options
70 1 09/28 Test12 common subject<<This is message number 12 >>
71 2 09/29 Test1 Testing message 1<<This is message number 1 >>
72 3 09/29 Test2 Testing message 2<<This is message number 2 >>
73 4 09/29 Test3 Testing message 3<<This is message number 3 >>
74 5 09/29 Test4 Testing message 4<<This is message number 4 >>
75 6 09/29 Test5 Testing message 5<<This is message number 5 >>
76 7 09/29 Test6 Testing message 6<<This is message number 6 >>
77 8 09/29 Test7 Testing message 7<<This is message number 7 >>
78 9 09/29 Test8 Testing message 8<<This is message number 8 >>
79 10 09/29 Test9 Testing message 9<<This is message number 9 >>
80 11 09/29 Test10 Testing message 10<<This is message number 10 >>
81 12 09/29 Test11 Re: common subject<<This is message number 11 >>
86 check $expected $actual
90 1 09/28 Test12 common subject<<This is message number 12 >>
91 2+ 09/29 Test1 Testing message 1<<This is message number 1 >>
92 3 09/29 Test2 Testing message 2<<This is message number 2 >>
93 4 09/29 Test3 Testing message 3<<This is message number 3 >>
94 5 09/29 Test4 Testing message 4<<This is message number 4 >>
95 6 09/29 Test5 Testing message 5<<This is message number 5 >>
96 7 09/29 Test6 Testing message 6<<This is message number 6 >>
97 8 09/29 Test7 Testing message 7<<This is message number 7 >>
98 9 09/29 Test8 Testing message 8<<This is message number 8 >>
99 10 09/29 Test9 Testing message 9<<This is message number 9 >>
100 11 09/29 Test10 Testing message 10<<This is message number 10 >>
101 12 09/29 Test11 Re: common subject<<This is message number 11 >>
105 folder -pack > /dev/null
108 check $expected $actual
112 sorting by datefield date
113 renaming message chain from 12 to 1
114 message 11 becomes message 12
115 message 10 becomes message 11
116 message 9 becomes message 10
117 message 8 becomes message 9
118 message 7 becomes message 8
119 message 6 becomes message 7
120 message 5 becomes message 6
121 message 4 becomes message 5
122 message 3 becomes message 4
123 message 2 becomes message 3
124 message 1 becomes message 2
125 1 09/28 Test12 common subject<<This is message number 12 >>
126 2+ 09/29 Test1 Testing message 1<<This is message number 1 >>
127 3 09/29 Test2 Testing message 2<<This is message number 2 >>
128 4 09/29 Test3 Testing message 3<<This is message number 3 >>
129 5 09/29 Test4 Testing message 4<<This is message number 4 >>
130 6 09/29 Test5 Testing message 5<<This is message number 5 >>
131 7 09/29 Test6 Testing message 6<<This is message number 6 >>
132 8 09/29 Test7 Testing message 7<<This is message number 7 >>
133 9 09/29 Test8 Testing message 8<<This is message number 8 >>
134 10 09/29 Test9 Testing message 9<<This is message number 9 >>
135 11 09/29 Test10 Testing message 10<<This is message number 10 >>
136 12 09/29 Test11 Re: common subject<<This is message number 11 >>
140 folder -pack > /dev/null
141 sortm -verbose >$actual
143 check $expected $actual
147 1 09/28 Test12 common subject<<This is message number 12 >>
148 2+ 09/29 Test1 Testing message 1<<This is message number 1 >>
149 3 09/29 Test2 Testing message 2<<This is message number 2 >>
150 4 09/29 Test3 Testing message 3<<This is message number 3 >>
151 5 09/29 Test4 Testing message 4<<This is message number 4 >>
152 6 09/29 Test5 Testing message 5<<This is message number 5 >>
153 7 09/29 Test6 Testing message 6<<This is message number 6 >>
154 8 09/29 Test7 Testing message 7<<This is message number 7 >>
155 9 09/29 Test8 Testing message 8<<This is message number 8 >>
156 10 09/29 Test9 Testing message 9<<This is message number 9 >>
157 11 09/29 Test10 Testing message 10<<This is message number 10 >>
158 12 09/29 Test11 Re: common subject<<This is message number 11 >>
162 folder -pack > /dev/null
163 sortm -verbose -noverbose >$actual
165 check $expected $actual
169 1 09/28 Test12 common subject<<This is message number 12 >>
170 2 09/29 Test2 Testing message 2<<This is message number 2 >>
171 3 09/29 Test3 Testing message 3<<This is message number 3 >>
172 4 09/29 Test4 Testing message 4<<This is message number 4 >>
173 5 09/29 Test5 Testing message 5<<This is message number 5 >>
174 6 09/29 Test6 Testing message 6<<This is message number 6 >>
175 7 09/29 Test7 Testing message 7<<This is message number 7 >>
176 8 09/29 Test8 Testing message 8<<This is message number 8 >>
177 9 09/29 Test9 Testing message 9<<This is message number 9 >>
178 10 09/29 Test10 Testing message 10<<This is message number 10 >>
179 11 09/29 Test11 Re: common subject<<This is message number 11 >>
180 12+ 09/29 Test1 Testing message 1<<This is message number 1 >>
184 folder -pack > /dev/null
187 check $expected $actual
191 1 09/29 Test11 Re: common subject<<This is message number 11 >>
192 2 09/29 Test2 Testing message 2<<This is message number 2 >>
193 3 09/29 Test3 Testing message 3<<This is message number 3 >>
194 4 09/29 Test4 Testing message 4<<This is message number 4 >>
195 5 09/29 Test5 Testing message 5<<This is message number 5 >>
196 6 09/29 Test6 Testing message 6<<This is message number 6 >>
197 7 09/29 Test7 Testing message 7<<This is message number 7 >>
198 8 09/29 Test8 Testing message 8<<This is message number 8 >>
199 9 09/29 Test9 Testing message 9<<This is message number 9 >>
200 10 09/29 Test10 Testing message 10<<This is message number 10 >>
201 11 09/28 Test12 common subject<<This is message number 12 >>
202 12+ 09/29 Test1 Testing message 1<<This is message number 1 >>
205 sortm -datefield Alt-Date 1 11
207 check $expected $actual
209 # check -textfield subject (datefield major, subjects grouped)
211 1 09/28 Test12 common subject<<This is message number 12 >>
212 2 09/29 Test11 Re: common subject<<This is message number 11 >>
213 3 09/29 Test2 Testing message 2<<This is message number 2 >>
214 4 09/29 Test3 Testing message 3<<This is message number 3 >>
215 5 09/29 Test4 Testing message 4<<This is message number 4 >>
216 6 09/29 Test5 Testing message 5<<This is message number 5 >>
217 7 09/29 Test6 Testing message 6<<This is message number 6 >>
218 8 09/29 Test7 Testing message 7<<This is message number 7 >>
219 9 09/29 Test8 Testing message 8<<This is message number 8 >>
220 10 09/29 Test9 Testing message 9<<This is message number 9 >>
221 11 09/29 Test10 Testing message 10<<This is message number 10 >>
222 12+ 09/29 Test1 Testing message 1<<This is message number 1 >>
225 sortm -textfield subject
227 check $expected $actual
231 1 09/28 Test12 common subject<<This is message number 12 >>
232 2 09/29 Test11 Re: common subject<<This is message number 11 >>
233 3 09/29 Test2 Testing message 2<<This is message number 2 >>
234 4 09/29 Test3 Testing message 3<<This is message number 3 >>
235 5 09/29 Test4 Testing message 4<<This is message number 4 >>
236 6 09/29 Test5 Testing message 5<<This is message number 5 >>
237 7 09/29 Test6 Testing message 6<<This is message number 6 >>
238 8 09/29 Test7 Testing message 7<<This is message number 7 >>
239 9 09/29 Test8 Testing message 8<<This is message number 8 >>
240 10 09/29 Test9 Testing message 9<<This is message number 9 >>
241 11 09/29 Test10 Testing message 10<<This is message number 10 >>
242 12+ 09/29 Test1 Testing message 1<<This is message number 1 >>
245 sortm -textfield subject -limit 0 -nolimit
247 check $expected $actual
249 # check -textfield subject -limit 0 (subject sort)
251 1 09/29 Test11 Re: common subject<<This is message number 11 >>
252 2 09/28 Test12 common subject<<This is message number 12 >>
253 3 09/29 Test1 Testing message 1<<This is message number 1 >>
254 4 09/29 Test10 Testing message 10<<This is message number 10 >>
255 5 09/29 Test2 Testing message 2<<This is message number 2 >>
256 6 09/29 Test3 Testing message 3<<This is message number 3 >>
257 7 09/29 Test4 Testing message 4<<This is message number 4 >>
258 8 09/29 Test5 Testing message 5<<This is message number 5 >>
259 9 09/29 Test6 Testing message 6<<This is message number 6 >>
260 10 09/29 Test7 Testing message 7<<This is message number 7 >>
261 11 09/29 Test8 Testing message 8<<This is message number 8 >>
262 12+ 09/29 Test9 Testing message 9<<This is message number 9 >>
265 refile 2-7 +inbox; refile 1 +inbox; folder -pa last >/dev/null
266 sortm -textfield subject -limit 0
268 check $expected $actual
270 # check -textfield -limit 0 (text sort)
272 1 09/29 Test10 Testing message 10<<This is message number 10 >>
273 2 09/29 Test11 Re: common subject<<This is message number 11 >>
274 3 09/28 Test12 common subject<<This is message number 12 >>
275 4 09/29 Test1 Testing message 1<<This is message number 1 >>
276 5 09/29 Test2 Testing message 2<<This is message number 2 >>
277 6 09/29 Test3 Testing message 3<<This is message number 3 >>
278 7 09/29 Test4 Testing message 4<<This is message number 4 >>
279 8 09/29 Test5 Testing message 5<<This is message number 5 >>
280 9 09/29 Test6 Testing message 6<<This is message number 6 >>
281 10 09/29 Test7 Testing message 7<<This is message number 7 >>
282 11 09/29 Test8 Testing message 8<<This is message number 8 >>
283 12+ 09/29 Test9 Testing message 9<<This is message number 9 >>
286 refile 2-7 +inbox; refile 1 +inbox; folder -pa last >/dev/null
287 sortm -textfield from -limit 0
289 check $expected $actual
291 # check -textfield with finite -limit that doesn't cover message 13
292 cat > $MH_TEST_DIR/Mail/inbox/13 <<EOF || exit 1
293 From: Test13 <test13@example.com>
294 To: Some User <user@example.com>
295 Date: Tue, 31 Oct 2006 23:59:59
296 Subject: Re: common subject
298 This is message number 13
302 1 09/28 Test12 common subject<<This is message number 12 >>
303 2 09/29 Test11 Re: common subject<<This is message number 11 >>
304 3 09/29 Test5 Testing message 5<<This is message number 5 >>
305 4 09/29 Test6 Testing message 6<<This is message number 6 >>
306 5 09/29 Test7 Testing message 7<<This is message number 7 >>
307 6 09/29 Test8 Testing message 8<<This is message number 8 >>
308 7 09/29 Test9 Testing message 9<<This is message number 9 >>
309 8 09/29 Test1 Testing message 1<<This is message number 1 >>
310 9 09/29 Test2 Testing message 2<<This is message number 2 >>
311 10 09/29 Test3 Testing message 3<<This is message number 3 >>
312 11 09/29 Test4 Testing message 4<<This is message number 4 >>
313 12+ 09/29 Test10 Testing message 10<<This is message number 10 >>
314 13 10/31 Test13 Re: common subject<<This is message number 13 >>
317 refile 2-7 +inbox; refile 1 +inbox; folder -pa last >/dev/null
318 sortm -textfield subject -limit 10
320 check $expected $actual
322 # check -textfield with finite -limit that does cover message 13
324 1 09/28 Test12 common subject<<This is message number 12 >>
325 2 09/29 Test11 Re: common subject<<This is message number 11 >>
326 3 10/31 Test13 Re: common subject<<This is message number 13 >>
327 4 09/29 Test1 Testing message 1<<This is message number 1 >>
328 5 09/29 Test2 Testing message 2<<This is message number 2 >>
329 6 09/29 Test3 Testing message 3<<This is message number 3 >>
330 7 09/29 Test4 Testing message 4<<This is message number 4 >>
331 8 09/29 Test10 Testing message 10<<This is message number 10 >>
332 9 09/29 Test5 Testing message 5<<This is message number 5 >>
333 10 09/29 Test6 Testing message 6<<This is message number 6 >>
334 11 09/29 Test7 Testing message 7<<This is message number 7 >>
335 12 09/29 Test8 Testing message 8<<This is message number 8 >>
336 13+ 09/29 Test9 Testing message 9<<This is message number 9 >>
339 refile 2-7 +inbox; refile 1 +inbox; folder -pa last >/dev/null
340 sortm -textfield subject -limit 60
342 check $expected $actual
346 1 09/28 Test12 common subject<<This is message number 12 >>
347 2 09/29 Test10 Testing message 10<<This is message number 10 >>
348 3 09/29 Test5 Testing message 5<<This is message number 5 >>
349 4 09/29 Test6 Testing message 6<<This is message number 6 >>
350 5 09/29 Test7 Testing message 7<<This is message number 7 >>
351 6 09/29 Test8 Testing message 8<<This is message number 8 >>
352 7 09/29 Test9 Testing message 9<<This is message number 9 >>
353 8 09/29 Test1 Testing message 1<<This is message number 1 >>
354 9 09/29 Test2 Testing message 2<<This is message number 2 >>
355 10 09/29 Test3 Testing message 3<<This is message number 3 >>
356 11 09/29 Test4 Testing message 4<<This is message number 4 >>
357 12 09/29 Test11 Re: common subject<<This is message number 11 >>
358 13+ 10/31 Test13 Re: common subject<<This is message number 13 >>
361 refile 2-7 +inbox; refile 1 +inbox; folder -pa last >/dev/null
362 sortm -textfield subject -limit 60 -notextfield
364 check $expected $actual