Files
hms-mediaengine/TEST_REPORT.md
T
HMS MediaEngine Agent 75ca88ddbe Phase 3: Alle 24 Pflicht-Plugins (10 Generatoren + 14 Filter, §15.1/§15.2)
- 10 Generatoren mit Manifest + HLSL + GLSL + GLES je Plugin:
  solid, gradient, checker_grid, stripes_chaser, noise_clouds
  (AQ Octaves 2/3/5), plasma, wave_bars, shapes, drops_ripples,
  starfield (AQ 32/128/512 Partikel)
- 14 Filter mit Manifest + Shader je Backend:
  transform2d (keine AQ-Geometriereduktion), color_adjust,
  gradient_map, blur_sharpen (separabel 2-Pass, AQ 5/9/17 Samples),
  pixelate_quantize, mirror_tile, kaleidoscope, wave_displace
  (Noise adaptiv, Amount unverändert), rgb_split, glow_bloom
  (Kaskade 2/4/8), edge_emboss, vignette, strobe_pulse (Safety
  clamp 2 Hz, nie durch DMX allein freischaltbar), feedback_trails
  (Double-Buffer, Clear-Trigger, §15.3)
- Uniform-Vertrag §14.4 in allen 75 Shadern; Generatoren sampeln nie
  u_input_texture; alle Filter mit mix-0-Bypass (§15.3)
- 195 parametrisierte Plugin-Tests: Manifest/Backends/DMX-Slots<=8/
  AQ>=3 Varianten/Uniform-Satz/Vollstaendigkeit exakt 10+14
- Nachtraegliche Manifest-Fixes: AQ-Bloecke fuer 4 1-Pass-Filter,
  mix-Parameter fuer feedback_trails (Slot-Overlap vermieden)
- Gesamtsuite 506 gruen, Ruff gruen
2026-09-11 01:53:48 +02:00

5.2 KiB
Raw Blame History

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)
  • tests/integration/test_state_sync_chain.py State-Sync-Kette Store→IPC→Mirror ohne Mocks (4 Tests)
  • tests/unit/test_plugin_lifecycle.py Lifecycle-Graph, Quarantäne, Show-Lock (14 Tests)
  • tests/unit/test_builtin_plugins.py parametrisiert über alle 24 Pflicht-Plugins: Manifest, Backends, DMX-Slots ≤8, AQ ≥3 Varianten, Uniform-Vertrag, Generator-Sampling-Verbot, Filter-Mix-Bypass, Vollständigkeit 10+14 (195 Tests)

Builtin-Plugin-Validierung (Phase 3)

Alle 24 Pflicht-Plugins aus PLAN.md §15 validiert (ALL OK):

  • 10 Generatoren (§15.1): solid, gradient, checker_grid, stripes_chaser, noise_clouds, plasma, wave_bars, shapes, drops_ripples, starfield je Manifest + HLSL + GLSL + GLES, alle mit AQ-Varianten (z. B. noise_clouds: Octaves 2/3/5; starfield: 32/128/512 Partikel)
  • 14 Filter (§15.2): transform2d, color_adjust, gradient_map, blur_sharpen (2-Pass separabel), pixelate_quantize, mirror_tile, kaleidoscope, wave_displace, rgb_split, glow_bloom, edge_emboss, vignette, strobe_pulse (Rate hart auf 2 Hz geklemmt, Safety-Doku), feedback_trails (Double-Buffer, Clear-Trigger)
  • 25 HLSL-Dateien, 50 GLSL/GLES-Dateien, 24 Manifeste; alle semantisch identisch über d3d11/gl/gles (§12.6)
  • Uniform-Vertrag §14.4 in jedem Shader geprüft; Generatoren sampeln nie die Eingabetextur; Filter mit mix-0-Bypass (§15.3)

Hinweis (ADR-0008): Shader-Kompilierung auf GPU und Golden Images sind Teil des Windows-Durchlaufs (§29.3); hier vorliegend: Manifest-/Struktur-/Konventions-Validierung.

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: D3D11Memory von Decoder bis d3d11videosink ohne 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.125.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.