21 lines
1.8 KiB
Python
21 lines
1.8 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 Phase10DD(unittest.TestCase):
|
|
@classmethod
|
|
def setUpClass(cls):cls.data=json.loads((ROOT/"manifests/retroarch/phase-1.0dd-minimal-launcher-source-prerequisite-audit.json").read_text())
|
|
def test_names_are_not_abi(self):
|
|
inventory=self.data["export_inventory"];self.assertTrue(inventory["sceSystemServiceLaunchApp_name_in_sdk_stub"]);self.assertFalse(inventory["sdk_stub_proves_function_signature"] or inventory["sdk_stub_proves_structure_layout"])
|
|
def test_single_lineage_not_promoted(self):
|
|
lineage=self.data["single_lineage_declarations"];self.assertTrue(lineage["acceptable_as_architecture_reference"]);self.assertFalse(lineage["independent_public_abi_corroboration"] or lineage["acceptable_as_new_target_abi_contract"])
|
|
def test_title_runtime_unproven(self):
|
|
title=self.data["title_contract"];self.assertEqual(title["fixed_candidate"],"PPSA01659");self.assertFalse(title["firmware_960_presence_proven"] or title["videoout_ownership_proven"] or title["fallback_title_allowed"])
|
|
def test_gate_closed(self):
|
|
self.assertFalse(any(self.data["authorizations"].values()));self.assertFalse(self.data["decision"]["minimal_launcher_target_source_allowed"] or self.data["decision"]["device_action_allowed"])
|
|
def test_public_search_not_overpromoted(self):
|
|
search=self.data["bounded_public_search"];self.assertTrue(search["sonicloader_candidate_found"]);self.assertFalse(search["sonicloader_accepted_as_independent_corroboration"] or search["global_absence_claimed"])
|
|
if __name__=="__main__":unittest.main(argv=[__file__])
|