mirror of
https://github.com/jmcorgan/fips.git
synced 2026-07-30 19:46:15 +00:00
All three required root or CAP_NET_RAW, neither runner passes --ignored, and so none had ever executed in CI. Before deleting them I checked what each covered and whether anything else covered it: - The two-node handshake is covered by the ethernet-only chaos scenario, whose baseline assertion cannot pass unless handshakes complete over AF_PACKET. - Tree convergence and root election by smallest NodeAddr are covered by ethernet-only's single-root assertion and by the in-process spanning-tree tests respectively. - The mixed-transport coexistence property is covered twice over by test_tcp_mixed_transport_coexistence and test_ble_mixed_transport, which call the same verify_tree_convergence_components helper with the same two-component shape and both run today. So the only thing running them would have added is an AF_PACKET variant of a property already proven on two other transports. The counts confirm nothing running was lost: 1392 tests pass before and after, and the ignored count falls from 7 to 4. The ethernet-only comment block cited these tests as the reason its assertion was the only Ethernet coverage in CI. It now records the sharper fact found while reading them: that coverage is control plane only. Both Ethernet scenarios disable traffic, so no datagram crosses an Ethernet link anywhere, which leaves the frame length field that trims NIC minimum frame padding ahead of AEAD verification unexercised. Deleting these tests does not widen that gap, because the test named for data exchange did not exchange any.
67 lines
1.7 KiB
YAML
67 lines
1.7 KiB
YAML
# Ethernet-only: 4-node ring, all Ethernet transport
|
|
#
|
|
# All links use raw Ethernet (AF_PACKET) over veth pairs. Nodes
|
|
# discover each other via beacons (no static peer config). Tests
|
|
# that Ethernet transport and beacon discovery work end-to-end.
|
|
#
|
|
# Topology:
|
|
#
|
|
# n01 ---eth--- n02
|
|
# | |
|
|
# eth eth
|
|
# | |
|
|
# n04 ---eth--- n03
|
|
|
|
scenario:
|
|
name: "ethernet-only"
|
|
seed: 42
|
|
duration_secs: 30
|
|
|
|
topology:
|
|
algorithm: explicit
|
|
num_nodes: 4
|
|
default_transport: ethernet
|
|
params:
|
|
adjacency:
|
|
- [n01, n02]
|
|
- [n02, n03]
|
|
- [n03, n04]
|
|
- [n04, n01]
|
|
|
|
netem:
|
|
enabled: true
|
|
default_policy:
|
|
delay_ms: [1, 5]
|
|
jitter_ms: [0, 1]
|
|
loss_pct: [0, 0.5]
|
|
|
|
link_flaps:
|
|
enabled: false
|
|
|
|
traffic:
|
|
enabled: false
|
|
|
|
# Baseline: the mesh came up, agreed on a root, and took parents. This
|
|
# asserts nothing about what Ethernet transport does; it exists so that
|
|
# a run in which the mesh never formed cannot report success, which
|
|
# until now it could, because this scenario carried no assertions at
|
|
# all.
|
|
#
|
|
# A 4-node mesh forms a spanning tree: one root and three nodes
|
|
# with a parent. All six provably-completed archived runs show exactly
|
|
# that, so these are the shape of a converged mesh rather than a
|
|
# tolerance fitted to observations. This is the only assertion covering
|
|
# Ethernet transport anywhere in CI, and it covers the control plane
|
|
# only: traffic is disabled above, so no datagram crosses an Ethernet
|
|
# link in any test. Framing, the length field that trims NIC minimum-
|
|
# frame padding, and AEAD over Ethernet are all unexercised as a result.
|
|
assertions:
|
|
baseline:
|
|
min_nodes_reporting: 4
|
|
max_roots: 1
|
|
min_nodes_parented: 3
|
|
|
|
logging:
|
|
rust_log: "info"
|
|
output_dir: "./sim-results"
|