





















@@ -270,6 +270,17 @@ set -euo pipefail
270270ROOT_DIR=${shellQuote(rootDir)}
271271TMPDIR=${shellQuote(workDir)}
272272export ROOT_DIR TMPDIR
273+export DOCKER_COMMAND_TIMEOUT=3s
274+275+mkdir -p "$TMPDIR/bin"
276+cat >"$TMPDIR/bin/timeout" <<'SH'
277+#!/usr/bin/env bash
278+printf "%s\\n" "$1" >"$TMPDIR/docker-timeout-seen"
279+shift
280+"$@"
281+SH
282+chmod +x "$TMPDIR/bin/timeout"
283+export PATH="$TMPDIR/bin:$PATH"
273284274285node() {
275286 local script="$1"
@@ -332,14 +343,18 @@ pack_dir="$(dirname "$package_tgz")"
332343docker_e2e_package_mount_args "$package_tgz"
333344DOCKER_STUB_STATUS=7 docker_e2e_run_with_harness image-name bash -lc true || run_status="$?"
334345test "\${run_status:-0}" = "7"
346+test "$(cat "$TMPDIR/docker-timeout-seen")" = "3s"
335347test -f "$TMPDIR/package-mount-seen"
336348test ! -e "$pack_dir"
337349338350external_dir="$TMPDIR/external-package"
339351mkdir -p "$external_dir"
340352printf fixture >"$external_dir/openclaw-current.tgz"
341353docker_e2e_package_mount_args "$external_dir/openclaw-current.tgz"
354+unset DOCKER_COMMAND_TIMEOUT
355+rm -f "$TMPDIR/docker-timeout-seen"
342356docker_e2e_run_with_harness image-name bash -lc true
357+test ! -e "$TMPDIR/docker-timeout-seen"
343358test -f "$external_dir/openclaw-current.tgz"
344359`;
345360@@ -349,6 +364,41 @@ test -f "$external_dir/openclaw-current.tgz"
349364}
350365});
351366367+it("keeps the harness run wrapper available with pre-sourced Docker command helpers", () => {
368+const workDir = mkdtempSync(join(tmpdir(), "openclaw-docker-package-helper-guard-"));
369+370+try {
371+const rootDir = process.cwd();
372+const script = `
373+set -euo pipefail
374+ROOT_DIR=${shellQuote(rootDir)}
375+TMPDIR=${shellQuote(workDir)}
376+export ROOT_DIR TMPDIR
377+378+docker_e2e_docker_cmd() {
379+ printf "%s\\n" "$*" >"$TMPDIR/docker-cmd-seen"
380+}
381+382+docker() {
383+ printf "%s\\n" "$*" >"$TMPDIR/docker-run-seen"
384+}
385+export -f docker
386+387+source "$ROOT_DIR/scripts/lib/docker-e2e-package.sh"
388+389+docker_e2e_run_with_harness image-name bash -lc true
390+test -f "$TMPDIR/docker-run-seen"
391+392+docker_e2e_run_detached_with_harness image-name
393+test -f "$TMPDIR/docker-cmd-seen"
394+`;
395+396+execFileSync("bash", ["-lc", script], { encoding: "utf8" });
397+} finally {
398+rmSync(workDir, { recursive: true, force: true });
399+}
400+});
401+352402it("cleans Codex npm plugin live package artifacts on every exit path", () => {
353403const runner = readFileSync(CODEX_NPM_PLUGIN_LIVE_DOCKER_E2E_PATH, "utf8");
354404此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。