59 lines
2.4 KiB
Python
59 lines
2.4 KiB
Python
#!/usr/bin/env python3
|
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
"""Tracked guardrails for Phase-1.0AW."""
|
|
|
|
from __future__ import annotations
|
|
|
|
import argparse
|
|
import json
|
|
from pathlib import Path
|
|
import unittest
|
|
|
|
|
|
PARSER = argparse.ArgumentParser()
|
|
PARSER.add_argument("--root", type=Path, required=True)
|
|
ROOT = PARSER.parse_args().root
|
|
|
|
|
|
class Phase10AWGuardrails(unittest.TestCase):
|
|
@classmethod
|
|
def setUpClass(cls) -> None:
|
|
path = ROOT / "manifests/retroarch/phase-1.0aw-canary-source-delta-audit.json"
|
|
cls.data = json.loads(path.read_text(encoding="utf-8"))
|
|
|
|
def test_old_payload_is_not_promoted(self) -> None:
|
|
old = self.data["historical_payload"]
|
|
self.assertFalse(old["bytes_present"])
|
|
self.assertEqual(old["protocol_magic"], "CHD10J01")
|
|
self.assertFalse(old["distinct_post_d04_terminal_present"])
|
|
self.assertFalse(old["reusable_as_av_canary"])
|
|
|
|
def test_source_delta_preserves_causal_identity_and_cleanup(self) -> None:
|
|
delta = self.data["required_payload_source_delta"]
|
|
self.assertEqual(delta["new_protocol_magic"], "CHD10AV1")
|
|
self.assertTrue(delta["d12_must_not_be_lifecycle_terminal"])
|
|
self.assertTrue(delta["d14_emitted_only_after_s15_complete"])
|
|
self.assertTrue(delta["new_cleanup_failure_counter_required"])
|
|
self.assertTrue(delta["same_elf_bytes_for_both_arms_required"])
|
|
self.assertTrue(delta["launcher_identity_compile_define_forbidden"])
|
|
|
|
def test_result_candidate_does_not_erase_launcher_effects(self) -> None:
|
|
result = self.data["bigapp_result_path"]
|
|
effects = self.data["launcher_effects"]
|
|
self.assertTrue(result["binary_frame_source_candidate"])
|
|
self.assertFalse(result["live_result_path_proven"])
|
|
self.assertTrue(effects["kills_running_bigapp"])
|
|
self.assertTrue(effects["unbounded_child_discovery_wait"])
|
|
self.assertFalse(effects["bounded_cleanup_on_every_failure"])
|
|
self.assertFalse(effects["direct_v07_reuse_allowed"])
|
|
|
|
def test_artifact_and_device_gates_remain_closed(self) -> None:
|
|
self.assertFalse(any(self.data["authorizations"].values()))
|
|
self.assertFalse(self.data["decision"]["target_artifact_build_allowed"])
|
|
self.assertFalse(self.data["decision"]["device_action_allowed"])
|
|
self.assertTrue(self.data["decision"]["host_tested_source_design_allowed"])
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main(argv=[__file__])
|