#!/usr/bin/env python3 # SPDX-License-Identifier: GPL-3.0-or-later """Mutation guardrails for the consumed Phase-1.0G result.""" from __future__ import annotations import argparse import importlib.util from pathlib import Path import sys def main() -> int: parser = argparse.ArgumentParser() parser.add_argument("--root", type=Path, required=True) args = parser.parse_args() root = args.root.resolve() spec = importlib.util.spec_from_file_location( "phase10g_result", root / "tools/validate_retroarch_phase10g_result.py" ) assert spec and spec.loader module = importlib.util.module_from_spec(spec) sys.modules[spec.name] = module spec.loader.exec_module(module) record = module.load(root / "manifests/retroarch/phase-1.0g-device-result.json") cases = [] def check(name, condition): cases.append((name, bool(condition))) check("current authorizations false", module.all_false(record["current_authorizations"])) active = dict(record["current_authorizations"]) active["ps5_connection_authorized"] = True check("future connection rejected", not module.all_false(active)) check("one-shot transport exact", module.transport_is_exact(record["transport"])) retry = dict(record["transport"]) retry["retry_count"] = 1 check("retry rejected", not module.transport_is_exact(retry)) reconnect = dict(record["transport"]) reconnect["reconnect_count"] = 1 check("reconnect rejected", not module.transport_is_exact(reconnect)) truncated = dict(record["transport"]) truncated["raw_stream_truncated"] = True check("truncation rejected", not module.transport_is_exact(truncated)) check("frame sequence exact", module.protocol_is_exact(record["protocol_result"])) invented = dict(record["protocol_result"]) invented["stages"] = list(invented["stages"]) + ["I04"] invented["frame_count"] = 8 check("invented I04 rejected", not module.protocol_is_exact(invented)) terminal = dict(record["protocol_result"]) terminal["terminal_stage"] = "D11" check("invented terminal rejected", not module.protocol_is_exact(terminal)) check("authorization consumed", record["authorization"]["consumed"] is True) check("authority not inherited", record["authorization"]["authority_inherited_by_future_action"] is False) check("no device write", record["performed_actions"]["device_write_performed"] is False) check("no installation", record["performed_actions"]["installation_performed"] is False) check("no autoload", record["performed_actions"]["autoload_performed"] is False) check("SDL not claimed", record["source_binding"]["sdl_videoout_reached"] is False) check("rendering not claimed", record["source_binding"]["rendering_reached"] is False) check("cleanup unproven", record["source_binding"]["terminal_cleanup_proven"] is False) failed = [name for name, passed in cases if not passed] for name, passed in cases: print(f"{'PASS' if passed else 'FAIL'} {name}") if failed: return 1 print(f"Phase-1.0G result guardrails passed: {len(cases)}") return 0 if __name__ == "__main__": raise SystemExit(main())