48 lines
1.9 KiB
Python
48 lines
1.9 KiB
Python
#!/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__])
|