import assert from "node:assert/strict"; import { createHash } from "node:crypto"; import { readFile } from "node:fs/promises"; const report = JSON.parse(await readFile(new URL("../../coverage/wasm-feature-matrix-t5.report.json", import.meta.url), "utf8")); assert.equal(report.schema, "wasm-feature-matrix-t5.v1"); assert.equal(report.task_id, "T5-FULL-MATRIX-01"); assert.equal(report.context_id, "linuxcnc-2.10.0-pre0-wasm-m1-py-c1"); assert.equal(report.matrix.length, 9); assert.equal(report.status, "blocked"); assert.equal(report.release_action, "STOP_RELEASE"); assert.equal(report.candidate_eligible, false); assert.deepEqual(report.counts.statuses, { blocked: 9, queued: 0, verified: 0 }); for (const row of report.matrix) { assert.ok(row.owner); assert.ok(row.inputs.length > 0); assert.ok(row.tests.length > 0); assert.ok(row.differences.length > 0); assert.ok(row.stop_reason); assert.ok(["verified", "blocked", "queued"].includes(row.status)); } assert.equal(report.checks.no_selected_case_promotion.status, "verified"); const selfHash = report.report_sha256; const canonical = (value) => { if (Array.isArray(value)) return `[${value.map(canonical).join(",")}]`; if (value && typeof value === "object") return `{${Object.keys(value).sort().map((key) => `${JSON.stringify(key)}:${canonical(value[key])}`).join(",")}}`; return JSON.stringify(value); }; const copy = structuredClone(report); delete copy.report_sha256; assert.equal(selfHash, createHash("sha256").update(canonical(copy)).digest("hex")); console.log(JSON.stringify({ schema: report.schema, status: "verified", task_id: report.task_id, domains: report.matrix.length, blocked_domains: report.counts.statuses.blocked, blocked_tests: report.counts.test_blocked, release_action: report.release_action, }));