Complete 3axis tutorial native and Web/WASM parity tools
This commit is contained in:
40
web/worker/test_wasm_feature_matrix_t5.mjs
Normal file
40
web/worker/test_wasm_feature_matrix_t5.mjs
Normal file
@@ -0,0 +1,40 @@
|
||||
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,
|
||||
}));
|
||||
Reference in New Issue
Block a user