17 lines
1.3 KiB
Python
17 lines
1.3 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 Phase10DE(unittest.TestCase):
|
|
@classmethod
|
|
def setUpClass(cls):cls.data=json.loads((ROOT/"manifests/retroarch/phase-1.0de-independent-abi-provenance-search.json").read_text())
|
|
def test_sonicloader_is_derivative(self):
|
|
item=self.data["sonicloader_lineage"];self.assertTrue(item["initial_normalized_declaration_block_equals_official_shsrv_v019"]);self.assertFalse(item["independent_abi_corroboration"] or item["acceptable_runtime_dependency"])
|
|
def test_no_global_absence_claim(self):self.assertFalse(self.data["bounded_search"]["global_absence_claimed"])
|
|
def test_title_unproven(self):self.assertFalse(any(self.data["title_evidence"].values()))
|
|
def test_no_authority(self):self.assertFalse(any(self.data["authorizations"].values()) or self.data["decision"]["minimal_launcher_source_allowed"] or self.data["decision"]["device_action_allowed"])
|
|
def test_next_step_is_observer_design(self):self.assertEqual(self.data["decision"]["next_step"],"OFFLINE_FAIL_CLOSED_TITLE_PRESENCE_OBSERVER_GATE_DESIGN")
|
|
if __name__=="__main__":unittest.main(argv=[__file__])
|