Avoid sleep 1 at server start in ssl-opt.sh
On my machine, brings running time from 135 to 45 seconds...
3 times faster :)
diff --git a/tests/ssl-opt.sh b/tests/ssl-opt.sh
index 1f7a4ad..238995f 100755
--- a/tests/ssl-opt.sh
+++ b/tests/ssl-opt.sh
@@ -112,6 +112,28 @@
fi
}
+# wait for server to be ready
+wait_srv_ready() {
+ if is_polar "$SRV_CMD"; then
+ READY_MSG="Waiting for a remote connection"
+ else
+ READY_MSG="ACCEPT"
+ fi
+
+ # If the server isn't ready after 10 secs, something probably went wrong
+ ( sleep 10; echo "SERVERSTART TIMEOUT"; kill $MAIN_PID ) &
+ WATCHDOG_PID=$!
+
+ while ! grep "$READY_MSG" $SRV_OUT >/dev/null; do
+ # don't use sleep, since the whole goal is to avoid wasting time,
+ # and 1 second is usually way more than the server needs to start
+ true
+ done
+
+ kill $WATCHDOG_PID
+ wait $WATCHDOG_PID
+}
+
# Usage: run_test name srv_cmd cli_cmd cli_exit [option [...]]
# Options: -s pattern pattern that must be present in server output
# -c pattern pattern that must be present in client output
@@ -145,7 +167,7 @@
echo "$SRV_CMD" > $SRV_OUT
$SRV_CMD >> $SRV_OUT 2>&1 &
SRV_PID=$!
- sleep 1
+ wait_srv_ready
echo "$CLI_CMD" > $CLI_OUT
eval "$CLI_CMD" >> $CLI_OUT 2>&1
CLI_EXIT=$?