Fix flaky unit test on merge-triggered CI runs (#7)
CI / build-and-scan (push) Successful in 1m4s
CI / build-and-scan (push) Successful in 1m4s
- entrypoint.sh: bound the target connectivity check with `-w 2` (the only unbounded step in the startup path) - tests/entrypoint.bats: widen wait_for_log's budget from 5s to 10s Merge-triggered runs land on a colder runner (Docker cache evicted by other repos' scheduled jobs since the PR was last tested) than PR-check runs, and the first backgrounded entrypoint.sh in the suite was occasionally landing just past the old 5s window — always passed on rerun once warm.
This commit was merged in pull request #7.
This commit is contained in:
+1
-1
@@ -145,7 +145,7 @@ fi
|
|||||||
|
|
||||||
log "[~] Testing connection to target..."
|
log "[~] Testing connection to target..."
|
||||||
# Test if we can reach the target before starting socat
|
# Test if we can reach the target before starting socat
|
||||||
if ! nc -z "$TARGET_HOST" "$TARGET_PORT" 2>/dev/null; then
|
if ! nc -z -w 2 "$TARGET_HOST" "$TARGET_PORT" 2>/dev/null; then
|
||||||
log "[!] Cannot connect to $TARGET_HOST:$TARGET_PORT - socat will retry automatically"
|
log "[!] Cannot connect to $TARGET_HOST:$TARGET_PORT - socat will retry automatically"
|
||||||
else
|
else
|
||||||
log "[✓] Connection to $TARGET_HOST:$TARGET_PORT is working"
|
log "[✓] Connection to $TARGET_HOST:$TARGET_PORT is working"
|
||||||
|
|||||||
@@ -58,7 +58,11 @@ socat_pid() {
|
|||||||
wait_for_log() {
|
wait_for_log() {
|
||||||
pattern="$1"
|
pattern="$1"
|
||||||
tries=0
|
tries=0
|
||||||
while [ "$tries" -lt 20 ]; do
|
# 40 * 0.25s = 10s — merge-triggered runs can land on a cold runner
|
||||||
|
# (evicted Docker cache, first container start), pushing the very first
|
||||||
|
# backgrounded entrypoint.sh past a tighter budget even though nothing's
|
||||||
|
# actually wrong; a rerun on a warm runner always passes.
|
||||||
|
while [ "$tries" -lt 40 ]; do
|
||||||
grep -qE "$pattern" "$LOG" 2>/dev/null && return 0
|
grep -qE "$pattern" "$LOG" 2>/dev/null && return 0
|
||||||
tries=$((tries + 1))
|
tries=$((tries + 1))
|
||||||
sleep 0.25
|
sleep 0.25
|
||||||
|
|||||||
Reference in New Issue
Block a user