Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 17 additions & 0 deletions artifacts/requirements.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2036,6 +2036,23 @@ artifacts:
status: implemented
tags: [mermaid, cli, v0100]

- id: REQ-EMV2-PROPAGATION-001
type: requirement
title: EMV2 error-propagation traversal across AADL connection graph
description: >
spar shall provide an analysis pass that, for each component declaring
an `out propagation` for an error type T, walks the AADL connection
graph (via semantic connections) to identify all downstream components
that declare a matching `in propagation` for T (case-insensitive match
per AADL EMV2 v2 §4.3). The traversal shall recurse transitively
through relay components that declare both in and out propagations for
the same type. Cycle detection (tracking component+error_type pairs)
shall prevent infinite loops in cyclic topologies. Error flows
(path/sink/source) shall be captured per component in the report but
shall not by themselves trigger cross-component propagation.
status: implemented
tags: [emv2, analysis, v0100, safety]

# ── CI / Verification gate ──────────────────────────────────────────────

- id: REQ-VERIFY-GATE-001
Expand Down
24 changes: 24 additions & 0 deletions artifacts/verification.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2648,6 +2648,30 @@ artifacts:
- type: satisfies
target: REQ-MERMAID-CLI-001

- id: TEST-EMV2-PROPAGATION
type: feature
title: EMV2 error-propagation traversal tests
description: >
Unit tests in crates/spar-analysis/src/emv2_propagation.rs verify:
(a) single-hop propagation produces one chain (sensor → controller)
with the correct origin, error type, downstream, and via-connection;
(b) three-hop chain A→B→C→D with relay nodes produces downstream in
order [B, C, D]; (c) cycle detection (A→B→A) terminates cleanly with
each origin's chain not containing the origin itself; (d) path error
flows appear in local_flows but produce no propagation chain;
(e) case-insensitive error-type matching yields a chain despite
differing capitalisation; (f) no connection between components with
matching propagations yields no chain.
fields:
method: automated-test
steps:
- run: cargo test -p spar-analysis emv2_propagation
status: passing
tags: [emv2, analysis, v0100, safety]
links:
- type: satisfies
target: REQ-EMV2-PROPAGATION-001

# ── CI / Verification gate ──────────────────────────────────────────────

- id: TEST-VERIFY-GATE-RUNNER
Expand Down
Loading
Loading