Skip to content

Commit d90be6f

Browse files
test(operator): cover Windows sandbox session guard
1 parent 644a4a5 commit d90be6f

1 file changed

Lines changed: 99 additions & 0 deletions

File tree

Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
import assert from "node:assert/strict"
2+
import fs from "node:fs"
3+
import os from "node:os"
4+
import path from "node:path"
5+
import { spawnSync } from "node:child_process"
6+
7+
const root = fs.mkdtempSync(path.join(os.tmpdir(), "codex-windows-sandbox-session-"))
8+
const guard = path.resolve("scripts/operator/codex-windows-sandbox-session-guard.mjs")
9+
10+
function writeEvidence(name, payload) {
11+
const file = path.join(root, `${name}.json`)
12+
fs.writeFileSync(file, `${JSON.stringify(payload, null, 2)}\n`, "utf8")
13+
return file
14+
}
15+
16+
function run(name, payload, extraArgs = [], env = {}) {
17+
const evidence = writeEvidence(name, payload)
18+
const result = spawnSync(process.execPath, [guard, "--evidence", evidence, "--json", ...extraArgs], {
19+
encoding: "utf8",
20+
env: { ...process.env, ...env },
21+
})
22+
const text = String(result.stdout || result.stderr || "").trim()
23+
return { status: result.status, output: text ? JSON.parse(text) : null }
24+
}
25+
26+
try {
27+
const blockedDirect = run("blocked-direct", {
28+
platform: "win32",
29+
operation: "codex_sandbox",
30+
codex_version: "0.146.0",
31+
codex_sandbox_logon_sessions: 0,
32+
baseline_codex_sandbox_logon_sessions: 0,
33+
lsass_handles: 2800,
34+
session_probe_complete: true,
35+
})
36+
assert.equal(blockedDirect.status, 75)
37+
assert.equal(blockedDirect.output.reason, "codex_sandbox_session_leak_unfixed")
38+
39+
const boundedExec = run("bounded-exec", {
40+
platform: "win32",
41+
operation: "codex_exec",
42+
codex_version: "0.146.0",
43+
codex_sandbox_logon_sessions: 12,
44+
baseline_codex_sandbox_logon_sessions: 12,
45+
lsass_handles: 3200,
46+
session_probe_complete: true,
47+
})
48+
assert.equal(boundedExec.status, 0)
49+
assert.equal(boundedExec.output.reason, "windows_session_state_bounded")
50+
51+
const growth = run("growth", {
52+
platform: "win32",
53+
operation: "codex_exec",
54+
codex_version: "0.146.0",
55+
codex_sandbox_logon_sessions: 120,
56+
baseline_codex_sandbox_logon_sessions: 110,
57+
lsass_handles: 4900,
58+
session_probe_complete: true,
59+
})
60+
assert.equal(growth.status, 75)
61+
assert.equal(growth.output.reason, "windows_sandbox_session_growth_detected")
62+
63+
const fixed = run("fixed", {
64+
platform: "win32",
65+
operation: "codex_sandbox",
66+
codex_version: "0.147.1",
67+
codex_sandbox_logon_sessions: 20,
68+
baseline_codex_sandbox_logon_sessions: 20,
69+
lsass_handles: 3400,
70+
session_probe_complete: true,
71+
release_fix_attested: true,
72+
canary_invocations: 500,
73+
canary_session_delta: 0,
74+
network_denial_passed: true,
75+
piped_spawn_passed: true,
76+
})
77+
assert.equal(fixed.status, 0)
78+
assert.equal(fixed.output.fixed_build_canary_passed, true)
79+
80+
const prohibited = run(
81+
"prohibited",
82+
{
83+
platform: "win32",
84+
operation: "codex_exec",
85+
codex_sandbox_logon_sessions: 0,
86+
baseline_codex_sandbox_logon_sessions: 0,
87+
lsass_handles: 2500,
88+
session_probe_complete: true,
89+
},
90+
[],
91+
{ OPERATOR_ROUTE: "model-gateway-auto-select" },
92+
)
93+
assert.equal(prohibited.status, 64)
94+
assert.equal(prohibited.output.reason, "prohibited_route_metadata")
95+
96+
console.log("codex-windows-sandbox-session-guard self-test passed")
97+
} finally {
98+
fs.rmSync(root, { recursive: true, force: true })
99+
}

0 commit comments

Comments
 (0)