#!/usr/bin/env python3 # SPDX-License-Identifier: GPL-3.0-or-later from __future__ import annotations import argparse,hashlib,json,unittest from pathlib import Path P=argparse.ArgumentParser();P.add_argument("--root",type=Path,required=True);ROOT=P.parse_args().root class Phase10DI(unittest.TestCase): @classmethod def setUpClass(cls):cls.data=json.loads((ROOT/"manifests/retroarch/phase-1.0di-live-acquisition-boundary.json").read_text()) def test_acquisition_is_blocked(self): a=self.data["acquisition_audit"];self.assertFalse(a["controlled_elfldr_binary_readback"] or a["payload_manager_binary_readback"] or a["nvt_cat_is_binary_safe"] or a["direct_snapshot_acquisition_formable"] or a["offline_alternative_remaining"]) def test_exact_inactive_window(self): w=self.data["minimum_observation_window"];self.assertFalse(w["active"]);self.assertIsNone(w["target"]);self.assertEqual((w["port"],w["connections"],w["outbound_batches"],w["maximum_received_bytes"],w["hard_deadline_seconds"]),(2323,1,1,65536,10));self.assertEqual(hashlib.sha256(w["exact_command_ascii"].encode()).hexdigest(),w["exact_command_sha256"]) def test_no_mutation_or_execution(self): w=self.data["minimum_observation_window"];self.assertFalse(any(w[k] for k in ("device_file_read","device_write","payload_transfer","payload_execution","title_launch","app_termination","retry","reconnect"))) def test_no_authority(self):self.assertFalse(any(self.data["authorizations"].values()) or self.data["decision"]["device_action_allowed"] or self.data["decision"]["tracked_activation_may_be_enabled"]) def test_permission_is_next(self):self.assertTrue(self.data["decision"]["all_safe_offline_prerequisites_complete"] and self.data["decision"]["connection_is_next_required_action"]);self.assertEqual(self.data["decision"]["next_step"],"REQUEST_EXACT_DI_T2_CONSOLE_CONNECTION_PERMISSION") if __name__=="__main__":unittest.main(argv=[__file__])