56 lines
2.8 KiB
Python
56 lines
2.8 KiB
Python
#!/usr/bin/env python3
|
|
"""Test the XYZAC WASM-only authority audit within the selected simulation scope."""
|
|
|
|
from __future__ import annotations
|
|
|
|
import hashlib
|
|
import json
|
|
import subprocess
|
|
import unittest
|
|
from pathlib import Path
|
|
|
|
|
|
ROOT = Path(__file__).resolve().parents[1]
|
|
REPORT = ROOT / "coverage/xyzac-trt-wasm-authority-audit.report.json"
|
|
|
|
|
|
class XyzacWasmAuthorityAuditTest(unittest.TestCase):
|
|
@classmethod
|
|
def setUpClass(cls):
|
|
subprocess.run(["python3", "scripts/generate_xyzac_trt_wasm_authority_audit.py"], cwd=ROOT, check=True, stdout=subprocess.PIPE, text=True)
|
|
cls.report = json.loads(REPORT.read_text(encoding="utf-8"))
|
|
|
|
def test_selected_authority_boundary(self):
|
|
self.assertEqual(self.report["schema"], "xyzac-trt-wasm-authority-audit.v1")
|
|
self.assertEqual(self.report["task_id"], "WASM-00")
|
|
self.assertEqual(self.report["status"], "verified")
|
|
self.assertEqual(self.report["candidate_eligible"], True)
|
|
self.assertEqual(self.report["release_status"], "STOP_RELEASE")
|
|
self.assertEqual(self.report["checks"]["js_authority_boundary"]["status"], "verified")
|
|
self.assertEqual({row["status"] for row in self.report["js_authority_findings"]}, {"resolved_selected_case"})
|
|
self.assertEqual(self.report["blockers"], [])
|
|
self.assertEqual({row["status"] for row in self.report["accepted_scope_exclusions"]}, {"accepted_scope_exclusion"})
|
|
self.assertIn("SAFARI_NOT_REQUIRED", {row["code"] for row in self.report["accepted_scope_exclusions"]})
|
|
|
|
def test_worker_trace_and_scans(self):
|
|
self.assertEqual(self.report["worker_evidence"]["status"], "verified")
|
|
self.assertEqual(self.report["worker_evidence"]["case"], self.report["case"]["path"])
|
|
self.assertEqual(self.report["worker_evidence"]["motion_authority"], "wasm")
|
|
self.assertEqual(self.report["first_divergent_tick"], None)
|
|
self.assertEqual(self.report["checks"]["react_no_direct_wasm_pointer"]["status"], "verified")
|
|
self.assertEqual(self.report["checks"]["react_no_direct_opfs_writer"]["status"], "verified")
|
|
self.assertTrue(self.report["scans"]["opfs_writer_matches"])
|
|
self.assertEqual({row["status"] for row in self.report["browser_evidence"]}, {"verified"})
|
|
self.assertEqual({row["status"] for row in self.report["authority_matrix"].values()}, {"verified"})
|
|
|
|
def test_self_hash(self):
|
|
unsigned = dict(self.report)
|
|
actual = unsigned.pop("report_sha256")
|
|
expected = hashlib.sha256(json.dumps(unsigned, ensure_ascii=False, sort_keys=True, separators=(",", ":")).encode()).hexdigest()
|
|
self.assertEqual(actual, expected)
|
|
self.assertEqual(self.report["checks"]["report_self_hash"]["status"], "verified")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|