#!/bin/sh ###################################################### # # Test rcvdist # ###################################################### 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 # Use proper program, likely not the first one on PATH. rcvdist="${MH_LIB_DIR}/rcvdist" expected=$MH_TEST_DIR/$$.expected actual=$MH_TEST_DIR/$$.actual # check -help cat >$expected <"$actual" 2>&1 check "$expected" "$actual" # check -version case `$rcvdist -v` in rcvdist\ --*) ;; * ) printf "$0: rcvdist -v generated unexpected output\n" >&2 failed=`expr ${failed:-0} + 1`;; esac # check unknown switch run_test "$rcvdist -nonexistent" \ 'rcvdist: usage: rcvdist [switches] [switches for postproc] address ...' # check with no switches run_test "$rcvdist" \ 'rcvdist: usage: rcvdist [switches] [switches for postproc] address ...' # check with address # Replace post: cat >"$MH_TEST_DIR/Mail/notpost" </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" #### An extra space gets inserted between each header field name #### and body. That probably should be fixed. cat > "$expected" < To: Some User Date: Fri, 29 Sep 2006 00:00:00 Subject: Testing message 1 Resent-From: Resent-To: recipient@example.com This is message number 1 EOF $rcvdist recipient@example.com < "$MH_TEST_DIR/Mail/inbox/1" check "$expected" "$actual" # check -form cat > "$expected" < To: Some User Date: Fri, 29 Sep 2006 00:00:00 Subject: Testing message 1 Resent-To: recipient@example.com Resent-From: This is message number 1 EOF cat > "$MH_TEST_DIR/Mail/rcvdistcomps" <<'EOF' %(lit)%(formataddr{addresses})\ %<(nonnull)%(void(width))%(putaddr Resent-To:)%> %(lit)%(formataddr{to})\ %<(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" exit ${failed:-0}