X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/0f0af4e32a4d734209c16282b63f7cb1094e2699..HEAD:/test/rcv/test-rcvstore?ds=sidebyside diff --git a/test/rcv/test-rcvstore b/test/rcv/test-rcvstore index 82d270d7..39250209 100755 --- a/test/rcv/test-rcvstore +++ b/test/rcv/test-rcvstore @@ -17,7 +17,9 @@ fi setup_test # Use proper program, likely not the first one on PATH. -rcvstore="${MH_LIB_DIR}/rcvstore" +rcvstore="${MH_LIBEXEC_DIR}/rcvstore" + +check_exit '-eq 1' $rcvstore - expected=$MH_TEST_DIR/$$.expected expected_err=$MH_TEST_DIR/$$.expected_err @@ -26,6 +28,7 @@ actual_err=$MH_TEST_DIR/$$.actual_err # check -help +start_test "-help" cat >$expected <$actual 2>&1 -check $expected $actual +#### Skip nmh intro text. +run_prog "$rcvstore" -help 2>&1 | sed '/^$/,$d' >"$actual" +check "$expected" "$actual" # check -version +start_test "-version" case `$rcvstore -v` in rcvstore\ --*) ;; * ) printf '%s: rcvstore -v generated unexpected output\n' "$0" >&2 @@ -49,49 +54,56 @@ case `$rcvstore -v` in esac # check unknown switch +start_test "unknown switch" run_test "$rcvstore -nonexistent" 'rcvstore: -nonexistent unknown' # check with no switches and zero-length input message +start_test "with no switches and zero-length input message" cat >$expected <$actual 2>&1 +run_prog $rcvstore $actual 2>&1 check $expected $actual # check with no switches +start_test "with no switches" cat >$expected <$actual 2>&1 +run_prog $rcvstore <${MH_TEST_DIR}/Mail/inbox/1 >$actual 2>&1 check $expected $actual 'keep first' check "${MH_TEST_DIR}/Mail/inbox/1" "${MH_TEST_DIR}/Mail/inbox/11" 'keep first' # check + of existing folder -$rcvstore +inbox <${MH_TEST_DIR}/Mail/inbox/1 >$actual 2>&1 +start_test "+ of existing folder" +run_prog $rcvstore +inbox <${MH_TEST_DIR}/Mail/inbox/1 >$actual 2>&1 check $expected $actual 'keep first' check "${MH_TEST_DIR}/Mail/inbox/1" "${MH_TEST_DIR}/Mail/inbox/11" 'keep first' # check + of new folder -$rcvstore +newfolder <${MH_TEST_DIR}/Mail/inbox/1 >$actual 2>&1 +start_test "+ of new folder" +run_prog $rcvstore +newfolder <${MH_TEST_DIR}/Mail/inbox/1 >$actual 2>&1 check $expected $actual 'keep first' check "${MH_TEST_DIR}/Mail/inbox/1" "${MH_TEST_DIR}/Mail/newfolder/1" \ 'keep first' rmdir "${MH_TEST_DIR}/Mail/newfolder" # check -nocreate +start_test "-nocreate" cat >$expected_err <$actual \ +run_prog $rcvstore +newfolder -nocreate <${MH_TEST_DIR}/Mail/inbox/1 >$actual \ 2>$actual_err set -e check $expected $actual 'keep first' check $expected_err $actual_err # check -create -$rcvstore +newfolder -nocreate -create <${MH_TEST_DIR}/Mail/inbox/1 \ +start_test "-create" +run_prog $rcvstore +newfolder -nocreate -create <${MH_TEST_DIR}/Mail/inbox/1 \ >$actual 2>&1 check $expected $actual 'keep first' check "${MH_TEST_DIR}/Mail/inbox/1" "${MH_TEST_DIR}/Mail/newfolder/1" \ @@ -99,8 +111,9 @@ check "${MH_TEST_DIR}/Mail/inbox/1" "${MH_TEST_DIR}/Mail/newfolder/1" \ rmdir "${MH_TEST_DIR}/Mail/newfolder" # check addition to unseen sequence +start_test "addition to unseen sequence" printf 'Unseen-Sequence: unseen\n' >> $MH -$rcvstore <${MH_TEST_DIR}/Mail/inbox/1 >$actual 2>&1 +run_prog $rcvstore <${MH_TEST_DIR}/Mail/inbox/1 >$actual 2>&1 check $expected $actual 'keep first' run_test 'mark -sequence unseen -list' 'unseen: 11' check "${MH_TEST_DIR}/Mail/inbox/1" "${MH_TEST_DIR}/Mail/inbox/11" 'keep first' @@ -109,59 +122,71 @@ touch "${MH_TEST_DIR}/Mail/inbox/11" rmm 11 # check -nounseen -$rcvstore -nounseen <${MH_TEST_DIR}/Mail/inbox/1 >$actual 2>&1 +start_test "-nounseen" +run_prog $rcvstore -nounseen <${MH_TEST_DIR}/Mail/inbox/1 >$actual 2>&1 check $expected $actual 'keep first' run_test 'mark -sequence unseen -list' 'unseen: ' check "${MH_TEST_DIR}/Mail/inbox/1" "${MH_TEST_DIR}/Mail/inbox/11" 'keep first' # check -unseen -$rcvstore -nounseen -unseen <${MH_TEST_DIR}/Mail/inbox/1 >$actual 2>&1 +start_test "-unseen" +run_prog $rcvstore -nounseen -unseen <${MH_TEST_DIR}/Mail/inbox/1 >$actual 2>&1 check $expected $actual 'keep first' run_test 'mark -sequence unseen -list' 'unseen: 11' check "${MH_TEST_DIR}/Mail/inbox/1" "${MH_TEST_DIR}/Mail/inbox/11" 'keep first' # check -sequence -$rcvstore -sequence newseq <${MH_TEST_DIR}/Mail/inbox/1 >$actual 2>&1 +start_test "-sequence" +run_prog $rcvstore -sequence newseq <${MH_TEST_DIR}/Mail/inbox/1 >$actual 2>&1 check $expected $actual 'keep first' run_test 'mark -sequence newseq -list' 'newseq: 11' check "${MH_TEST_DIR}/Mail/inbox/1" "${MH_TEST_DIR}/Mail/inbox/11" 'keep first' # check that default is -nozero +start_test "that default is -nozero" mark -sequence newseq all -$rcvstore -sequence newseq <${MH_TEST_DIR}/Mail/inbox/1 >$actual 2>&1 +run_prog $rcvstore -sequence newseq <${MH_TEST_DIR}/Mail/inbox/1 >$actual 2>&1 check $expected $actual 'keep first' run_test 'mark -sequence newseq -list' 'newseq: 1-11' check "${MH_TEST_DIR}/Mail/inbox/1" "${MH_TEST_DIR}/Mail/inbox/11" 'keep first' # check -zero +start_test "-zero" mark -sequence newseq all -$rcvstore -sequence newseq -zero <${MH_TEST_DIR}/Mail/inbox/1 >$actual 2>&1 +run_prog $rcvstore -sequence newseq -zero \ + <${MH_TEST_DIR}/Mail/inbox/1 >$actual 2>&1 check $expected $actual 'keep first' run_test 'mark -sequence newseq -list' 'newseq: 11' check "${MH_TEST_DIR}/Mail/inbox/1" "${MH_TEST_DIR}/Mail/inbox/11" 'keep first' # check -nozero +start_test "-nozero" mark -sequence newseq all -$rcvstore -seq newseq -zero -nozero <${MH_TEST_DIR}/Mail/inbox/1 >$actual 2>&1 +run_prog $rcvstore -seq newseq -zero -nozero \ + <${MH_TEST_DIR}/Mail/inbox/1 >$actual 2>&1 check $expected $actual 'keep first' run_test 'mark -sequence newseq -list' 'newseq: 1-11' check "${MH_TEST_DIR}/Mail/inbox/1" "${MH_TEST_DIR}/Mail/inbox/11" 'keep first' # check that default is -public -$rcvstore -sequence pubseq <${MH_TEST_DIR}/Mail/inbox/1 >$actual 2>&1 +start_test "that default is -public" +run_prog $rcvstore -sequence pubseq <${MH_TEST_DIR}/Mail/inbox/1 >$actual 2>&1 check $expected $actual 'keep first' run_test 'mark -sequence pubseq -list' 'pubseq: 11' check "${MH_TEST_DIR}/Mail/inbox/1" "${MH_TEST_DIR}/Mail/inbox/11" 'keep first' # check -nopublic -$rcvstore -sequence privseq -nopublic <${MH_TEST_DIR}/Mail/inbox/1 >$actual 2>&1 +start_test "-nopublic" +run_prog $rcvstore -sequence privseq -nopublic \ + <${MH_TEST_DIR}/Mail/inbox/1 >$actual 2>&1 check $expected $actual 'keep first' run_test 'mark -sequence privseq -nopublic -list' 'privseq (private): 11' check "${MH_TEST_DIR}/Mail/inbox/1" "${MH_TEST_DIR}/Mail/inbox/11" 'keep first' # check -public -$rcvstore -sequence pubseq -nopublic -public <${MH_TEST_DIR}/Mail/inbox/1 \ - >$actual 2>&1 +start_test "-public" +run_prog $rcvstore -sequence pubseq -nopublic -public \ + <${MH_TEST_DIR}/Mail/inbox/1 >$actual 2>&1 check $expected $actual 'keep first' run_test 'mark -sequence pubseq -public -list' 'pubseq: 11' check "${MH_TEST_DIR}/Mail/inbox/1" "${MH_TEST_DIR}/Mail/inbox/11" 'keep first' @@ -177,29 +202,30 @@ if [ "`find ${MH_TEST_DIR}/Mail/test-read-perms -perm 600`"x = ''x ]; then if [ ${failed:-0} -eq 0 ]; then echo "$Test $0 SKIP (cannot remove read permission on plain files)" exit 77 - else - exit $failed fi -else - rm -f ${MH_TEST_DIR}/Mail/test-read-perms + exit $failed fi +rm -f ${MH_TEST_DIR}/Mail/test-read-perms # check default Msg-Protect +start_test "default Msg-Protect" msgprot=`mhparam msgprot` -$rcvstore <${MH_TEST_DIR}/Mail/inbox/1 >$actual 2>&1 +run_prog $rcvstore <${MH_TEST_DIR}/Mail/inbox/1 >$actual 2>&1 check $expected $actual 'keep first' run_test "find ${MH_TEST_DIR}/Mail/inbox/11 -perm $msgprot" \ "${MH_TEST_DIR}/Mail/inbox/11" check "${MH_TEST_DIR}/Mail/inbox/1" "${MH_TEST_DIR}/Mail/inbox/11" 'keep first' # check Msg-Protect profile entry +start_test "Msg-Protect profile entry" msgprot=640 printf 'Msg-Protect: %s\n' "$msgprot" >>$MH -$rcvstore <${MH_TEST_DIR}/Mail/inbox/1 >$actual 2>&1 +run_prog $rcvstore <${MH_TEST_DIR}/Mail/inbox/1 >$actual 2>&1 check $expected $actual run_test "find ${MH_TEST_DIR}/Mail/inbox/11 -perm $msgprot" \ "${MH_TEST_DIR}/Mail/inbox/11" check "${MH_TEST_DIR}/Mail/inbox/1" "${MH_TEST_DIR}/Mail/inbox/11" +finish_test exit ${failed:-0}