feat(web): add incremental modifier reader batch
Some checks failed
M6 deployable RC / quick (push) Has been cancelled
M6 deployable RC / chromium (push) Has been cancelled
M6 deployable RC / release (push) Has been cancelled

This commit is contained in:
mes123456
2026-09-03 13:30:30 +08:00
parent 646e580b94
commit c3cce050f8
24 changed files with 9295 additions and 57 deletions

View File

@@ -32,12 +32,25 @@ if (!coverageBindings.length) throw new Error(`task ${task} has no coverageBindi
const production = json(productionPath);
assert.equal(production.browser, "chromium");
assert.equal(production.queueMutation, false);
assert.equal(production.error, undefined);
assert.equal(production.saveReopenExact, true);
assert.equal(production.deterministicExact, true);
const inventoryPath = "tests/golden/WBV2/dynamic-inventory.json";
const inventory = json(inventoryPath);
assert.equal(production.fixtureSha256, sha(production.fixture));
const fixturePaths = Array.isArray(production.fixtures) ? production.fixtures : production.fixture ? [production.fixture] : [];
assert.ok(fixturePaths.length, "production evidence has no fixture(s)");
const fixtureEvidence = Array.isArray(production.fixtures)
? fixturePaths.map((fixture) => production[fixture])
: [production];
for (const evidence of fixtureEvidence) {
assert.ok(evidence && typeof evidence === "object", "fixture result is missing");
assert.equal(evidence.error, undefined);
assert.equal(evidence.saveReopenExact, true);
assert.equal(evidence.deterministicExact, true);
}
if (Array.isArray(production.fixtures)) {
assert.equal(typeof production.fixtureSha256, "object");
for (const fixture of fixturePaths) assert.equal(production.fixtureSha256[fixture], sha(fixture), `fixture hash drift: ${fixture}`);
} else {
assert.equal(production.fixtureSha256, sha(production.fixture));
}
const bindingsPath = "tests/golden/WBV2/dynamic-coverage-bindings.json";
const existing = fs.existsSync(abs(bindingsPath)) ? json(bindingsPath) : [];
const byId = new Map(existing.map((binding) => [binding.unitId, binding]));