Files
ruvnet--RuView/scripts/swarm_presets/ring_fault.yaml
T
ruv a8f5276d9b feat(qemu): ADR-062 QEMU swarm configurator for multi-ESP32 testing
YAML-driven orchestrator for testing multiple ESP32-S3 QEMU instances
with configurable topologies (star/mesh/line/ring), role-based nodes
(sensor/coordinator/gateway), and swarm-level health assertions.

New files:
- ADR-062: architecture decision record
- qemu_swarm.py: main orchestrator (1097 lines)
  - YAML config parsing with schema validation
  - 4 topology implementations with TAP/SLIRP fallback
  - Per-node NVS provisioning via provision.py --dry-run
  - Signal-safe cleanup, dry-run mode, JSON results output
- swarm_health.py: 9-assertion health oracle (653 lines)
- 7 preset configs: smoke (2n/15s), standard (3n/60s),
  large-mesh (6n/90s), line-relay (4n/60s), ring-fault (4n/75s),
  heterogeneous (5n/90s), ci-matrix (3n/30s)
- CI: swarm-test job in firmware-qemu.yml

Co-Authored-By: claude-flow <ruv@ruv.net>
2026-03-14 12:24:06 -04:00

42 lines
663 B
YAML

# Ring topology with fault injection: 4 nodes, 75s
swarm:
name: ring-fault
duration_s: 75
topology: ring
aggregator_port: 5005
nodes:
- role: coordinator
node_id: 0
scenario: 0
channel: 6
edge_tier: 2
is_gateway: true
- role: sensor
node_id: 1
scenario: 1
channel: 6
tdm_slot: 1
- role: sensor
node_id: 2
scenario: 2
channel: 6
tdm_slot: 2
- role: sensor
node_id: 3
scenario: 3
channel: 6
tdm_slot: 3
assertions:
- all_nodes_boot
- no_crashes
- tdm_no_collision
- all_nodes_produce_frames
- coordinator_receives_from_all
- no_heap_errors
- max_boot_time_s: 12