t_a7d15717: run_suites.py False-Positive gefixt — Fehler-Regex nur noch auf ^SCRIPT ERROR: / ^Parse Error: am Zeilenanfang (re.MULTILINE). Vorher matchte die Phrase-Regex das eigene Check-Label der Suite ("ok: Parse Error wird erkannt ...", test_updater.gd Zeile 73) -> SCRIPT_ERROR obwohl ALL OK: 75. Zusaetzlich \n zwischen stdout+stderr (sonst verkleben die Streams und der ^-Anker verliert die erste stderr-Zeile). Abnahme: Voll-Batterie SUITEN_TOTAL=30 GRUEN=30 ROT=0, test_updater sauber OK.

This commit is contained in:
Hermes (scopedvr-dev) 2026-10-20 10:12:14 +00:00
parent 60b09bfb74
commit 403895b743

View file

@ -10,8 +10,13 @@ for path in suites:
name = path.split("/")[-1][:-3] name = path.split("/")[-1][:-3]
proc = subprocess.run([GODOT, "--headless", "--path", ".", "-s", path], proc = subprocess.run([GODOT, "--headless", "--path", ".", "-s", path],
capture_output=True, text=True, timeout=600) capture_output=True, text=True, timeout=600)
out = proc.stdout + proc.stderr out = proc.stdout + "\n" + proc.stderr
if re.search(r"SCRIPT ERROR:|Parse Error", out): # Fehler-Erkennung NUR auf echte Godot-Fehlerzeilen: ^SCRIPT ERROR: am
# Zeilenanfang (Zeile 73 "ok: Parse Error wird erkannt ..." muss NICHT
# treffen — die Suite testet die False-Positive-Erkennung und druckt den
# Phrase-Text). "\n" dazwischen: stdout+stderr dürfen nicht verkleben,
# sonst verliert der ^-Anker die erste stderr-Zeile.
if re.search(r"^SCRIPT ERROR:|^Parse Error:", out, re.MULTILINE):
st = "SCRIPT_ERROR" st = "SCRIPT_ERROR"
elif re.search(r"FAILURES: [1-9]|FAILED|TEST_FAIL", out): elif re.search(r"FAILURES: [1-9]|FAILED|TEST_FAIL", out):
st = "FAIL" st = "FAIL"