#
# 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
+ # The server doesn't always come up fast enough, so sleep and
+ # retry a few times if it fails...
+ status=1
+ 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 send -draft -server 127.0.0.1 -port $localport $3
+ then
+ status=0
+ break
+ fi
+ sleep 2
+ done
+ if [ $status -ne 0 ]; then
+ printf '%s: send failed, was fakesmtp given enough time to start?\n' \
+ "$0" >&2
+ exit 1
+ fi
wait ${pid}
#
sed -e 's/^Date:.*/Date:/' "$1" > "$1".nodate
- mv "$1".nodate "$1"
+ rm -f "$1"
- check "$1" "$2"
+ check "$1".nodate "$2"
}