This commit is contained in:
@@ -0,0 +1,72 @@
|
||||
#!/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())
|
||||
Reference in New Issue
Block a user