16 lines
1.4 KiB
Python
16 lines
1.4 KiB
Python
#!/usr/bin/env python3
|
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
import argparse,json,unittest
|
|
from pathlib import Path
|
|
parser=argparse.ArgumentParser();parser.add_argument("--root",type=Path,required=True);root=parser.parse_args().root
|
|
class Phase10CRGuardrails(unittest.TestCase):
|
|
@classmethod
|
|
def setUpClass(cls):cls.data=json.loads((root/"manifests/retroarch/phase-1.0cr-audited-sdl-archive-export-gate.json").read_text())
|
|
def test_gate(self):
|
|
self.assertEqual(self.data["source_bindings"]["phase10cq_manifest_sha256"],"8d120585502993c93d5475ce31b1f1b48461183037542e3dc202bcadf501094f")
|
|
a=self.data["archive"];self.assertEqual(a["sha256"],"4ced0a042c0b8a70424e42a14cfe9b2c4d30a4cd73b661dc1fcf8ad967a7f7e1");self.assertEqual(a["member_count"],143);self.assertEqual(a["ps5_member_count"],5);self.assertEqual(a["expected_undefined_chimera_hooks"],26)
|
|
o=self.data["one_shot"];self.assertEqual(o["attempts_authorized"],1);self.assertTrue(o["exclusive_leaf_create"] and o["file_fsync"] and o["reopen_rehash"]);self.assertFalse(o["automatic_retry"] or o["source_cleanup_authorized"])
|
|
z=self.data["authorizations"];self.assertTrue(z["archive_export_authorized"])
|
|
for k in ("retroarch_target_build_authorized","network_access_authorized","ps5_connection_authorized","device_transfer_authorized","device_execution_authorized"):self.assertFalse(z[k],k)
|
|
if __name__=="__main__":unittest.main(argv=[__file__])
|