test: strengthen integration oracles and verification (#8295)

* test: strengthen integration oracles and verification

* test: bound lifecycle gates and strengthen workflow checks

* test: verify complete paged and extracted results

* test: preserve bytecode and cancellation evidence

* test: strengthen retained evidence and fixture cleanup

* test: require cross-projection bridge identities

* test: retain fixture owners through cleanup failures

* test: verify graph examples and project selectors

* test: tighten provider and lifecycle regressions

* test: consolidate hex coverage and bound cutter cleanup

* test: bound subprocess output waits and strengthen graph checks

* test: check mcp recovery and preserve cleanup owners

* test: verify structured mcp argument failures

* test: preserve artifact cleanup and gdb limit evidence

* test: preserve evidence identities and bound provider gates

* test: retain browser and comparison cleanup owners

* test: bound startup and strengthen fixture oracles

* test: bound lifecycle gates and verify recovered evidence

* test: verify public outcomes and lifecycle ownership

* test: assert precise evidence and release lifecycle gates

* test: verify selected facts and bound cleanup waits

* test: check retained evidence and decoded records

* test: verify final reports and retain cleanup ownership

* test: bound reviewed startup gates and retain cleanup

* test: verify PE errors and preserve MCP cleanup

* test: preserve MCP fixture cleanup ownership

* test: release provider gates before late startup
This commit is contained in:
morluto authored and GitHub committed 2026-11-01 00:15:28 +08:00
1 parent 2d5dec26c3
commit 60149282fc
342 files changed
+8844 -6279

No files matched your search

@@ -4,6 +4,8 @@ import { readFile, readdir } from "node:fs/promises";
import { join } from "node:path";
import { promisify } from "node:util";
import { expect, it } from "vitest";
import { withVerifierCleanup } from "../../../scripts/lib/verifier-cleanup.mjs";
import { awaitAcknowledgement } from "../../fixtures/lifecycleAcknowledgement.js";
import { JavaScriptAnalysisWorker } from "../../../src/javascript/analysis/JavaScriptAnalysisWorker.js";
import { createJavaScriptSourceAnalysis } from "../../../src/artifacts/javascript/JavaScriptSourceAnalysis.js";
import { ArtifactResourceScope } from "../../../src/artifacts/ArtifactResourceScope.js";
@@ -225,7 +227,7 @@ it("keeps a worker parked while a limit change closes the previous process", asy
let replacement:
| ReturnType<typeof createJavaScriptSourceAnalysis>
| undefined;
try {
await withVerifierCleanup(async () => {
const initial = await createJavaScriptSourceAnalysis(limits, 1, {
scope,
launcher,
@@ -252,7 +254,7 @@ it("keeps a worker parked while a limit change closes the previous process", asy
1,
{ scope, launcher },
);
await closeStarted;
await awaitAcknowledgement(closeStarted, replacement, "worker close");
const concurrent = await createJavaScriptSourceAnalysis(limits, 1, {
scope,
@@ -288,13 +290,19 @@ it("keeps a worker parked while a limit change closes the previous process", asy
await scope.close();
await exits.get(parkedPid);
expect(exited.has(parkedPid)).toBe(true);
} finally {
JavaScriptAnalysisWorker.prototype.close = originalClose;
releaseClose();
const port = await replacement?.catch(() => undefined);
await port?.close().catch(() => undefined);
await scope.close();
}
}, [
releaseClose,
async () => {
const port = await replacement?.catch(() => undefined);
await port?.close();
},
async () => {
await scope.close();
},
() => {
JavaScriptAnalysisWorker.prototype.close = originalClose;
},
]);
});
it("does not start a replacement when closing the previous worker fails", async () => {