Reorganize Blender Web execution around capabilities
This commit is contained in:
24
tools/web/check-corrective-baseline.mjs
Normal file
24
tools/web/check-corrective-baseline.mjs
Normal file
@@ -0,0 +1,24 @@
|
||||
import assert from "node:assert/strict";
|
||||
import fs from "node:fs";
|
||||
import path from "node:path";
|
||||
import { fileURLToPath } from "node:url";
|
||||
|
||||
const root = path.resolve(path.dirname(fileURLToPath(import.meta.url)), "../..");
|
||||
function arg(name) {
|
||||
const index = process.argv.indexOf(name);
|
||||
return index >= 0 ? process.argv[index + 1] : undefined;
|
||||
}
|
||||
const baselinePath = arg("--baseline");
|
||||
const sourceHashesPath = arg("--source-hashes");
|
||||
if (!baselinePath || !sourceHashesPath) throw new Error("usage: node tools/web/check-corrective-baseline.mjs --baseline path --source-hashes path");
|
||||
const baseline = JSON.parse(fs.readFileSync(path.resolve(root, baselinePath), "utf8"));
|
||||
const expected = Object.fromEntries(fs.readFileSync(path.resolve(root, sourceHashesPath), "utf8").trim().split("\n").filter(Boolean).map((line) => {
|
||||
const [sha256, relative] = line.trim().split(/\s+/, 2);
|
||||
return [relative, sha256];
|
||||
}));
|
||||
assert.deepEqual(baseline.sourceHashes, expected, "baseline source hash map differs from source-hashes.txt");
|
||||
assert.equal(baseline.invariants.queueMutationAllowed, false);
|
||||
assert.equal(baseline.invariants.parentPointerMatchesCurrent, true);
|
||||
assert.equal(baseline.invariants.exactlyOneCatalogActive, true);
|
||||
assert.equal(baseline.invariants.catalogActiveMatchesPlan, true);
|
||||
process.stdout.write(`corrective-baseline-check-ok task=${baseline.task} sources=${Object.keys(expected).length} queueMutation=false\n`);
|
||||
Reference in New Issue
Block a user