test_testrun: Stale-Export-Falle behoben (t_2a90ceab): _cleanup purgt user://testrun KOMPLETT statt nur Testmap.svmap — eine Stale-Export-Datei fremden Owners (Root-Testlauf mit HOME=/home/slyphax erzeugt root-gehoerige Dateien in slyphax-Appdata; ein slyphax-Lauf kann sie nicht ueberschreiben) liess save_to_file still mit Datei-nicht-schreibbar (Fehler 12) scheitern, waehrend Temp-Datei-existiert + Roundtrip dank der alten Datei faelschlich gruen blieben — darum wirkte der 1/14-FAIL pre-existing ohne jeden Code-Bezug. Der Ordner-Owner darf unlinken, der Purge raeumt darum auch root-Dateien weg; zusaetzlich druckt der Export-Check jetzt die save-Fehlerliste (Diagnose ohne Probe-Script). Verifikation: Suite als slyphax UND root je 14/14 ALL OK; Fehlermeldung per Probe als slyphax bestaetigt.

This commit is contained in:
Hermes (godot-vr) 2026-10-17 22:55:05 +02:00
parent 73847ed1ce
commit 4c960e2587

View file

@ -35,10 +35,12 @@ func _check(cond: bool, label: String) -> void:
func _cleanup() -> void:
_cleanup_dir(ProjectSettings.globalize_path(TEST_DIR))
var rel := TestRun.temp_map_path({"info": {"name": "Testmap"}})
var p := ProjectSettings.globalize_path(rel)
if FileAccess.file_exists(p):
DirAccess.remove_absolute(p)
# Kompletten Temp-Ordner purgen statt nur einer Datei: eine Stale-Export-
# datei fremden Owners (root-Testlauf vs. slyphax-Lauf teilen sich user://)
# ließ den Schreibvorgang still scheitern ("Datei nicht schreibbar") und
# faerbte "Temp-Datei existiert auf Disk" faelschlich gruen. Der Ordner-
# Owner darf unlinken, auch wenn die Datei selbst root gehoert.
_cleanup_dir(ProjectSettings.globalize_path(TestRun.TESTRUN_DIR))
func _cleanup_dir(base: String) -> void:
@ -65,6 +67,8 @@ func _run_tests() -> void:
print("== Temp-Export (ungespeicherte Map) ==")
var doc := SvmapDocument.create_new("Testkarte", 256.0, "mittag")
var exported := TestRun.export_temp_map(doc)
if not bool(exported["ok"]):
print(" (save_to_file-Fehler: %s)" % str(exported.get("errors", [])))
_check(bool(exported["ok"]), "neue Map exportiert (ohne je gespeichert zu haben)")
var global_path := str(exported["path"])
_check(FileAccess.file_exists(global_path), "Temp-Datei existiert auf Disk")