X-Git-Url: http://git.marmaro.de/?a=blobdiff_plain;f=test%2Fpost%2Ftest-post-common.sh;h=4535ff891e911e0fcd75231b9f5868c961c3d6c8;hb=293b37f3c3eab8af5c87c9ad8ee9df89c998cf48;hp=856c399f4e83751bec0a8ba91f553fa8ecba9b5e;hpb=a3bf69c3a988b0de2126fbfe6804c61ef24a8896;p=mmh diff --git a/test/post/test-post-common.sh b/test/post/test-post-common.sh index 856c399..4535ff8 100755 --- a/test/post/test-post-common.sh +++ b/test/post/test-post-common.sh @@ -21,13 +21,30 @@ echo "clientname: nosuchhost.example.com" >> ${MHMTSCONF} # # 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} @@ -38,7 +55,7 @@ test_post () # sed -e 's/^Date:.*/Date:/' "$1" > "$1".nodate - mv "$1".nodate "$1" + rm -f "$1" - check "$1" "$2" + check "$1".nodate "$2" }