]> diplodocus.org Git - nmh/blobdiff - test/rcv/test-rcvdist
mh-mkstemp.man: Detail exit status as 255 rather than -1.
[nmh] / test / rcv / test-rcvdist
index d13a202817db2bd1a949c8693e5d1f5aa0cac801..8583444bf765c8e319e615422d10473d76d1652e 100755 (executable)
@@ -17,7 +17,9 @@ fi
 setup_test
 
 # Use proper program, likely not the first one on PATH.
 setup_test
 
 # Use proper program, likely not the first one on PATH.
-rcvdist="${MH_LIB_DIR}/rcvdist"
+rcvdist="${MH_LIBEXEC_DIR}/rcvdist"
+
+check_exit '-eq 1' $rcvdist - # gcov
 
 expected=$MH_TEST_DIR/$$.expected
 actual=$MH_TEST_DIR/$$.actual
 
 expected=$MH_TEST_DIR/$$.expected
 actual=$MH_TEST_DIR/$$.actual
@@ -32,13 +34,14 @@ Usage: rcvdist [switches] [switches for postproc] address ...
   -help
 EOF
 
   -help
 EOF
 
-$rcvdist -help >"$actual" 2>&1
+#### Skip nmh intro text.
+run_prog "$rcvdist" -help | sed '/^$/,$d' >"$actual" 2>&1
 check "$expected" "$actual"
 
 # check -version
 case `$rcvdist -v` in
   rcvdist\ --*) ;;
 check "$expected" "$actual"
 
 # check -version
 case `$rcvdist -v` in
   rcvdist\ --*) ;;
-  *           ) printf "$0: rcvdist -v generated unexpected output\n" >&2
+  *           ) printf '%s: rcvdist -v generated unexpected output\n' "$0" >&2
                 failed=`expr ${failed:-0} + 1`;;
 esac
 
                 failed=`expr ${failed:-0} + 1`;;
 esac
 
@@ -50,49 +53,59 @@ run_test "$rcvdist -nonexistent" \
 run_test "$rcvdist" \
   'rcvdist: usage: rcvdist [switches] [switches for postproc] address ...'
 
 run_test "$rcvdist" \
   'rcvdist: usage: rcvdist [switches] [switches for postproc] address ...'
 
-# check with address
-# Replace post:
-cat >"$MH_TEST_DIR/Mail/notpost" <<EOF
-if grep '^Resent-From: ' "\$2" >/dev/null; then
-  sed 's/^Resent-From:.*/Resent-From:/' "\$2" >"$actual"
-else
-  printf 'post: message has no Resent-From: header\n'
-  printf 'post: See default components files for examples\n'
-  printf 'post: re-format message and try again\n'
-  exit 1
-fi
-EOF
-chmod u+x "$MH_TEST_DIR/Mail/notpost"
-sed 's/postproc:.*/#:/' "$MH" > "${MH}-new"
-printf "postproc: $MH_TEST_DIR/Mail/notpost\n" >>"${MH}-new"
-mv -f "${MH}-new" "$MH"
+#### Use sendmail/pipe below to override default mts.
+mts_fakesendmail="${MHMTSCONF}-fakesendmail"
+sed -e 's/^mts:.*/mts: sendmail\/pipe/' "${MHMTSCONF}" > "$mts_fakesendmail"
+printf 'sendmail: %s/test/fakesendmail\n' "$srcdir" >>"$mts_fakesendmail"
+MHMTSCONF="$mts_fakesendmail"
+
+# arguments: rcvdist switches
+test_rcvdist ()
+{
+  run_prog $rcvdist "$@"
+
+  # fakesendmail drops the message and any cc's into this mbox.
+  mbox="${MH_TEST_DIR}"/Mail/fakesendmail.mbox
+  inc -silent -file "$mbox"
+  rm -f "$mbox" "$mbox.map"
+
+  # It's hard to calculate the exact Date: header post is going to
+  # use, so we'll just use sed to remove the actual date so we can
+  # easily compare it against our "correct" output.
+  sed -e 's/^Resent-Date:.*/Resent-Date:/' `mhpath last` > "$actual"
 
 
-#### An extra space gets inserted between each header field name
-#### and body.  That probably should be fixed.
+  check "$expected" "$actual"
+}
+
+# check with address
 cat > "$expected" <<EOF
 cat > "$expected" <<EOF
-From:  Test1 <test1@example.com>
-To:  Some User <user@example.com>
-Date:  Fri, 29 Sep 2006 00:00:00
-Subject:  Testing message 1
-Resent-From:
-Resent-To:  recipient@example.com
+From: Test1 <test1@example.com>
+To: Some User <user@example.com>
+Date: Fri, 29 Sep 2006 00:00:00
+Message-Id: 1@test.nmh
+Subject: Testing message 1
+Resent-From: `${MH_LIBEXEC_DIR}/ap -format '%(localmbox)' 0 | \
+              sed 's/^<\(.*\)>$/\1/'`
+Resent-To: recipient@example.com
+Resent-Date:
 
 This is message number 1
 EOF
 
 
 This is message number 1
 EOF
 
-$rcvdist recipient@example.com < "$MH_TEST_DIR/Mail/inbox/1"
-check "$expected" "$actual"
+test_rcvdist recipient@example.com < "$MH_TEST_DIR/Mail/inbox/1"
 
 # check -form
 cat > "$expected" <<EOF
 
 # check -form
 cat > "$expected" <<EOF
-From:  Test1 <test1@example.com>
-To:  Some User <user@example.com>
-Date:  Fri, 29 Sep 2006 00:00:00
-Subject:  Testing message 1
+From: Test2 <test2@example.com>
+To: Some User <user@example.com>
+Date: Fri, 29 Sep 2006 00:00:00
+Message-Id: 2@test.nmh
+Subject: Testing message 2
 Resent-To: recipient@example.com
 Resent-To: recipient@example.com
-Resent-From:
+Resent-From: Some User <user@example.com>
+Resent-Date:
 
 
-This is message number 1
+This is message number 2
 EOF
 
 cat > "$MH_TEST_DIR/Mail/rcvdistcomps" <<'EOF'
 EOF
 
 cat > "$MH_TEST_DIR/Mail/rcvdistcomps" <<'EOF'
@@ -102,8 +115,8 @@ cat > "$MH_TEST_DIR/Mail/rcvdistcomps" <<'EOF'
 %<(nonnull)%(void(width))%(putaddr Resent-From:)\n%>
 EOF
 
 %<(nonnull)%(void(width))%(putaddr Resent-From:)\n%>
 EOF
 
-$rcvdist -form "$MH_TEST_DIR/Mail/rcvdistcomps" recipient@example.com < \
-  "$MH_TEST_DIR/Mail/inbox/1"
-check "$expected" "$actual"
+test_rcvdist -form "$MH_TEST_DIR/Mail/rcvdistcomps" recipient@example.com \
+  < "$MH_TEST_DIR/Mail/inbox/2"
+
 
 exit ${failed:-0}
 
 exit ${failed:-0}