#!/usr/bin/env python3 # SPDX-License-Identifier: GPL-3.0-or-later from __future__ import annotations import argparse,copy,importlib.util,json from pathlib import Path p=argparse.ArgumentParser();p.add_argument("--root",type=Path,required=True);root=p.parse_args().root.resolve();s=importlib.util.spec_from_file_location("v",root/"tools/validate_retroarch_phase10dc.py");assert s and s.loader;v=importlib.util.module_from_spec(s);s.loader.exec_module(v);original=json.loads((root/"manifests/retroarch/phase-1.0dc-inactive-bigapp-comparison-gate.json").read_text()) mutations=[lambda r:r["activation"].update(active=True),lambda r:r["activation"].update(run_id="LIVE"),lambda r:r["authorizations"].update(ps5_connection_authorized=True),lambda r:r["implementation_boundary"].update(socket_present=True),lambda r:r["candidate_contract"].update(exact_payload_sha256="0"*64),lambda r:r["candidate_contract"].update(fixed_existing_title="FAKE00000"),lambda r:r["forbidden_effects"].update(automatic_retry=False),lambda r:r["decision"].update(device_action_allowed=True)] for index,mutation in enumerate(mutations,1): value=copy.deepcopy(original);mutation(value) if not v.errors(value):print("FAIL",index);raise SystemExit(1) print("PASS",index) print("Phase-1.0DC guardrails passed:",len(mutations))