From 779fb9efe30f4c71fdf0b7069952b3daee6fa974 Mon Sep 17 00:00:00 2001 From: Vincent Koc Date: Sat, 6 Jun 2026 16:45:21 +0200 Subject: [PATCH] fix(e2e): require gateway network TCP readiness --- scripts/e2e/gateway-network-docker.sh | 2 +- test/scripts/docker-build-helper.test.ts | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/scripts/e2e/gateway-network-docker.sh b/scripts/e2e/gateway-network-docker.sh index d3abacd5040..91ee501eb04 100644 --- a/scripts/e2e/gateway-network-docker.sh +++ b/scripts/e2e/gateway-network-docker.sh @@ -39,7 +39,7 @@ docker_e2e_docker_cmd run -d \ bash -lc "set -euo pipefail; source scripts/lib/openclaw-e2e-instance.sh; entry=\"\$(openclaw_e2e_resolve_entrypoint)\"; node \"\$entry\" config set gateway.controlUi.enabled false >/dev/null; openclaw_e2e_exec_gateway \"\$entry\" $PORT lan /tmp/gateway-net-e2e.log" >/dev/null echo "Waiting for gateway to come up..." -if ! docker_e2e_wait_container_bash "$GW_NAME" 180 0.5 "source scripts/lib/openclaw-e2e-instance.sh; openclaw_e2e_probe_tcp 127.0.0.1 $PORT || grep -q \"listening on ws://\" /tmp/gateway-net-e2e.log 2>/dev/null"; then +if ! docker_e2e_wait_container_bash "$GW_NAME" 180 0.5 "source scripts/lib/openclaw-e2e-instance.sh; openclaw_e2e_probe_tcp 127.0.0.1 $PORT"; then echo "Gateway failed to start" docker_e2e_tail_container_file_if_running "$GW_NAME" /tmp/gateway-net-e2e.log 120 exit 1 diff --git a/test/scripts/docker-build-helper.test.ts b/test/scripts/docker-build-helper.test.ts index 9e240d785d4..0f52a631375 100644 --- a/test/scripts/docker-build-helper.test.ts +++ b/test/scripts/docker-build-helper.test.ts @@ -1975,6 +1975,13 @@ output="$(run_logged_print_heartbeat plugins-run 08 bash -c 'printf "captured co ); }); + it("requires TCP readiness for the gateway network runner", () => { + const runner = readFileSync(GATEWAY_NETWORK_DOCKER_E2E_PATH, "utf8"); + + expect(runner).toContain("openclaw_e2e_probe_tcp 127.0.0.1 $PORT"); + expect(runner).not.toMatch(/openclaw_e2e_probe_tcp[^\n]*\|\|[^\n]*gateway-net-e2e\.log/u); + }); + it("copies root lifecycle scripts before cleanup-smoke installs dependencies", () => { const dockerfile = readFileSync(CLEANUP_SMOKE_DOCKERFILE_PATH, "utf8"); const installIndex = dockerfile.indexOf("pnpm install --frozen-lockfile");