mirror of
https://github.com/openclaw/openclaw.git
synced 2026-07-09 15:59:30 +00:00
fix(live): validate gateway model limits
This commit is contained in:
parent
39e9336d40
commit
98857235d5
2 changed files with 58 additions and 3 deletions
|
|
@ -17,6 +17,9 @@ CONFIG_DIR="${OPENCLAW_CONFIG_DIR:-$HOME/.openclaw}"
|
|||
WORKSPACE_DIR="${OPENCLAW_WORKSPACE_DIR:-$HOME/.openclaw/workspace}"
|
||||
PROFILE_FILE="$(openclaw_live_default_profile_file)"
|
||||
DOCKER_USER="${OPENCLAW_DOCKER_USER:-node}"
|
||||
LIVE_GATEWAY_MAX_MODELS="$(openclaw_live_read_positive_int_env OPENCLAW_LIVE_GATEWAY_MAX_MODELS 8)"
|
||||
LIVE_GATEWAY_STEP_TIMEOUT_MS="$(openclaw_live_read_positive_int_env OPENCLAW_LIVE_GATEWAY_STEP_TIMEOUT_MS 45000)"
|
||||
LIVE_GATEWAY_MODEL_TIMEOUT_MS="$(openclaw_live_read_positive_int_env OPENCLAW_LIVE_GATEWAY_MODEL_TIMEOUT_MS 90000)"
|
||||
TEMP_DIRS=()
|
||||
DOCKER_HOME_MOUNT=()
|
||||
DOCKER_AUTH_PRESTAGED=0
|
||||
|
|
@ -215,10 +218,10 @@ DOCKER_RUN_ARGS+=(--rm -t \
|
|||
-e OPENCLAW_LIVE_GATEWAY_PROVIDERS="${OPENCLAW_LIVE_GATEWAY_PROVIDERS:-}" \
|
||||
-e OPENCLAW_LIVE_GATEWAY_THINKING="${OPENCLAW_LIVE_GATEWAY_THINKING:-}" \
|
||||
-e OPENCLAW_LIVE_GATEWAY_SMOKE="${OPENCLAW_LIVE_GATEWAY_SMOKE:-1}" \
|
||||
-e OPENCLAW_LIVE_GATEWAY_MAX_MODELS="${OPENCLAW_LIVE_GATEWAY_MAX_MODELS:-8}" \
|
||||
-e OPENCLAW_LIVE_GATEWAY_MAX_MODELS="$LIVE_GATEWAY_MAX_MODELS" \
|
||||
-e OPENCLAW_LIVE_GATEWAY_HEARTBEAT_MS="${OPENCLAW_LIVE_GATEWAY_HEARTBEAT_MS:-}" \
|
||||
-e OPENCLAW_LIVE_GATEWAY_STEP_TIMEOUT_MS="${OPENCLAW_LIVE_GATEWAY_STEP_TIMEOUT_MS:-45000}" \
|
||||
-e OPENCLAW_LIVE_GATEWAY_MODEL_TIMEOUT_MS="${OPENCLAW_LIVE_GATEWAY_MODEL_TIMEOUT_MS:-90000}" \
|
||||
-e OPENCLAW_LIVE_GATEWAY_STEP_TIMEOUT_MS="$LIVE_GATEWAY_STEP_TIMEOUT_MS" \
|
||||
-e OPENCLAW_LIVE_GATEWAY_MODEL_TIMEOUT_MS="$LIVE_GATEWAY_MODEL_TIMEOUT_MS" \
|
||||
-e OPENCLAW_VITEST_FS_MODULE_CACHE=0)
|
||||
openclaw_live_append_array DOCKER_RUN_ARGS DOCKER_HOME_MOUNT
|
||||
openclaw_live_append_array DOCKER_RUN_ARGS DOCKER_TRUSTED_HARNESS_MOUNT
|
||||
|
|
|
|||
52
test/scripts/test-live-gateway-models-docker.test.ts
Normal file
52
test/scripts/test-live-gateway-models-docker.test.ts
Normal file
|
|
@ -0,0 +1,52 @@
|
|||
// Test Live Gateway Models Docker tests cover gateway live model Docker script behavior.
|
||||
import { spawnSync } from "node:child_process";
|
||||
import fs from "node:fs";
|
||||
import path from "node:path";
|
||||
import { describe, expect, it } from "vitest";
|
||||
|
||||
const SCRIPT_PATH = path.resolve(
|
||||
import.meta.dirname,
|
||||
"../../scripts/test-live-gateway-models-docker.sh",
|
||||
);
|
||||
|
||||
describe("scripts/test-live-gateway-models-docker.sh", () => {
|
||||
it("validates numeric live gateway limits before auth or Docker setup", () => {
|
||||
const script = fs.readFileSync(SCRIPT_PATH, "utf8");
|
||||
|
||||
expect(script).toContain(
|
||||
'LIVE_GATEWAY_MAX_MODELS="$(openclaw_live_read_positive_int_env OPENCLAW_LIVE_GATEWAY_MAX_MODELS 8)"',
|
||||
);
|
||||
expect(script).toContain(
|
||||
'LIVE_GATEWAY_STEP_TIMEOUT_MS="$(openclaw_live_read_positive_int_env OPENCLAW_LIVE_GATEWAY_STEP_TIMEOUT_MS 45000)"',
|
||||
);
|
||||
expect(script).toContain(
|
||||
'LIVE_GATEWAY_MODEL_TIMEOUT_MS="$(openclaw_live_read_positive_int_env OPENCLAW_LIVE_GATEWAY_MODEL_TIMEOUT_MS 90000)"',
|
||||
);
|
||||
expect(script).toContain('-e OPENCLAW_LIVE_GATEWAY_MAX_MODELS="$LIVE_GATEWAY_MAX_MODELS"');
|
||||
expect(script).toContain(
|
||||
'-e OPENCLAW_LIVE_GATEWAY_STEP_TIMEOUT_MS="$LIVE_GATEWAY_STEP_TIMEOUT_MS"',
|
||||
);
|
||||
expect(script).toContain(
|
||||
'-e OPENCLAW_LIVE_GATEWAY_MODEL_TIMEOUT_MS="$LIVE_GATEWAY_MODEL_TIMEOUT_MS"',
|
||||
);
|
||||
});
|
||||
|
||||
it.each([
|
||||
["max models", "OPENCLAW_LIVE_GATEWAY_MAX_MODELS", "two"],
|
||||
["step timeout", "OPENCLAW_LIVE_GATEWAY_STEP_TIMEOUT_MS", "45s"],
|
||||
["model timeout", "OPENCLAW_LIVE_GATEWAY_MODEL_TIMEOUT_MS", "90s"],
|
||||
])("rejects invalid %s values before live Docker setup", (_label, envName, value) => {
|
||||
const result = spawnSync("bash", [SCRIPT_PATH], {
|
||||
encoding: "utf8",
|
||||
env: {
|
||||
...process.env,
|
||||
[envName]: value,
|
||||
},
|
||||
});
|
||||
|
||||
expect(result.status).toBe(2);
|
||||
expect(result.stderr).toContain(`invalid ${envName}: ${value}`);
|
||||
expect(result.stderr).not.toContain("docker");
|
||||
expect(result.stderr).not.toContain("Cannot find package 'tsx'");
|
||||
});
|
||||
});
|
||||
Loading…
Add table
Add a link
Reference in a new issue