Skip to main content

Bellweather Plugin Testing Suite (BPTS)

Each release has a named qualification profile. Required checks must pass for the exact version being released, and the product's Validation Notes record what was actually run.

How This Connects Across The Site

Testing Suite is the methodology layer. Observatory is the operational execution layer. Research Notes are the evidence layer with versioned product outcomes, measurements, and explicit scope limits.

What is BPTS?

BPTS (Bellweather Plugin Testing Suite) is our custom testing framework built on industry-standard tools: Catch2 for unit tests via CTest, Pluginval for VST validation, and our own BOL (Bellweather Observation Lab) for characterization testing.

The available lanes cover rapid parameter changes, extreme values, thread race conditions, and deliberately injected faults. A product's release profile selects the checks that apply to that version.

Release Lanes

Every commit runs through automated release lanes in CI/CD. Each lane gates progressively more of the test suite:

fast

Whitebox fast subset only. Runs on every PR to catch obvious regressions.

gate

Full whitebox regression set. Catch2 via CTest with bpts_gate labels. Must pass before merging to main.

rc

Headless-safe release candidate gate. Whitebox tests (slow on), Pluginval when GUI available (SKIPs with reason=no_gui_session in headless), and BOL gate.

rc_gui

GUI-required release candidate gate. Same as rc but Pluginval is mandatory—FAILs if no GUI session is available.

lab

Extended whitebox + BOL lab characterization. Transfer curves, THD analysis, and envelope response verification against committed baselines.

What runs per lane

fast

Whitebox Gate
optional (fast)
Pluginval
—
BOL Gate
—
BOL Lab
—

gate

Whitebox Gate
yes
Pluginval
—
BOL Gate
—
BOL Lab
—

rc

Whitebox Gate
yes (slow on)
Pluginval
yes / SKIP headless
BOL Gate
yes
BOL Lab
—

rc_gui

Whitebox Gate
yes (slow on)
Pluginval
required (FAIL if no GUI)
BOL Gate
yes
BOL Lab
—

lab

Whitebox Gate
yes (slow on)
Pluginval
—
BOL Gate
—
BOL Lab
yes

Core Test Types

Why This Matters

We publish our testing methodology because engineering rigor is built on evidence, not claims.

Every test in BPTS exists because something broke in the past. We learned the hard way that you can't ship quality without rigorous testing.

If you find a bug our tests missed, we want to know. That's how we improve the framework for future plugins.

Status Semantics

PASS
Step executed and succeeded.
SKIP
Step intentionally not run (e.g., Pluginval with no GUI in rc).
FAIL
Step executed and failed, or required precondition missing (e.g., rc_gui without GUI).