In test-post-common.sh and test-mhmail, wait for fakesmtp to start
[mmh] / test / post / test-post-common.sh
index 773e49d..4535ff8 100755 (executable)
@@ -21,7 +21,9 @@ 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 &
@@ -30,14 +32,19 @@ test_post ()
     # 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 >/dev/null 2>&1; then
+    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 1
+        sleep 2
     done
-    [ $status -eq 0 ] || exit 1
+    if [ $status -ne 0 ]; then
+      printf '%s: send failed, was fakesmtp given enough time to start?\n' \
+             "$0" >&2
+      exit 1
+    fi
 
     wait ${pid}