#!/usr/bin/env python3 # SPDX-License-Identifier: GPL-3.0-or-later from __future__ import annotations import argparse, json, unittest from pathlib import Path P = argparse.ArgumentParser() P.add_argument("--root", type=Path, required=True) ROOT = P.parse_args().root class Phase10EA(unittest.TestCase): @classmethod def setUpClass(cls): cls.data = json.loads( (ROOT / "manifests/retroarch/phase-1.0ea-expanded-launch-evidence.json").read_text() ) def test_candidate_claim_is_not_promoted_to_abi(self): candidate = self.data["candidate"] self.assertTrue(candidate["claims_fw960_launch_worked"]) self.assertTrue(candidate["uses_sceLncUtilLaunchApp"]) self.assertFalse(candidate["independent_public_parameter_provenance_supplied"]) self.assertFalse(candidate["replaces_title_process_with_embedded_elf"]) self.assertFalse(candidate["acceptable_chimera_runtime_dependency"]) def test_cleanup_contract_remains_closed(self): cleanup = self.data["cleanup_audit"] self.assertFalse(any(cleanup.values())) def test_gates_remain_fail_closed(self): gates = self.data["gate_state"] self.assertTrue(gates["fake00000_presence_proven"]) self.assertTrue(gates["operator_browser_reachability_observed"]) self.assertFalse(gates["independent_system_service_abi_proven"]) self.assertFalse(gates["independent_lnc_parameter_abi_proven"]) self.assertFalse(gates["embedded_elf_replacement_abi_proven"]) self.assertFalse(gates["target_source_allowed"] or gates["target_build_allowed"]) self.assertFalse(gates["device_action_allowed"]) def test_no_artifact_or_authority(self): self.assertFalse(any(self.data["artifact"].values())) self.assertFalse(any(self.data["authorization"].values())) if __name__ == "__main__": unittest.main(argv=[__file__])