How we test (honest gates)
Testing is split so a green CI job never pretends to be a live RS-485 trunk.
Three layers
| Layer | What it proves | Where |
|---|---|---|
| Software / CI | Format, clippy, unit/integration tests, dual-B/IP netns, repository contracts | GitHub Actions ci, bip-qualify |
| Image / QEMU | Buildroot rootfs boots, /healthz answers, manifests + SHA256 |
Actions build-os |
| Lab / source | Real USB RS-485, token traffic, routed ReadProperty on the bench | Evidence under docs/evidence/ (Mint dual-boot lab) |
Source PASS ≠ exact-image PASS. Running routerd from a Pi with cargo
built binaries is not the same gate as flashing a Buildroot sdcard.img and
repeating the oracle (milestone M4).
Gate ledger
The living checklist is TESTING.md on GitHub (G1–G11). Summary for readers:
- G1 — x86 QEMU
/healthz(image) - G6 — BACnet/IP qualify with an independent BVLL oracle (netns)
- G7 / G8 — routed unicast and router network messages — source evidenced; exact-image still open
- G9+ — faults, BBMD, segmentation, certification — open or not claimed
Notable evidence packs
| Topic | Folder / note |
|---|---|
| Isolated two-Pi routing | docs/evidence/SOURCE_G7_G8_* |
| Shared trunk ReadProperty | docs/evidence/PHASE2_FEC_VIA_DIY_* |
| Dual-B/IP CI | docs/evidence/M3_DUAL_BIP_NETNS.md |
| Local-delivery drain / BIP↔loopback MS/TP | docs/evidence/PR_A_ROUTE_SESSION_DRAIN.md |
| Image eudev + USB-serial P0 | docs/evidence/PHASE4B_IMAGE_P0_EUDEV_USB_SERIAL.md |
| Dual-mini + FEC @38400 routed RP | docs/evidence/CLAUSE9_38400_DUAL_MINI_FEC_* |
| Baud matrix FEC-off | docs/evidence/CLAUSE9_BAUD_MATRIX_FEC_OFF_* |
Lab trunk check (story form)
For a plain-language walkthrough of “SSH both Pis, then hear MAC 2/3/7 on the cable,” including what Clause 9 does and does not mean, see How we prove the live MS/TP trunk.
What beginners should remember
- Fail-closed by default — forwarding off until you opt in on a controlled bench.
- BIP test clients must not share the router’s UDP bind host/IP.
- Use
/dev/serial/by-id/...and check USB latency on FTDI adapters. - Read the evidence folder before claiming a product gate PASS.
- Hearing stations on the trunk ≠ full Clause 9 ≠ BTL.