--- /dev/null
+#!/bin/sh
+######################################################
+#
+# Test sortm
+#
+######################################################
+
+. "$MH_TEST_COMMON"
+
+
+expected=$MH_TEST_DIR/$$.expected
+actual=$MH_TEST_DIR/$$.actual
+
+cd "$MH_TEST_DIR"
+
+runandcheck "sortm -help" <<!
+Usage: sortm [+folder] [msgs] [switches]
+ switches are:
+ -datefield field
+ -textfield field
+ -(no)textfield
+ -limit days
+ -(no)limit
+ -[no]verbose
+ -Version
+ -help
+!
+
+
+cat >$MH_TEST_DIR/Mail/inbox/11 <<EOF || exit 1
+From: Test11 <test11@example.com>
+To: Some User <user@example.com>
+Date: Fri, 29 Sep 2006 00:00:01
+Alt-Date: Thu, 1 Sep 2005 00:00:00
+Subject: Re: common subject
+
+This is message number 11
+EOF
+
+cat >$MH_TEST_DIR/Mail/inbox/12 <<EOF || exit 1
+From: Test12 <test12@example.com>
+To: Some User <user@example.com>
+Date: Thu, 28 Sep 2006 23:59:59
+Alt-Date: Sat, 30 Sep 2006 00:00:00
+Subject: common subject
+
+This is message number 12
+EOF
+
+
+
+# check with no options
+
+runandcheck sortm <<!
+!
+runandcheck scan <<!
+ 1 2006-09-28 23:59 Test12 common subject
+ 2 2006-09-29 00:00 Test1 Testing message 1
+ 3 2006-09-29 00:00 Test2 Testing message 2
+ 4 2006-09-29 00:00 Test3 Testing message 3
+ 5 2006-09-29 00:00 Test4 Testing message 4
+ 6 2006-09-29 00:00 Test5 Testing message 5
+ 7 2006-09-29 00:00 Test6 Testing message 6
+ 8 2006-09-29 00:00 Test7 Testing message 7
+ 9 2006-09-29 00:00 Test8 Testing message 8
+ 10 2006-09-29 00:00 Test9 Testing message 9
+ 11 2006-09-29 00:00 Test10 Testing message 10
+ 12 2006-09-29 00:00 Test11 Re: common subject
+!
+
+
+
+# check +folder
+
+refile f +inbox
+folder -pack >/dev/null
+
+runandcheck "sortm +inbox" <<!
+!
+runandcheck "scan" <<!
+ 1 2006-09-28 23:59 Test12 common subject
+ 2 2006-09-29 00:00 Test1 Testing message 1
+ 3 2006-09-29 00:00 Test2 Testing message 2
+ 4 2006-09-29 00:00 Test3 Testing message 3
+ 5 2006-09-29 00:00 Test4 Testing message 4
+ 6 2006-09-29 00:00 Test5 Testing message 5
+ 7 2006-09-29 00:00 Test6 Testing message 6
+ 8 2006-09-29 00:00 Test7 Testing message 7
+ 9 2006-09-29 00:00 Test8 Testing message 8
+ 10 2006-09-29 00:00 Test9 Testing message 9
+ 11 2006-09-29 00:00 Test10 Testing message 10
+ 12 2006-09-29 00:00 Test11 Re: common subject
+!
+
+
+
+# check -verbose
+
+refile f +inbox
+folder -pack >/dev/null
+
+runandcheck "sortm -verbose" <<!
+sorting by datefield date
+renaming message chain from 12 to 1
+message 11 becomes message 12
+message 10 becomes message 11
+message 9 becomes message 10
+message 8 becomes message 9
+message 7 becomes message 8
+message 6 becomes message 7
+message 5 becomes message 6
+message 4 becomes message 5
+message 3 becomes message 4
+message 2 becomes message 3
+message 1 becomes message 2
+!
+runandcheck "scan" <<!
+ 1 2006-09-28 23:59 Test12 common subject
+ 2 2006-09-29 00:00 Test1 Testing message 1
+ 3 2006-09-29 00:00 Test2 Testing message 2
+ 4 2006-09-29 00:00 Test3 Testing message 3
+ 5 2006-09-29 00:00 Test4 Testing message 4
+ 6 2006-09-29 00:00 Test5 Testing message 5
+ 7 2006-09-29 00:00 Test6 Testing message 6
+ 8 2006-09-29 00:00 Test7 Testing message 7
+ 9 2006-09-29 00:00 Test8 Testing message 8
+ 10 2006-09-29 00:00 Test9 Testing message 9
+ 11 2006-09-29 00:00 Test10 Testing message 10
+ 12 2006-09-29 00:00 Test11 Re: common subject
+!
+
+
+
+# check -noverbose
+
+refile f +inbox
+folder -pack >/dev/null
+
+runandcheck "sortm -verbose -noverbose" <<!
+!
+runandcheck "scan" <<!
+ 1 2006-09-28 23:59 Test12 common subject
+ 2 2006-09-29 00:00 Test1 Testing message 1
+ 3 2006-09-29 00:00 Test2 Testing message 2
+ 4 2006-09-29 00:00 Test3 Testing message 3
+ 5 2006-09-29 00:00 Test4 Testing message 4
+ 6 2006-09-29 00:00 Test5 Testing message 5
+ 7 2006-09-29 00:00 Test6 Testing message 6
+ 8 2006-09-29 00:00 Test7 Testing message 7
+ 9 2006-09-29 00:00 Test8 Testing message 8
+ 10 2006-09-29 00:00 Test9 Testing message 9
+ 11 2006-09-29 00:00 Test10 Testing message 10
+ 12 2006-09-29 00:00 Test11 Re: common subject
+!
+
+
+
+# check msgs
+
+refile f +inbox
+folder -pack >/dev/null
+
+runandcheck "sortm f l" <<!
+!
+runandcheck "scan" <<!
+ 1 2006-09-28 23:59 Test12 common subject
+ 2 2006-09-29 00:00 Test2 Testing message 2
+ 3 2006-09-29 00:00 Test3 Testing message 3
+ 4 2006-09-29 00:00 Test4 Testing message 4
+ 5 2006-09-29 00:00 Test5 Testing message 5
+ 6 2006-09-29 00:00 Test6 Testing message 6
+ 7 2006-09-29 00:00 Test7 Testing message 7
+ 8 2006-09-29 00:00 Test8 Testing message 8
+ 9 2006-09-29 00:00 Test9 Testing message 9
+ 10 2006-09-29 00:00 Test10 Testing message 10
+ 11 2006-09-29 00:00 Test11 Re: common subject
+ 12 2006-09-29 00:00 Test1 Testing message 1
+!
+
+
+
+# check -datefield
+
+runandcheck "sortm -datefield Alt-Date 1 11" <<!
+!
+runandcheck scan <<!
+ 1 2006-09-29 00:00 Test11 Re: common subject
+ 2 2006-09-29 00:00 Test2 Testing message 2
+ 3 2006-09-29 00:00 Test3 Testing message 3
+ 4 2006-09-29 00:00 Test4 Testing message 4
+ 5 2006-09-29 00:00 Test5 Testing message 5
+ 6 2006-09-29 00:00 Test6 Testing message 6
+ 7 2006-09-29 00:00 Test7 Testing message 7
+ 8 2006-09-29 00:00 Test8 Testing message 8
+ 9 2006-09-29 00:00 Test9 Testing message 9
+ 10 2006-09-29 00:00 Test10 Testing message 10
+ 11 2006-09-28 23:59 Test12 common subject
+ 12 2006-09-29 00:00 Test1 Testing message 1
+!
+
+
+
+# check -textfield subject (datefield major, subjects grouped)
+
+runandcheck "sortm -textfield subject" <<!
+!
+runandcheck scan <<!
+ 1 2006-09-28 23:59 Test12 common subject
+ 2 2006-09-29 00:00 Test11 Re: common subject
+ 3 2006-09-29 00:00 Test2 Testing message 2
+ 4 2006-09-29 00:00 Test3 Testing message 3
+ 5 2006-09-29 00:00 Test4 Testing message 4
+ 6 2006-09-29 00:00 Test5 Testing message 5
+ 7 2006-09-29 00:00 Test6 Testing message 6
+ 8 2006-09-29 00:00 Test7 Testing message 7
+ 9 2006-09-29 00:00 Test8 Testing message 8
+ 10 2006-09-29 00:00 Test9 Testing message 9
+ 11 2006-09-29 00:00 Test10 Testing message 10
+ 12 2006-09-29 00:00 Test1 Testing message 1
+!
+
+
+
+# check -nolimit
+
+runandcheck "sortm -textfield subject -limit 0 -nolimit" <<!
+!
+runandcheck scan <<!
+ 1 2006-09-28 23:59 Test12 common subject
+ 2 2006-09-29 00:00 Test11 Re: common subject
+ 3 2006-09-29 00:00 Test2 Testing message 2
+ 4 2006-09-29 00:00 Test3 Testing message 3
+ 5 2006-09-29 00:00 Test4 Testing message 4
+ 6 2006-09-29 00:00 Test5 Testing message 5
+ 7 2006-09-29 00:00 Test6 Testing message 6
+ 8 2006-09-29 00:00 Test7 Testing message 7
+ 9 2006-09-29 00:00 Test8 Testing message 8
+ 10 2006-09-29 00:00 Test9 Testing message 9
+ 11 2006-09-29 00:00 Test10 Testing message 10
+ 12 2006-09-29 00:00 Test1 Testing message 1
+!
+
+
+
+# check -textfield subject -limit 0 (subject sort)
+
+refile 2-7 +inbox
+refile 1 +inbox
+folder -pack l >/dev/null
+
+runandcheck "sortm -textfield subject -limit 0" <<!
+!
+runandcheck "scan" <<!
+ 1 2006-09-29 00:00 Test11 Re: common subject
+ 2 2006-09-28 23:59 Test12 common subject
+ 3 2006-09-29 00:00 Test1 Testing message 1
+ 4 2006-09-29 00:00 Test10 Testing message 10
+ 5 2006-09-29 00:00 Test2 Testing message 2
+ 6 2006-09-29 00:00 Test3 Testing message 3
+ 7 2006-09-29 00:00 Test4 Testing message 4
+ 8 2006-09-29 00:00 Test5 Testing message 5
+ 9 2006-09-29 00:00 Test6 Testing message 6
+ 10 2006-09-29 00:00 Test7 Testing message 7
+ 11 2006-09-29 00:00 Test8 Testing message 8
+ 12+ 2006-09-29 00:00 Test9 Testing message 9
+!
+
+
+
+# check -textfield -limit 0 (text sort)
+
+refile 2-7 +inbox
+refile 1 +inbox
+folder -pack l >/dev/null
+
+runandcheck "sortm -textfield from -limit 0" <<!
+!
+runandcheck "scan" <<!
+ 1 2006-09-29 00:00 Test10 Testing message 10
+ 2 2006-09-29 00:00 Test11 Re: common subject
+ 3 2006-09-28 23:59 Test12 common subject
+ 4 2006-09-29 00:00 Test1 Testing message 1
+ 5 2006-09-29 00:00 Test2 Testing message 2
+ 6 2006-09-29 00:00 Test3 Testing message 3
+ 7 2006-09-29 00:00 Test4 Testing message 4
+ 8 2006-09-29 00:00 Test5 Testing message 5
+ 9 2006-09-29 00:00 Test6 Testing message 6
+ 10 2006-09-29 00:00 Test7 Testing message 7
+ 11 2006-09-29 00:00 Test8 Testing message 8
+ 12+ 2006-09-29 00:00 Test9 Testing message 9
+!
+
+
+
+# add another message
+
+cat >$MH_TEST_DIR/Mail/inbox/13 <<EOF || exit 1
+From: Test13 <test13@example.com>
+To: Some User <user@example.com>
+Date: Tue, 31 Oct 2006 23:59:59
+Subject: Re: common subject
+
+This is message number 13
+EOF
+
+
+
+# check -textfield with finite -limit that doesn't cover message 13
+
+refile 2-7 +inbox
+refile 1 +inbox
+folder -pack l >/dev/null
+
+runandcheck "sortm -textfield subject -limit 10" <<!
+!
+runandcheck "scan" <<!
+ 1 2006-09-28 23:59 Test12 common subject
+ 2 2006-09-29 00:00 Test11 Re: common subject
+ 3 2006-09-29 00:00 Test5 Testing message 5
+ 4 2006-09-29 00:00 Test6 Testing message 6
+ 5 2006-09-29 00:00 Test7 Testing message 7
+ 6 2006-09-29 00:00 Test8 Testing message 8
+ 7 2006-09-29 00:00 Test9 Testing message 9
+ 8 2006-09-29 00:00 Test1 Testing message 1
+ 9 2006-09-29 00:00 Test2 Testing message 2
+ 10 2006-09-29 00:00 Test3 Testing message 3
+ 11 2006-09-29 00:00 Test4 Testing message 4
+ 12+ 2006-09-29 00:00 Test10 Testing message 10
+ 13 2006-10-31 23:59 Test13 Re: common subject
+!
+
+
+
+# check -textfield with finite -limit that does cover message 13
+
+refile 2-7 +inbox
+refile 1 +inbox
+folder -pack l >/dev/null
+
+runandcheck "sortm -textfield subject -limit 60" <<!
+!
+runandcheck scan <<!
+ 1 2006-09-28 23:59 Test12 common subject
+ 2 2006-09-29 00:00 Test11 Re: common subject
+ 3 2006-10-31 23:59 Test13 Re: common subject
+ 4 2006-09-29 00:00 Test1 Testing message 1
+ 5 2006-09-29 00:00 Test2 Testing message 2
+ 6 2006-09-29 00:00 Test3 Testing message 3
+ 7 2006-09-29 00:00 Test4 Testing message 4
+ 8 2006-09-29 00:00 Test10 Testing message 10
+ 9 2006-09-29 00:00 Test5 Testing message 5
+ 10 2006-09-29 00:00 Test6 Testing message 6
+ 11 2006-09-29 00:00 Test7 Testing message 7
+ 12 2006-09-29 00:00 Test8 Testing message 8
+ 13+ 2006-09-29 00:00 Test9 Testing message 9
+!
+
+
+
+# check -notextfield
+
+refile 2-7 +inbox
+refile 1 +inbox
+folder -pack l >/dev/null
+
+runandcheck "sortm -textfield subject -limit 60 -notextfield" <<!
+!
+runandcheck scan <<!
+ 1 2006-09-28 23:59 Test12 common subject
+ 2 2006-09-29 00:00 Test10 Testing message 10
+ 3 2006-09-29 00:00 Test5 Testing message 5
+ 4 2006-09-29 00:00 Test6 Testing message 6
+ 5 2006-09-29 00:00 Test7 Testing message 7
+ 6 2006-09-29 00:00 Test8 Testing message 8
+ 7 2006-09-29 00:00 Test9 Testing message 9
+ 8 2006-09-29 00:00 Test1 Testing message 1
+ 9 2006-09-29 00:00 Test2 Testing message 2
+ 10 2006-09-29 00:00 Test3 Testing message 3
+ 11 2006-09-29 00:00 Test4 Testing message 4
+ 12 2006-09-29 00:00 Test11 Re: common subject
+ 13+ 2006-10-31 23:59 Test13 Re: common subject
+!
+
+
+
+# check -check
+
+sed -e 's/Sep//' $MH_TEST_DIR/Mail/inbox/7 > $MH_TEST_DIR/Mail/inbox/14
+
+runandcheck "sortm" <<!
+sortm: can't parse date field in message 14, continuing...
+!
+runandcheck scan <<!
+ 1 2006-09-28 23:59 Test12 common subject
+ 2 2006-09-29 00:00 Test10 Testing message 10
+ 3 2006-09-29 00:00 Test5 Testing message 5
+ 4 2006-09-29 00:00 Test6 Testing message 6
+ 5 2006-09-29 00:00 Test7 Testing message 7
+ 6 2006-09-29 00:00 Test8 Testing message 8
+ 7 2006-09-29 00:00 Test9 Testing message 9
+ 8 2006-09-29 00:00 Test1 Testing message 1
+ 9 2006-09-29 00:00 Test2 Testing message 2
+ 10 2006-09-29 00:00 Test3 Testing message 3
+ 11 2006-09-29 00:00 Test4 Testing message 4
+ 12 2006-09-29 00:00 Test11 Re: common subject
+ 13+ 2006-10-31 23:59 Test13 Re: common subject
+ 14 0-01-00 00:00 Test9 Testing message 9
+!
+