scopedvr-map-editor/tools/TEST_UMGEBUNG.md

3.4 KiB

Test-Umgebung: woran die Editor-Suiten hängen (Karte t_1e82f747, 20.10.2026)

Kurzreferenz für die nächste Person: was die zwei zuvor „immer rot"-Suiten brauchen, warum sie in einem nackten Klon rot/skip waren, und wie man sie grün fährt. Für die Pack-Textur-Zuordnung selbst siehe PACK_TEXTURE_MAPPING.md im Client-Repo (verbindlich).

tests/test_updater.gd (75 Checks)

Braucht: nur das git-Binary (keine Identität — die Suite setzt user.name/user.email lokal in ihren Temp-Repos; kein Netz, alles läuft gegen ein Bare-Repo unter user://test_updater_…).

Früherer Dauer-Fehler (behoben): der Lauf nutzte user://test_updater_<Time.get_ticks_msec()> als Verzeichnis — ticks_msec zählt nur seit Godot-Start und ist bei CLI-Läufen immer eine kleine Zahl (z. B. 115). Die Namen kollidierten mit Alt-Läufen, die sich nicht löschen ließen (git macht .git-Pack-Dateien read-only), und git init lief dann in einer ALTEN Sitzung: remote „already exists", alter Arbeitsbaum, rote Setup-Zeilen ohne echten Bug.

Jetzt:

  • Verzeichnisname = Unix-Zeit + ticks_usec (pro Run einzigartig).
  • Aufräumen erzwingt Schreibrechte (chmod -R u+w, blocking via OS.execute mit output-Array — die 2-Argument-Variante ist in Godot 4 asynchron!) und löscht inkl. versteckter Ordner (DirAccess.include_hidden = true, .git ist versteckt) mit rm -rf-Rückfallebene.
  • Fehlerhafte git-Aufrufe geben den echten git-Fehlertext aus (git [dir] args → code=…), nicht nur eine rote Zahl.

tests/test_glb_view.gd (48 Checks)

Braucht: ein Nachbar-Repo mit assets/objekte (Mesh-Lager) — scopedvr-client oder scopedvr-match-server. Gesucht wird wie in tools/sync_objects.sh:

  1. Env SCOPEDVR_CLIENT_DIR / SCOPEDVR_MATCH_SERVER_DIR (absolute Pfade werden testseitig in ../-Pfade umgerechnet — glb_quellen müssen basis-relativ sein, String.path_join ketten Absolutpfade nur an),
  2. dann ../- und ../../-Siblings relativ zum Editor-Repo.

Ohne Fund: klare SKIP-Zeilen + Exit 0 (kein rotes Krachen). Die GLB-Quellen werden zur Laufzeit in ProjectSettings gesetzt (scopedvr/editor/glb_quellen) — kein Eingriff in src/.

Textur-Erwartungen (Stand d0d4fbd): die Pack-GLBs tragen ihre ORIGINAL-Texturen (GLTFDocument löst die externen URIs selbst auf, je Parse eine eigene ImageTexture-Instanz — der _camo_tex_cache bleibt leer). Die alten Camo-Erwartungen (desert_multicam_1/2.png, geteilte Cache-Instanz) sind entfernt. Geprüft wird jetzt: alle Flächen albedo_texture != null, Kante = Palette-Größe (1024²), reine Zuordnung pack_datei_fuer (military_base(+_00x) → Demonstration_Textures1.png, picture_1/2 → Demonstration_picture_N.png 2048²) und die Pack-Dateien im gefundenen Nachbar-Repo.

Schnelltest in diesem Container:

cd <klon>/scopedvr-map-editor
/opt/data/home/bin/godot4 --headless --path . --import   # Pflicht vor jeder -s-Suite
/opt/data/home/bin/godot4 --headless --path . --script res://tests/test_glb_view.gd
# ohne Nachbar-Repo: SKIP-Zeilen; mit: ALL OK: 48 checks

test_gui_smoke (F5) — vorbestehend rot, NICHT Teil von t_1e82f747

F5: Karte-testen-Flow angesprungen + F5: Fehler-Dialog im nicht-gefunden-Zweig geöffnet (2/89) schlagen auch am jungfräulichen 0adb161 fehl (per git stash-Verfahren verifiziert, 20.10.). Ursache ist nicht die Test-Pflege dieser Karte; Grenze der Karte war ausdrücklich nur test_updater.gd + test_glb_view.gd + Notizen.