Testing and Verification
Choose checks according to the boundary changed. Record commands actually run, their result, and any intentional omission.
Minimum workflow
- Configure a clean or compatible build directory.
- Build the affected target.
- Run focused unit or integration tests.
- Run applicable architecture/red-line checks.
- For runtime behavior, capture a bounded smoke run and verify a meaningful success condition rather than accepting a timeout alone.
Change-specific checks
| Change | Required verification |
|---|---|
| Public API or package ABI | Compile consumers; inspect exported package entry when relevant; test compatibility paths. |
| Generator/schema/template | Run generator tests, regenerate maintained examples, and require byte-equal output unless fixtures intentionally change. |
| Transport or zero-copy path | Build supported feature combinations; test unsupported combinations fail clearly; verify ownership/copy semantics. |
| Extension | Build and load the extension with representative configuration; run focused RPC or messaging smoke. |
| Cross compilation | Validate the target prefix, configure with host paths isolated, build target artifacts, and inspect architecture/dependencies. |
| Performance-sensitive path | Use the public benchmark methodology with pinned environment metadata and repeated runs; compare like-for-like modes. |
Test quality rules
- Add a regression test with a non-trivial bug fix.
- Do not use skip/only markers, delete assertions, or broaden accepted exit codes to conceal a failure.
- Keep fixtures deterministic and review generated changes as code.
- A functional receive marker does not establish latency or zero-copy behavior.
- Historical test counts and measurements are context, not acceptance criteria for a new checkout.
Common commands
cmake --preset minimal
cmake --build build -j"$(nproc)"
ctest --test-dir build --output-on-failure
python3 -m pytest src/tools/ibmw_gen/tests
bash scripts/check_red_lines.sh
Not every build exposes every command or target. Use the preset and focused test target appropriate to the feature, then report exactly what ran. For benchmark work, follow Transport Benchmark.