[TEST] Globaler GUI-Aus-Schalter fuer automatische Testlaeufe

Der VF-Linienzug-Wizard (*vfl-wizard-mode* Default T) oeffnete beim
automatischen Replay-Test DCL-Dialoge und blockierte den Lauf.

- ssg_core.lsp: globaler Schalter *ssg-gui-aus* + ssg-gui-p/-aus/-an
- vf_linienzug.lsp: neue vfl-wizard-mode-p (Wizard nur wenn *vfl-wizard-mode*
  UND GUI nicht abgeschaltet); ersetzt die direkten *vfl-wizard-mode*-Checks in
  vfl-in-string/-real/-int, vfl-winkel-live und vfl-wizard-aktiv (deckt damit
  auch alle vflw-gruppe-*-Dialoge ab). Bei GUI-aus fallen die Eingaben auf den
  getstring/getint/getreal-Pfad, den die Testrunner per Mock/Replay bedienen.
- test_linienzug.lsp: (ssg-gui-aus) vor dem Replay, (ssg-gui-an) danach (immer).
- test_run_all.lsp: GUI aus um den gesamten Batch, danach wieder an.

Alle Guards ueber atoms-family, damit aeltere Ladezustaende unveraendert
funktionieren. Paren-Balance geprueft.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-08-29 09:39:30 +02:00
parent 80804a321a
commit 8f133f69b0
4 changed files with 42 additions and 5 deletions
+13
View File
@@ -137,6 +137,19 @@
)
;; ------------------------------------------------------------
;; GUI-MODUS (fuer automatische Tests)
;; ------------------------------------------------------------
;; Globaler Schalter, um alle interaktiven Oberflaechen-Abfragen (DCL-Dialoge,
;; Wizard-Fenster) abzuschalten - dann laufen die Module ueber ihre Konsolen-
;; bzw. Nicht-GUI-Pfade, die von den Testrunnern per Mock-Eingabe/Replay
;; bedient werden. Default nil = GUI an (normaler Betrieb).
;; Test-Setup ruft (ssg-gui-aus) auf; ssg-gui-p fragt den Zustand ab.
(if (not (boundp '*ssg-gui-aus*)) (setq *ssg-gui-aus* nil))
(defun ssg-gui-p () (null *ssg-gui-aus*)) ;; T = GUI erlaubt
(defun ssg-gui-aus () (setq *ssg-gui-aus* T) (princ))
(defun ssg-gui-an () (setq *ssg-gui-aus* nil) (princ))
;; ------------------------------------------------------------
;; LISP-PFAD-ERMITTLUNG
;; ------------------------------------------------------------
+13 -5
View File
@@ -413,6 +413,14 @@
(if (not (boundp '*vflw-menu-default*)) (setq *vflw-menu-default* 1))
(if (not (boundp '*vflw-menu-frage*)) (setq *vflw-menu-frage* nil))
;; Effektiver Wizard-Zustand: Wizard-DCL-Dialoge nur, wenn *vfl-wizard-mode*
;; gesetzt UND die GUI global nicht abgeschaltet ist (Tests: (ssg-gui-aus)).
;; Bei abgeschalteter GUI fallen alle Eingaben auf den Konsolen-/getXXX-Pfad
;; zurueck, den die Testrunner per Mock/Replay bedienen.
(defun vfl-wizard-mode-p ()
(and *vfl-wizard-mode*
(or (not (car (atoms-family 1 '("SSG-GUI-P")))) (ssg-gui-p))))
;; Wizard-GRUPPEN-Dialoge (vflw-gruppe-*-impl) duerfen NUR bei echter Live-
;; Eingabe aufgehen - waehrend eines Journal-Replays (Editieren/Fortsetzen
;; einer bestehenden Kette, *vfl-replay-queue* gesetzt) liefern vfl-in-point/
@@ -424,7 +432,7 @@
;; Eingabe umgeschaltet wird, liest der naechste Wrapper diese laengst
;; veralteten, falsch typisierten Werte statt neu zu fragen (siehe
;; vfl-neue-linie-messen: fuehrte zu einem String-statt-Punkt-Absturz).
(defun vfl-wizard-aktiv () (and *vfl-wizard-mode* (null *vfl-replay-queue*)))
(defun vfl-wizard-aktiv () (and (vfl-wizard-mode-p) (null *vfl-replay-queue*)))
(defun c:VF_WIZARD_AN ()
(setq *vfl-wizard-mode* T)
@@ -897,7 +905,7 @@
(vfl-in-value-p "STR"
(function (lambda (v) (eq (type v) 'STR)))
(function (lambda ()
(if (and *vfl-wizard-mode* *vflw-menu-optionen*)
(if (and (vfl-wizard-mode-p) *vflw-menu-optionen*)
(vflw-wahl (if *vflw-menu-frage* (ssg-text *vflw-menu-frage*) prompt)
*vflw-menu-optionen* *vflw-menu-default*)
(getstring prompt))))))
@@ -905,12 +913,12 @@
(defun vfl-in-real (prompt)
(vfl-in-value "REAL"
(function (lambda ()
(if *vfl-wizard-mode* (vflw-zahl prompt) (getreal prompt))))))
(if (vfl-wizard-mode-p) (vflw-zahl prompt) (getreal prompt))))))
(defun vfl-in-int (prompt)
(vfl-in-value "INT"
(function (lambda ( / vs)
(if (and *vfl-wizard-mode* *vflw-menu-optionen*)
(if (and (vfl-wizard-mode-p) *vflw-menu-optionen*)
(progn
(setq vs (vflw-wahl (if *vflw-menu-frage* (ssg-text *vflw-menu-frage*) prompt)
*vflw-menu-optionen* *vflw-menu-default*))
@@ -963,7 +971,7 @@
;; Live-Abfrage eines Winkelwerts. Wizard: Auswahl aus den Labels, Position ->
;; winkel-werte. Konsole: direkte Zahleneingabe (ENTER = Default).
(defun vfl-winkel-live (prompt winkel-werte default-winkel / vs idx r)
(if (and *vfl-wizard-mode* *vflw-menu-optionen*)
(if (and (vfl-wizard-mode-p) *vflw-menu-optionen*)
(progn
(setq vs (vflw-wahl (if *vflw-menu-frage* (ssg-text *vflw-menu-frage*) prompt)
*vflw-menu-optionen* *vflw-menu-default*))