Fix the race condition with fakesmtp so it works without needing retries.
[mmh] / test / post / test-post-common.sh
index c35a5a2..3b1a3d0 100755 (executable)
@@ -21,15 +21,14 @@ 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
+{ pid=`"${MH_OBJ_DIR}/test/fakesmtp" "$1" $localport`
 
-    wait $!
+    send -draft -server 127.0.0.1 -port $localport $3 || exit 1
 
     #
     # It's hard to calculate the exact Date: header post is going to
@@ -37,9 +36,8 @@ test_post ()
     # compare it against our "correct" output.
     #
 
-    sed -i.bak -e 's/^Date:.*/Date:/' "$1"
-
-    rm -f "${1}.bak"
+    sed -e 's/^Date:.*/Date:/' "$1" > "$1".nodate
+    rm -f "$1"
 
-    check "$1" "$2"
+    check "$1".nodate "$2"
 }