test(e2e-chain): render Stress Tests section in the PDF report
Add a Stress Tests section (per-case table + per-axis scaling-curve images) after Performance, guarded so it is omitted when no stress data is present. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -220,6 +220,43 @@ MARTe2 processes, plus sustained client throughput (recorded samples ÷ duration
|
|||||||
}).flatten()
|
}).flatten()
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// ── stress / capacity ─────────────────────────────────────────────────────────
|
||||||
|
#let stress = data.at("stress", default: none)
|
||||||
|
#if stress != none [
|
||||||
|
= Stress Tests #h(6pt) #status_badge(stress.overall)
|
||||||
|
Capacity matrix: one load axis swept at a time. Hard gates — survival + client
|
||||||
|
liveness; soft gates — peak RSS and zoom p95 latency. The size axis crosses into
|
||||||
|
the multi-fragment (>64 KB packet) regime.
|
||||||
|
#v(4pt)
|
||||||
|
#table(
|
||||||
|
columns: (1.5fr, 1.6fr, 0.7fr, 0.7fr, 1fr, 1fr, 1fr, 1fr),
|
||||||
|
align: (left, left, right, center, right, right, right, right),
|
||||||
|
stroke: 0.4pt + rgb("#d0d7de"),
|
||||||
|
inset: 4pt,
|
||||||
|
table.header([*Case*], [*Axis*], [*Level*], [*Status*],
|
||||||
|
[*MARTe RSS (MB)*], [*Hub RSS (MB)*],
|
||||||
|
[*Hub CPU (s)*], [*Zoom p95 (ms)*]),
|
||||||
|
..stress.cases.map(c => (
|
||||||
|
raw(c.id),
|
||||||
|
text(size: 8pt)[#c.axis],
|
||||||
|
[#c.level],
|
||||||
|
status_badge(c.status),
|
||||||
|
fnum(c.at("marte_rss_mb", default: none), digits: 1),
|
||||||
|
fnum(c.at("hub_rss_mb", default: none), digits: 1),
|
||||||
|
fnum(c.at("hub_cpu_s", default: none), digits: 2),
|
||||||
|
fnum(c.at("zoom_p95_ms", default: none), digits: 1),
|
||||||
|
)).flatten()
|
||||||
|
)
|
||||||
|
#let splots = data.at("stress_plots", default: ())
|
||||||
|
#if splots.len() > 0 [
|
||||||
|
#v(6pt)
|
||||||
|
== Scaling curves
|
||||||
|
#grid(columns: 2, gutter: 8pt,
|
||||||
|
..splots.map(p => image(p, width: 100%))
|
||||||
|
)
|
||||||
|
]
|
||||||
|
]
|
||||||
|
|
||||||
// ── per-scenario waveform fidelity ───────────────────────────────────────────
|
// ── per-scenario waveform fidelity ───────────────────────────────────────────
|
||||||
= Scenarios
|
= Scenarios
|
||||||
#for sc in e2e.scenarios [
|
#for sc in e2e.scenarios [
|
||||||
|
|||||||
Reference in New Issue
Block a user