#!/usr/bin/env python3 """Run all Godot -s test suites and summarize (Karte t_eaccbfed).""" import subprocess, re, sys GODOT = "/opt/data/home/bin/godot4" suites = sorted(__import__("glob").glob("tests/test_*.gd")) results = [] for path in suites: name = path.split("/")[-1][:-3] proc = subprocess.run([GODOT, "--headless", "--path", ".", "-s", path], capture_output=True, text=True, timeout=600) out = proc.stdout + proc.stderr if re.search(r"SCRIPT ERROR:|Parse Error", out): st = "SCRIPT_ERROR" elif re.search(r"FAILURES: [1-9]|FAILED|TEST_FAIL", out): st = "FAIL" else: st = "OK" summary = "" for line in out.splitlines(): if re.search(r"ALL OK|CHECKS:|FAILED:", line): summary = line.strip() results.append((name, st, summary)) print(f"{name}: {st} | {summary}", flush=True) ok = sum(1 for _, s, _ in results if s == "OK") print(f"\nSUITEN_TOTAL={len(results)} GRUEN={ok} ROT={len(results)-ok}") sys.exit(0 if ok == len(results) else 1)