#!/bin/sh ###################################################### # # Test sortm # ###################################################### 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 expected=$MH_TEST_DIR/$$.expected actual=$MH_TEST_DIR/$$.actual cd $MH_TEST_DIR # check -help cat >"$expected" <"$actual" 2>&1 check "$expected" "$actual" # check -version case `sortm -version` in sortm\ --*) ;; * ) echo "$0: sortm -v generated unexpected output" 1>&2 failed=`expr ${failed:-0} + 1`;; esac cat >$MH_TEST_DIR/Mail/inbox/11 < To: Some User 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 < To: Some User 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 cat >"$expected" <> 2 09/29 Test1 Testing message 1<> 3 09/29 Test2 Testing message 2<> 4 09/29 Test3 Testing message 3<> 5 09/29 Test4 Testing message 4<> 6 09/29 Test5 Testing message 5<> 7 09/29 Test6 Testing message 6<> 8 09/29 Test7 Testing message 7<> 9 09/29 Test8 Testing message 8<> 10 09/29 Test9 Testing message 9<> 11 09/29 Test10 Testing message 10<> 12 09/29 Test11 Re: common subject<> EOF sortm scan >"$actual" check "$expected" "$actual" # check +folder cat >"$expected" <> 2+ 09/29 Test1 Testing message 1<> 3 09/29 Test2 Testing message 2<> 4 09/29 Test3 Testing message 3<> 5 09/29 Test4 Testing message 4<> 6 09/29 Test5 Testing message 5<> 7 09/29 Test6 Testing message 6<> 8 09/29 Test7 Testing message 7<> 9 09/29 Test8 Testing message 8<> 10 09/29 Test9 Testing message 9<> 11 09/29 Test10 Testing message 10<> 12 09/29 Test11 Re: common subject<> EOF refile first +inbox; folder -pack >/dev/null sortm +inbox scan >"$actual" check "$expected" "$actual" # check -verbose cat >"$expected" <> 2+ 09/29 Test1 Testing message 1<> 3 09/29 Test2 Testing message 2<> 4 09/29 Test3 Testing message 3<> 5 09/29 Test4 Testing message 4<> 6 09/29 Test5 Testing message 5<> 7 09/29 Test6 Testing message 6<> 8 09/29 Test7 Testing message 7<> 9 09/29 Test8 Testing message 8<> 10 09/29 Test9 Testing message 9<> 11 09/29 Test10 Testing message 10<> 12 09/29 Test11 Re: common subject<> EOF refile first +inbox; folder -pack >/dev/null sortm -verbose >"$actual" scan >>"$actual" check "$expected" "$actual" # check -noverbose cat >"$expected" <> 2+ 09/29 Test1 Testing message 1<> 3 09/29 Test2 Testing message 2<> 4 09/29 Test3 Testing message 3<> 5 09/29 Test4 Testing message 4<> 6 09/29 Test5 Testing message 5<> 7 09/29 Test6 Testing message 6<> 8 09/29 Test7 Testing message 7<> 9 09/29 Test8 Testing message 8<> 10 09/29 Test9 Testing message 9<> 11 09/29 Test10 Testing message 10<> 12 09/29 Test11 Re: common subject<> EOF refile first +inbox; folder -pack >/dev/null sortm -verbose -noverbose >"$actual" scan >>"$actual" check "$expected" "$actual" # check msgs cat >"$expected" <> 2 09/29 Test2 Testing message 2<> 3 09/29 Test3 Testing message 3<> 4 09/29 Test4 Testing message 4<> 5 09/29 Test5 Testing message 5<> 6 09/29 Test6 Testing message 6<> 7 09/29 Test7 Testing message 7<> 8 09/29 Test8 Testing message 8<> 9 09/29 Test9 Testing message 9<> 10 09/29 Test10 Testing message 10<> 11 09/29 Test11 Re: common subject<> 12+ 09/29 Test1 Testing message 1<> EOF refile first +inbox; folder -pack >/dev/null sortm first last scan >"$actual" check "$expected" "$actual" # check -datefield cat >"$expected" <> 2 09/29 Test2 Testing message 2<> 3 09/29 Test3 Testing message 3<> 4 09/29 Test4 Testing message 4<> 5 09/29 Test5 Testing message 5<> 6 09/29 Test6 Testing message 6<> 7 09/29 Test7 Testing message 7<> 8 09/29 Test8 Testing message 8<> 9 09/29 Test9 Testing message 9<> 10 09/29 Test10 Testing message 10<> 11 09/28 Test12 common subject<> 12+ 09/29 Test1 Testing message 1<> EOF sortm -datefield Alt-Date 1 11 scan >"$actual" check "$expected" "$actual" # check -textfield subject (datefield major, subjects grouped) cat >"$expected" <> 2 09/29 Test11 Re: common subject<> 3 09/29 Test2 Testing message 2<> 4 09/29 Test3 Testing message 3<> 5 09/29 Test4 Testing message 4<> 6 09/29 Test5 Testing message 5<> 7 09/29 Test6 Testing message 6<> 8 09/29 Test7 Testing message 7<> 9 09/29 Test8 Testing message 8<> 10 09/29 Test9 Testing message 9<> 11 09/29 Test10 Testing message 10<> 12+ 09/29 Test1 Testing message 1<> EOF sortm -textfield subject scan >"$actual" check "$expected" "$actual" # check -nolimit cat >"$expected" <> 2 09/29 Test11 Re: common subject<> 3 09/29 Test2 Testing message 2<> 4 09/29 Test3 Testing message 3<> 5 09/29 Test4 Testing message 4<> 6 09/29 Test5 Testing message 5<> 7 09/29 Test6 Testing message 6<> 8 09/29 Test7 Testing message 7<> 9 09/29 Test8 Testing message 8<> 10 09/29 Test9 Testing message 9<> 11 09/29 Test10 Testing message 10<> 12+ 09/29 Test1 Testing message 1<> EOF sortm -textfield subject -limit 0 -nolimit scan >"$actual" check "$expected" "$actual" # check -textfield subject -limit 0 (subject sort) cat >"$expected" <> 2 09/28 Test12 common subject<> 3 09/29 Test1 Testing message 1<> 4 09/29 Test10 Testing message 10<> 5 09/29 Test2 Testing message 2<> 6 09/29 Test3 Testing message 3<> 7 09/29 Test4 Testing message 4<> 8 09/29 Test5 Testing message 5<> 9 09/29 Test6 Testing message 6<> 10 09/29 Test7 Testing message 7<> 11 09/29 Test8 Testing message 8<> 12+ 09/29 Test9 Testing message 9<> EOF refile 2-7 +inbox; refile 1 +inbox; folder -pack last >/dev/null sortm -textfield subject -limit 0 scan >"$actual" check "$expected" "$actual" # check -textfield -limit 0 (text sort) cat >"$expected" <> 2 09/29 Test11 Re: common subject<> 3 09/28 Test12 common subject<> 4 09/29 Test1 Testing message 1<> 5 09/29 Test2 Testing message 2<> 6 09/29 Test3 Testing message 3<> 7 09/29 Test4 Testing message 4<> 8 09/29 Test5 Testing message 5<> 9 09/29 Test6 Testing message 6<> 10 09/29 Test7 Testing message 7<> 11 09/29 Test8 Testing message 8<> 12+ 09/29 Test9 Testing message 9<> EOF refile 2-7 +inbox; refile 1 +inbox; folder -pack last >/dev/null sortm -textfield from -limit 0 scan >"$actual" check "$expected" "$actual" # check -textfield with finite -limit that doesn't cover message 13 cat >$MH_TEST_DIR/Mail/inbox/13 < To: Some User Date: Tue, 31 Oct 2006 23:59:59 Subject: Re: common subject This is message number 13 EOF cat >"$expected" <> 2 09/29 Test11 Re: common subject<> 3 09/29 Test5 Testing message 5<> 4 09/29 Test6 Testing message 6<> 5 09/29 Test7 Testing message 7<> 6 09/29 Test8 Testing message 8<> 7 09/29 Test9 Testing message 9<> 8 09/29 Test1 Testing message 1<> 9 09/29 Test2 Testing message 2<> 10 09/29 Test3 Testing message 3<> 11 09/29 Test4 Testing message 4<> 12+ 09/29 Test10 Testing message 10<> 13 10/31 Test13 Re: common subject<> EOF refile 2-7 +inbox; refile 1 +inbox; folder -pack last >/dev/null sortm -textfield subject -limit 10 scan >"$actual" check "$expected" "$actual" # check -textfield with finite -limit that does cover message 13 cat >"$expected" <> 2 09/29 Test11 Re: common subject<> 3 10/31 Test13 Re: common subject<> 4 09/29 Test1 Testing message 1<> 5 09/29 Test2 Testing message 2<> 6 09/29 Test3 Testing message 3<> 7 09/29 Test4 Testing message 4<> 8 09/29 Test10 Testing message 10<> 9 09/29 Test5 Testing message 5<> 10 09/29 Test6 Testing message 6<> 11 09/29 Test7 Testing message 7<> 12 09/29 Test8 Testing message 8<> 13+ 09/29 Test9 Testing message 9<> EOF refile 2-7 +inbox; refile 1 +inbox; folder -pack last >/dev/null sortm -textfield subject -limit 60 scan >"$actual" check "$expected" "$actual" # check -notextfield cat >"$expected" <> 2 09/29 Test10 Testing message 10<> 3 09/29 Test5 Testing message 5<> 4 09/29 Test6 Testing message 6<> 5 09/29 Test7 Testing message 7<> 6 09/29 Test8 Testing message 8<> 7 09/29 Test9 Testing message 9<> 8 09/29 Test1 Testing message 1<> 9 09/29 Test2 Testing message 2<> 10 09/29 Test3 Testing message 3<> 11 09/29 Test4 Testing message 4<> 12 09/29 Test11 Re: common subject<> 13+ 10/31 Test13 Re: common subject<> EOF refile 2-7 +inbox; refile 1 +inbox; folder -pack last >/dev/null sortm -textfield subject -limit 60 -notextfield scan >"$actual" check "$expected" "$actual" # check -noall run_test 'sortm -noall' 'sortm: must specify messages to sort with -noall' # check -all cat >"$expected" <> 2+ 09/29 Test10 Testing message 10<> 3 09/29 Test5 Testing message 5<> 4 09/29 Test6 Testing message 6<> 5 09/29 Test7 Testing message 7<> 6 09/29 Test8 Testing message 8<> 7 09/29 Test9 Testing message 9<> 8 09/29 Test1 Testing message 1<> 9 09/29 Test2 Testing message 2<> 10 09/29 Test3 Testing message 3<> 11 09/29 Test4 Testing message 4<> 12 09/29 Test11 Re: common subject<> 13 10/31 Test13 Re: common subject<> EOF refile first +inbox; folder -pack >/dev/null sortm -noall -all scan >"$actual" check "$expected" "$actual" exit ${failed:-0}