Category 5 Stress Tests
Our baseline test suite covers the failure scenarios that can crash plugins, corrupt audio, or cause unpredictable behavior. When a release profile includes this lane, every required check must pass; a skipped or unexecuted check is not a pass. These run as Catch2 tests via CTest with bpts_gate labels.
What We Test
RT-Safety Validation
Real-time audio processing cannot allocate memory, acquire locks, or perform unbounded operations. We verify zero violations.
Why it matters: A single allocation on the audio thread can cause dropouts that ruin a recording session. RT violations are the #1 cause of live performance failures.
Parameter Mutation Tests
We test every parameter at:
- •Minimum value
- •Maximum value
- •Zero crossing
- •Rapid changes (10,000 changes/second)
- •Simultaneous multi-parameter changes
Why it matters: DAW automation can change parameters thousands of times per second. Your plugin must handle this gracefully without clicks, pops, or crashes.
NaN/Inf Protection
We verify the audio output never contains NaN (Not a Number) or Inf (Infinity) values, which can damage speakers and crash DAWs. Checked via StressTests::validateBuffer().
Why it matters: NaN propagates through processing chains and can destroy an entire mix. One bad sample corrupts everything downstream.
Memory Leak Detection
Marathon tests run for 1+ hours with continuous parameter automation to detect slow memory leaks.
Why it matters: Memory leaks crash DAWs during long sessions. A producer working on a 4-hour mixing session can't afford a crash at hour 3.
DC Offset Handling
We verify output contains less than 0.001 DC offset (approximately −60dBFS).
Why it matters: DC offset damages speakers, causes clicks when bypassing, and accumulates in processing chains.
Resolved: DC offset detection was added to buffer validation in BPTS v2.2.0, identified through mutation testing.