#
# One "post" test run. Ok, yeah, we're using "send", but that's just
# because it's easier.
-#
+# $1: output filename for fakesmtp, i.e., the sent message
+# $2: expected output
+# $3: optional switches for send
test_post ()
{ "${MH_OBJ_DIR}/test/fakesmtp" "$1" $localport &
pid="$!"
- send -draft -server 127.0.0.1 -port $localport || exit 1
-
- wait $!
+ # 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
+ if send -draft -server 127.0.0.1 -port $localport $3
+ then
+ status=0
+ break
+ fi
+ sleep 1
+ done
+ [ $status -eq 0 ] || exit 1
+
+ wait ${pid}
#
# It's hard to calculate the exact Date: header post is going to
# compare it against our "correct" output.
#
- sed -i "" -e 's/^Date:.*/Date:/' "$1"
+ sed -e 's/^Date:.*/Date:/' "$1" > "$1".nodate
+ rm -f "$1"
- check "$1" "$2"
+ check "$1".nodate "$2"
}