- hms_cluster: ClusterMessage (§6.5: Pflichtfelder, Sequenzen, Revisionen, execute_at, Trace-ID), CommandTracker (idempotent, vorwärts-only: accepted->armed->executed/failed) - NodeRegistry: online/degraded/stale/offline über Schwellen, UI-Kategorien discovered/paired/unknown/incompatible/offline, Doppel-Node-ID blockiert, IP-Wechsel erhaelt node_id (§6.3, §6.5) - Pairing: PIN (TTL 120s, Versuchslimit), Fingerprint (SHA-256 gruppiert), Token nur als Hash, Scopes read/control/content_sync/admin, Ablauf + sofortiger Widerruf (§6.3, §27.1, ADR-0010) - Discovery-Modell: _hmsmedia._tcp.local. TXT ohne Secrets, Capability- Digest, persistente manuelle Fallback-Liste (ADR-0009) - ADR-0009 (mDNS + Fallback) und ADR-0010 (Paarung) dokumentiert - 25 Unit-Tests; Gesamtsuite 183 Tests gruen, Ruff gruen
3.7 KiB
TEST REPORT
Testberichte gemäß PLAN.md §32. Jeder Eintrag: Testdatum, Commit, Hardware/OS/Treiber, Ergebnisse, offene Abweichungen.
Automatisierte Tests (Entwicklungsumgebung)
| Datum | Commit | Plattform | Ergebnis |
|---|---|---|---|
| 2026-09-11 | 0922cc1 (initiale Phase-0-Grundlage) |
Kali-Linux-Container, Python 3.13.14, uv, CPU-only | 121 passed (Unit + Integration), Ruff 0 Fehler |
Testumfang und Ergebnis der Phase-0-Grundlage (alle grün):
tests/unit/test_protocol.py– IPC-Envelope, length-prefixed MessagePack-Framing, Idempotenz (10 Tests)tests/unit/test_parameter_engine.py– Prioritäten, LTP/HTP, Release, Frame-Snapshot, Revision-Konflikt (11 Tests)tests/unit/test_artnet_packets.py– ArtDMX/ArtPoll/ArtPollReply gegen offizielle Spezifikation (22 Tests)tests/unit/test_adaptive_quality.py– Hysterese, eine Stufe je Intervall, Mindesthaltezeit, kein Pumpen (8 Tests)tests/unit/test_plugin_manifest.py– Manifest-/ZIP-Validierung, Pfadsicherheit, DMX-Slot-Limit (16 Tests)tests/unit/test_domain_ids.py– stabile Node-ID ohne IP/Hostname-Abhängigkeit (6 Tests)tests/unit/test_fixture_generator.py– Master32/Layer64-Kanallisten (8 Tests)tests/unit/test_pipelines.py– Renderer-Pipeline-Definitionen D3D11/Dev-GL (7 Tests)tests/unit/test_dmx_mapping.py– RisingEdge, 16-Bit-Decoder, Signalverlust-Policies, CONSOLE-Priorität (10 Tests)tests/unit/test_capabilities.py– Tier-Vergabe nur nach Messwerten, kein Fake (6 Tests)tests/unit/test_portable_paths.py– portable Pfade, GStreamer-Environment (5 Tests)tests/integration/test_control_server.py– REST-Health, Commands, Revision-Konflikt, Idempotenz, WebSocket (12 Tests)tests/integration/test_artnet_receiver.py– echter Loopback-UDP-Empfang, ArtPollReply als Media Server, Allowlist (3 Tests)tests/unit/test_persistence.py– WAL/FK/PRAGMA, Migrationen mit Backup, Altdaten, Projekte, Settings, Plugin-Status (18 Tests)tests/unit/test_supervisor.py– echte Kindprozesse: Start/Stop, Crash-Restart, Crashloop, Recovery-Markierung, Environment (10 Tests)tests/unit/test_cluster.py– ClusterMessage/CommandTracker, NodeRegistry-Health/Kategorien, Paarung PIN/Fingerprint/Token/Widerruf, Discovery-TXT, manuelle Liste (25 Tests)tests/integration/test_ipc_connection.py– echter TCP-Loopback, kein Mock (9 Tests)
Werkzeug-Rauchtests: Fixture-CSVs (32/64 Kanäle, 8×64=512) generiert; Renderer-Dry-Run gibt korrekte D3D11-Pipeline aus; alle JSON-Schemas und Plugin-Manifeste parsebar; Plugin-Validierung der Beispielplugins fehlerfrei.
Performancewerte (Gate-0-Messungen)
Status: ausstehend. Gate-0-Messungen sind ausschließlich auf Referenz-Windows-Hardware gültig (PLAN.md §29.7, §33). Zu messen:
- D3D11-Hardwaredecode aktiv (kein Software-Decoder) für H.264-Testclip
- GPU-Residenz:
D3D11Memoryvon Decoder bisd3d11videosinkohne regulären CPU-Rundweg - Framezeit p50/p95/p99 bei 1080p60 (Mini-PC) und 4K60 (
DESKTOP_FULL) - DMX→sichtbarer Frame: p95 ≤ 2 Frames
- Adaptive-Quality-Wechsel (3 Blur-Stufen) atomar ohne Semantikänderung/Stall
Art-Net-Hardwaretest
Ausstehend – Emulator (tools/artnet_emulator) bereit; Test gegen echtes Lichtpult in Phase 4 (Gate 4).
Portabilitätstest
Ausstehend – saubere Windows-VM ohne Python/Node/GStreamer, kein Admin (PLAN.md §29.6). Onefolder-Build nach Packaging-ADR (ADR-0005).
Soak-Zeit
Ausstehend – 4 h Desktop / 2 h Pi gemäß §25.1–25.3.
Offene Abweichungen
- Entwicklungsumgebung ist ein CPU-only-Linux-Container: keine D3D11-, Display- oder Art-Net-Hardwaremessung möglich. Kein Ergebnis in diesem Report darf als Hardwarenachweis gewertet werden.