Topology Parity Runbook
Scope
- Validate topology engine parity against imported Enlinkd fixtures and assertion inventories.
- Evidence files live in
src/go/pkg/l2topology/parity/evidence.
Prerequisites
- Upstream checkout available at
/tmp/topology-library-repos/enlinkd. - Run commands from
src/go.
Refresh Evidence
go run ./tools/topology-parity-evidence --mode sync
What it does:
- Verifies fixture source exists.
- Refreshes local fixture mirror.
- Regenerates:
- enlinkd-fixture-inventory.csv
- enlinkd-test-method-inventory.csv
- enlinkd-assertion-inventory.csv
Verify Mirror Integrity
go run ./tools/topology-parity-evidence --mode verify
Expected:
- verify complete
- Fixture counts match upstream mirror and evidence inventory.
Run Full Parity Suite
go run ./tools/topology-parity-evidence --mode suite
Outputs:
- parity-summary.json
- Scenario pass/fail totals.
- Mapped test/assertion coverage totals.
- Determinism check (runs=2, byte_identical=true expected).
Run Behavior Oracle Diff (Go vs Enlinkd Golden)
go run ./tools/topology-parity-evidence --mode oracle-diff
Outputs:
- behavior-oracle-diff.json (machine-readable per-scenario diff report).
- behavior-oracle-diff.md (human-readable summary).
- Fixture-input evidence per scenario (walk file path + sha256 + size).
- In-scope pass criteria: zero diffs for device identity set, hostname identity, adjacency set, and metadata counts.
Run Go Test Gates
go test ./pkg/l2topology/... ./plugin/go.d/collector/snmp ./tools/topology-parity-evidence -count=1
Expected: - All packages pass.
Failure Triage
verifyfails:- Confirm upstream checkout path exists.
- Re-run
--mode sync, then--mode verify.
suitehas failed scenarios:- Open
parity-summary.json. - Inspect failing scenario IDs and manifests.
- Re-run targeted tests in
./pkg/l2topology/parity.
- Open
- Coverage totals regress:
- Check
assertion-mapping.csvuniqueness and status values. - Reconcile
not-applicable-approved.csvwith mapping rows usingnot-applicable-approved.
- Check
- Determinism fails:
- Re-run
suiteand compare generated summary files. - Check sort/order logic in parity result builders and adapters.
- Re-run