Files
morlutoandCursor Agent 83f0a4d238 fix(ci)!: verify exact conformance fixture records (#9977)
* fix(ci)!: verify exact conformance fixture records

BREAKING CHANGE: Regenerate unversioned conformance manifests with npm run build:fixtures. Schema version 2 separates exact string markers from intentional fragments and rejects the ambiguous strings field.

* test(conformance): wait out a cold verifier instead of treating SIGTERM as rejection

The compiler-produced complete/REA_C_ENTRY run was killed by its 10s
execFile timeout on the loaded source-test runner, with empty stderr and
SIGTERM. The stricter record checks already passed locally and for the
other compiler-produced cases. Assert the process status and give that
cold run room inside the test budget.

* fix(ci): preserve carriage returns in nm symbol records

nm -j terminates each name with LF. A carriage return before that LF is
part of the symbol. Splitting on CR LF dropped it, so a renamed symbol
ending in CR matched the name without it.

* test(ci): supervise conformance verifier subprocesses

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
2026-11-11 17:28:10 +08:00

32 lines
1.1 KiB
TypeScript

export const LARGE_FIXTURE_COUNT: number;
export function parseConformanceFixtureManifest(value: unknown): {
readonly schemaVersion: 2;
readonly platform: "darwin" | "linux";
readonly fixtures: readonly Record<string, unknown>[];
};
export const HOPPER_C_ORACLE: Readonly<{
mainProcedure: "main";
entryProcedure: "rea_entry";
branchProcedure: "rea_branch";
leafProcedure: "rea_leaf";
entryString: "REA_C_ENTRY";
leafString: "REA_C_LEAF";
globalName: "rea_c_global";
}>;
export function sha256(value: string | Uint8Array): string;
/** `nm -j` ends each name with LF. A carriage return before that LF belongs to the name. */
export function splitNmSymbolRecords(output: string): string[];
export function generateLargeFixture(): string;
export function sourceDigest(
sources: readonly { readonly path: string; readonly content: string }[],
): string;
export function resolveConformanceFixturePath(
root: string,
declaredPath: unknown,
): Promise<string>;
export function bindConformanceFixtureArtifact(
path: string,
fixture: unknown,
): Promise<{ readonly path: string; readonly sha256: string }>;