test: opt-in gate for live-playwright ML tests; ios-qa build hygiene

security-live-playwright's L4 tests dlopen onnxruntime inside a bun
--parallel worker whenever the dev box has a warm model cache — the
source of the intermittent 'panic: Segmentation fault' + crashed-worker
retries (and likely the residual run wedges). Same SECURITY_BENCH=1
opt-in as security-bench.test.ts; the L1-L3 tests in the file still run
everywhere.

Also: gitignore the ios-qa gen-accessors-tool Swift .build/ output (a
side-effect of running its tests that kept polluting git status) and
commit its Package.resolved so tool builds resolve reproducibly.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Garry Tan
2026-08-15 10:40:21 -07:00
co-authored by Claude Fable 5
parent 10a0f130c7
commit 965b0d5a7c
3 changed files with 24 additions and 1 deletions
+7 -1
View File
@@ -42,7 +42,13 @@ const MODEL_CACHE = path.join(
'onnx',
'model.onnx',
);
const ML_AVAILABLE = fs.existsSync(MODEL_CACHE);
// Opt-in only (SECURITY_BENCH=1), same rationale as security-bench.test.ts:
// gating on model-cache existence alone auto-ran ONNX inference on any dev box
// that ever warmed the classifier — and dlopen'ing onnxruntime inside a
// `bun test --parallel` worker segfaults Bun intermittently (observed twice:
// "panic: Segmentation fault ... a bug in Bun" followed by a crashed-worker
// retry, sometimes wedging the run).
const ML_AVAILABLE = process.env.SECURITY_BENCH === '1' && fs.existsSync(MODEL_CACHE);
describe('defense-in-depth — live Playwright fixture', () => {
let testServer: ReturnType<typeof startTestServer>;