

























@@ -10,6 +10,7 @@ const SCRIPT_PATH = "scripts/test-install-sh-docker.sh";
1010const INSTALL_E2E_DOCKER_PATH = "scripts/test-install-sh-e2e-docker.sh";
1111const INSTALL_E2E_RUNNER_PATH = "scripts/docker/install-sh-e2e/run.sh";
1212const DOCKER_SETUP_PATH = "scripts/docker/setup.sh";
13+const HOST_TIMEOUT_PATH = "scripts/lib/host-timeout.sh";
1314const PODMAN_SETUP_PATH = "scripts/podman/setup.sh";
1415const PODMAN_RUN_PATH = "scripts/run-openclaw-podman.sh";
1516const SMOKE_RUNNER_PATH = "scripts/docker/install-sh-smoke/run.sh";
@@ -323,28 +324,27 @@ describe("test-install-sh-docker", () => {
323324324325it("bounds Docker setup image pulls", () => {
325326const script = readFileSync(DOCKER_SETUP_PATH, "utf8");
327+const timeoutHelper = readFileSync(HOST_TIMEOUT_PATH, "utf8");
326328329+expect(script).toContain('source "$ROOT_DIR/scripts/lib/host-timeout.sh"');
327330expect(script).toContain('DOCKER_PULL_TIMEOUT="${OPENCLAW_DOCKER_SETUP_PULL_TIMEOUT:-600s}"');
328331expect(script).toContain("run_docker_pull()");
329-expect(script).toContain("timeout --kill-after=1s 1s true");
330-expect(script).toContain(
331-'timeout --kill-after=30s "$DOCKER_PULL_TIMEOUT" docker pull "$image"',
332-);
333-expect(script).toContain('timeout "$DOCKER_PULL_TIMEOUT" docker pull "$image"');
332+expect(script).toContain('openclaw_host_timeout_cmd "$DOCKER_PULL_TIMEOUT" docker pull "$image"');
333+expect(timeoutHelper).toContain("elif command -v gtimeout >/dev/null 2>&1; then");
334+expect(timeoutHelper).toContain('"$timeout_bin" --kill-after=30s "$timeout_value" "$@"');
334335expect(script).toContain('run_docker_pull "$IMAGE_NAME"');
335336expect(script).not.toContain('docker pull "$IMAGE_NAME"');
336337});
337338338339it("bounds Podman setup image pulls", () => {
339340const script = readFileSync(PODMAN_SETUP_PATH, "utf8");
340341342+expect(script).toContain('source "$REPO_PATH/scripts/lib/host-timeout.sh"');
341343expect(script).toContain('PODMAN_PULL_TIMEOUT="${OPENCLAW_PODMAN_SETUP_PULL_TIMEOUT:-600s}"');
342344expect(script).toContain("run_podman_pull()");
343-expect(script).toContain("timeout --kill-after=1s 1s true");
344345expect(script).toContain(
345-'timeout --kill-after=30s "$PODMAN_PULL_TIMEOUT" podman pull "$image"',
346+'openclaw_host_timeout_cmd "$PODMAN_PULL_TIMEOUT" podman pull "$image"',
346347);
347-expect(script).toContain('timeout "$PODMAN_PULL_TIMEOUT" podman pull "$image"');
348348expect(script).toContain('run_podman_pull "$OPENCLAW_IMAGE"');
349349expect(script).not.toContain('podman pull "$OPENCLAW_IMAGE"');
350350});
@@ -356,9 +356,7 @@ describe("test-install-sh-docker", () => {
356356'PODMAN_BUILD_TIMEOUT="${OPENCLAW_PODMAN_SETUP_BUILD_TIMEOUT:-1800s}"',
357357);
358358expect(script).toContain("run_podman_build()");
359-expect(script).toContain("timeout --kill-after=1s 1s true");
360-expect(script).toContain('timeout --kill-after=30s "$PODMAN_BUILD_TIMEOUT" podman build "$@"');
361-expect(script).toContain('timeout "$PODMAN_BUILD_TIMEOUT" podman build "$@"');
359+expect(script).toContain('openclaw_host_timeout_cmd "$PODMAN_BUILD_TIMEOUT" podman build "$@"');
362360expect(script).toContain('run_podman_build -t "$OPENCLAW_IMAGE"');
363361expect(script).not.toContain('podman build -t "$OPENCLAW_IMAGE"');
364362});
@@ -368,10 +366,9 @@ describe("test-install-sh-docker", () => {
368366369367expect(script).toContain('PODMAN_RUN_TIMEOUT="${OPENCLAW_PODMAN_RUN_TIMEOUT:-600s}"');
370368expect(script).toContain("OPENCLAW_PODMAN_RUN_TIMEOUT|OPENCLAW_PODMAN_GATEWAY_HOST_PORT");
369+expect(script).toContain('source "$SCRIPT_DIR/lib/host-timeout.sh"');
371370expect(script).toContain("run_podman_detached()");
372-expect(script).toContain("timeout --kill-after=1s 1s true");
373-expect(script).toContain('timeout --kill-after=30s "$PODMAN_RUN_TIMEOUT" podman run "$@"');
374-expect(script).toContain('timeout "$PODMAN_RUN_TIMEOUT" podman run "$@"');
371+expect(script).toContain('openclaw_host_timeout_cmd "$PODMAN_RUN_TIMEOUT" podman run "$@"');
375372expect(script).toContain('podman run --pull="$PODMAN_PULL" --rm -it \\');
376373expect(script).toContain('run_podman_detached --pull="$PODMAN_PULL" -d --replace \\');
377374expect(script).not.toContain('podman run --pull="$PODMAN_PULL" -d --replace \\');
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。