# $1 is expected output file, provided by caller
# $2 is mhmail switches, except for -body
# $3 of -b signifies use -body switch, | signifies provide body on stdin
-# $4 contains message body. When using stdin, can contain printf(1) format
-# specifiers.
+# $4 contains the message body.
test_mhmail ()
{
"${MH_OBJ_DIR}/test/fakesmtp" "$actual" $localport &
# The server doesn't always come up fast enough, so sleep and
# retry a few times if it fails...
status=1
- for i in 0 1 2 3 4 5 6 7 8 9; do
+ for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20; do
if [ $3 = '|' ]; then
- if printf "$4" | mhmail recipient@example.com $2 \
+ if printf '%s' "$4" | mhmail recipient@example.com $2 \
-server 127.0.0.1 -port $localport; then
status=0
break
break
fi
fi
- sleep 1
+ sleep 2
done
- [ $status -eq 0 ] || exit 1
+ if [ $status -ne 0 ]; then
+ printf '%s: mhmail failed, was fakesmtp given enough time to start?\n' \
+ "$0" >&2
+ exit 1
+ fi
wait ${pid}
sed -e 's/^Date:.*/Date:/' \
-e 's/^Resent-Date:.*/Resent-Date:/' \
- -e 's/^Message-ID:.*/Message-ID:/' \
- -e 's/^Content-ID:.*/Content-ID:/' "$actual" > "$actual".nodate
+ -e 's/^Message-ID:.*/Message-ID:/' "$actual" > "$actual".nodate
rm -f "$actual"
check "$actual".nodate "$1"
# Verified same behavior as compiled mhmail.
case `mhmail -v` in
mhmail\ --*) ;;
- * ) echo "$0: mhmail -v generated unexpected output" 1>&2
- failed=`expr ${failed:-0} + 1`;;
+ * ) printf '%s: mhmail -v generated unexpected output\n' "$0" >&2
+ failed=`expr ${failed:-0} + 1`;;
esac
# check for missing argument to switches that require them
# That will just run inc, which we don't want to do anything,
# so tell inc to just display its version.
# Verified same behavior as compiled mhmail.
-printf "inc: -version\n" >> $MH
+printf 'inc: -version\n' >> $MH
case `mhmail` in
inc\ --*) ;;
- * ) echo "$0: mhmail generated unexpected output" 1>&2
+ * ) echo "$0: mhmail generated unexpected output" >&2
failed=`expr ${failed:-0} + 1`;;
esac
# 2) use send(1) by added a send switch to the profile and
# verifying that it gets used.
# Not supported by compiled mhmail.
-printf "send: -msgid\n" >> $MH
+printf 'send: -msgid\n' >> $MH
cat > "$expected" <<EOF
EHLO nosuchhost.example.com
QUIT
EOF
-test_mhmail "$expected" '-from sender@localhost' '|' '\n'
+test_mhmail "$expected" '-from sender@localhost' '|' '
+'
[ ${failed:-0} -eq 0 ] || exit ${failed:-0}
QUIT
EOF
-test_mhmail "$expected" '-from sender@localhost' '|' '\n\n\n'
+test_mhmail "$expected" '-from sender@localhost' '|' '
+
+
+'
[ ${failed:-0} -eq 0 ] || exit ${failed:-0}
QUIT
EOF
-test_mhmail "$expected" '-from sender@localhost' '|' "here's some text\n\n\n"
+test_mhmail "$expected" '-from sender@localhost' '|' "here's some text
+
+
+"
[ ${failed:-0} -eq 0 ] || exit ${failed:-0}
From: sender@example.com
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="----- =_aaaaaaaaaa0"
-Content-ID:
Date:
Message-ID: