fix(station): Anzeige-Installation absichern, apt darf nur warnen

Fixrunde 1 zu Task 6b.

- setup_pi.sh raeumt die Ablage vor dem scp ab und bricht ab, wenn
  display.py dort fehlt. Ein Reststand aus einem abgebrochenen Lauf liess
  "scp -r" ins vorhandene Ziel hineinkopieren; die Installationsschleife
  ueberspringt Verzeichnisse und fand nichts - der Lauf meldete Erfolg,
  aktivierte den Anzeigedienst und hinterliess ein leeres display/:
  203/EXEC im 5-Sekunden-Takt bei schwarzem Panel.
- Der Paketschritt steht jetzt hinter der Installation und warnt nur.
  Eine Migrationsstation steht typischerweise nicht am Netz; unter set -e
  davor hiess ein gescheitertes apt: gar keine Station statt einer Station
  ohne Panel. "apt-get update" kommt vor dem install, der Anzeigedienst
  startet nach dem Paketschritt.
- setup_pi.sh raeumt display/ auf dem Pi wie deploy.sh auf (im Repo
  geloeschte Dateien verschwinden), der Trap haengt auch an INT/TERM/HUP,
  und mktemp bekommt eine Vorlage: ohne sie beachtet BSD-mktemp TMPDIR
  nicht, und die Temp-Datei landete je nach Plattform woanders.
- test_host.sh ruft test_deploy.sh auf - 95 Zusagen liefen nur bei
  Handaufruf, darunter die Deploy-Haelfte der Anzeige-Auslieferung. Der
  Coverage-Test deckt jetzt auch die Shell-Suiten ab und zaehlt dabei nur
  nicht auskommentierte Zeilen.
- Neue Szenarien fuer alle vier Punkte, darunter die Zusage, dass beim
  gescheiterten Schreiben eines Profils keine Datei mit dem WLAN-Passwort
  liegenbleibt.
This commit is contained in:
Michael Sauer
2026-09-14 00:03:49 +02:00
parent cc398ef57a
commit 7fdccbce72
5 changed files with 325 additions and 31 deletions
+6
View File
@@ -24,5 +24,11 @@ else
echo " tools/mkimage/test_nl_mkimage.py::test_stays_python38_compatible)" >&2
fi
# Alle Shell-Suiten unter tools/station/tests/ - test_deploy.sh fehlte hier und lief
# damit nur bei Handaufruf (Task 6b F1, I3): dieselbe Klasse von Luecke wie die aus
# keiner Suite gefallene test_nl_mkimage.py, nur eine Ebene hoeher. Mit ihr liefen 95
# Zusagen nirgends mit, darunter die komplette Deploy-Haelfte der Anzeige-Auslieferung.
# tools/mkimage/tests/test_suite_coverage.py haelt fest, dass hier keine Suite fehlt.
"$ROOT/tools/station/tests/test_cli.sh"
"$ROOT/tools/station/tests/test_deploy.sh"
"$ROOT/tools/station/tests/test_setup_pi.sh"