libvine Testing Guide
Core Commands
make buildmake testzig build examples
The development loop used for the MVP slices is:
- apply one small change
- run
make build - run
make test - commit only after both pass
What Is Covered
The current test suite covers:
- core type parsing and validation
- route-table precedence, stale update rejection, withdrawals, and stress cases
- session promotion, churn, and relay fallback behavior
- control/data codec parsing, including mutation-style malformed input tests
- session send/receive framing
- fake Linux TUN lifecycle behavior
- node lifecycle, bootstrap, membership refresh, event callbacks, diagnostics, and debug snapshots
- direct, signaling-assisted, and relay-backed integration-style flows
What Is Not Covered
The MVP tests do not currently provide:
- real multi-process Linux network namespace coverage
- live
libmeshnetwork interoperability beyond the adapter-level contract - throughput or latency benchmarking
- privileged end-to-end route programming on a real host
Recommended Downstream Practice
Downstream consumers should:
- reuse
lib/testing/fixtures.zigfor shared test setup - keep integration tests deterministic and in-memory where possible
- add host-specific tests outside
libvinewhen validating deployment environments