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