Repository navigation
v3.3.7 — Robustheit: Crash-, Hang- und Parse-Härtung
Fix-Sprint 4/6 des 360°-Analyse-Fahrplans (ADR-056). Acht Fixes in drei Klassen — ein Mutationstest-Lauf darf weder an einem Mutator-Bug sterben noch an toter Infrastruktur ewig hängen.
Crash-Klasse (#277, P1)
- RegexMutator stürzte auf interpolierten Patterns (
new Regex($"^{prefix}"), Level Advanced+) mit InvalidCastException ab — Exit 127, kein Report. Interpolierte Patterns werden jetzt sauber übersprungen. - Neue Robustheitsschicht um die Mutator-Schleife: ein Mutator-Bug überspringt den Mutator für diesen Knoten mit Warnung (Mutator-Name, Node-Kind, Issue-Hinweis) statt den Lauf zu töten. Cancellation propagiert weiterhin.
Hang-Klasse (#288, #297)
- Roslyn-Emit-NRE-Retry begrenzt (#288): kein Scan-Fortschritt oder mehr als 5 Runden → diagnostizierbare
CompilationExceptionstatt Endlosschleife. - VsTest-Runner-Pool (#297a): Konstruktions-Fehler (vstest.console fehlt) werden beobachtet und signalisiert; Warten ist auf 5 Minuten begrenzt mit Fortschritts-Logs und Fail-fast samt Ursache.
- Test-Discovery (#297b):
WaitEndmit 5-Minuten-Timeout in den Aborted-Pfad statt Monitor.Wait für immer. - MTP-Disconnect (#297c): ein toter Server settled jetzt alle wartenden Listener mit der Disconnect-Ursache — timeout-lose Waits (Discovery, Initial-Runs) enden sauber.
Parse-Klasse (H-19, G-37b)
- MSBuild-Properties („yes", „high"), stale Referenzpfade, unlesbare Solution-Dateien und unbekannte Status-Werte aus Fremd-Baselines führen nicht mehr zu rohen Exceptions — TryParse-Fallbacks, Existenz-Guard und saubere
InputException.
Verifikation
Build 0/0 · Vollsuite grün (10 Testprojekte, E2E 18/18) · Semgrep 0 · Crash-Probe: interpolierter Regex + Advanced → Exit 0 statt Exit 127, sauberer Report.
Full Changelog: v3.3.6...v3.3.7
What's Changed
- chore(sprint-181): close — housekeeping done, v3.3.6 shipped by @pgm1980 in #310
- fix(sprint-182): Robustheit — Crash-, Hang- und Parse-Härtung (ADR-056) by @pgm1980 in #311
Full Changelog: v3.3.6...v3.3.7