




















@@ -1913,6 +1913,25 @@ fi
19131913const publishedRunner = readFileSync(UPGRADE_SURVIVOR_RUN_SCRIPT, "utf8");
19141914const updateRestartAuth = readFileSync(UPGRADE_SURVIVOR_UPDATE_RESTART_AUTH_PATH, "utf8");
191519151916+expect(runner).toContain('source "$ROOT_DIR/scripts/lib/openclaw-e2e-instance.sh"');
1917+expect(runner).toContain(
1918+'START_BUDGET_SECONDS="$(openclaw_e2e_read_positive_int_env OPENCLAW_UPGRADE_SURVIVOR_START_BUDGET_SECONDS 90)"',
1919+);
1920+expect(runner).toContain(
1921+'STATUS_BUDGET_SECONDS="$(openclaw_e2e_read_positive_int_env OPENCLAW_UPGRADE_SURVIVOR_STATUS_BUDGET_SECONDS 30)"',
1922+);
1923+expect(runner).toContain(
1924+'-e OPENCLAW_UPGRADE_SURVIVOR_START_BUDGET_SECONDS="$START_BUDGET_SECONDS"',
1925+);
1926+expect(runner).toContain(
1927+'-e OPENCLAW_UPGRADE_SURVIVOR_STATUS_BUDGET_SECONDS="$STATUS_BUDGET_SECONDS"',
1928+);
1929+expect(runner).toContain(
1930+'START_BUDGET="$(openclaw_e2e_read_positive_int_env OPENCLAW_UPGRADE_SURVIVOR_START_BUDGET_SECONDS 90)"',
1931+);
1932+expect(runner).toContain(
1933+'STATUS_BUDGET="$(openclaw_e2e_read_positive_int_env OPENCLAW_UPGRADE_SURVIVOR_STATUS_BUDGET_SECONDS 30)"',
1934+);
19161935expect(runner).toContain(
19171936'COMMAND_TIMEOUT="${OPENCLAW_UPGRADE_SURVIVOR_COMMAND_TIMEOUT:-900s}"',
19181937);
@@ -1939,6 +1958,12 @@ fi
19391958expect(publishedRunner).toContain(
19401959'COMMAND_TIMEOUT="${OPENCLAW_UPGRADE_SURVIVOR_COMMAND_TIMEOUT:-900s}"',
19411960);
1961+expect(publishedRunner).toContain(
1962+'budget="$(openclaw_e2e_read_positive_int_env OPENCLAW_UPGRADE_SURVIVOR_START_BUDGET_SECONDS 90)"',
1963+);
1964+expect(publishedRunner).toContain(
1965+'budget="$(openclaw_e2e_read_positive_int_env OPENCLAW_UPGRADE_SURVIVOR_STATUS_BUDGET_SECONDS 30)"',
1966+);
19421967expect(publishedRunner).toContain(
19431968'openclaw_e2e_maybe_timeout "$COMMAND_TIMEOUT" env -u OPENCLAW_GATEWAY_TOKEN',
19441969);
@@ -1981,6 +2006,24 @@ fi
19812006);
19822007});
198320082009+it.each([
2010+["start budget", "OPENCLAW_UPGRADE_SURVIVOR_START_BUDGET_SECONDS", "90s"],
2011+["status budget", "OPENCLAW_UPGRADE_SURVIVOR_STATUS_BUDGET_SECONDS", "30s"],
2012+])("rejects invalid upgrade survivor Docker %s before Docker setup", (_label, envName, value) => {
2013+const result = spawnSync("bash", [UPGRADE_SURVIVOR_DOCKER_E2E_PATH], {
2014+encoding: "utf8",
2015+env: {
2016+ ...process.env,
2017+OPENCLAW_UPGRADE_SURVIVOR_E2E_SKIP_BUILD: "1",
2018+[envName]: value,
2019+},
2020+});
2021+2022+expect(result.status).toBe(2);
2023+expect(result.stderr).toContain(`invalid ${envName}: ${value}`);
2024+expect(result.stderr).not.toContain("Docker image not found");
2025+});
2026+19842027it("bounds upgrade survivor failure log diagnostics", () => {
19852028const runner = readFileSync(UPGRADE_SURVIVOR_DOCKER_E2E_PATH, "utf8");
19862029const publishedRunner = readFileSync(UPGRADE_SURVIVOR_RUN_SCRIPT, "utf8");
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。