feat(e2e): render direct/recorder/debug/tcplogger/stress sections in the unified report
Extends report_build.py with build_by_kind() (per-scenario-kind pass/fail rollup) and a ported build_stress()/stress_headline()/stress_plots() (scaling curves per stress axis), wires both into the headline KPIs, regression tracking, and report_data.json. E2E_Report.typ renders the four new per-kind tables plus a Stress Tests section (per-axis case tables + scaling plots, gracefully degrading to placeholders when a kind/stress data is absent). run_e2e.sh now passes --stress-results so the report actually receives real stress data instead of silently omitting it. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -85,6 +85,18 @@ class TestScenarios(unittest.TestCase):
|
||||
tcplogger_ids = {s["id"] for s in S.SCENARIOS if s["kind"] == "tcplogger"}
|
||||
self.assertEqual(tcplogger_ids, {"s56_tcplogger_delivery"})
|
||||
|
||||
def test_build_by_kind_filters_correctly(self):
|
||||
import report_build as R
|
||||
results = {"scenarios": [
|
||||
{"id": "a", "kind": "direct", "status": "PASS"},
|
||||
{"id": "b", "kind": "chain", "status": "PASS"},
|
||||
{"id": "c", "kind": "direct", "status": "FAIL"},
|
||||
]}
|
||||
d = R.build_by_kind(results, "direct")
|
||||
self.assertEqual(d["n_pass"], 1)
|
||||
self.assertEqual(d["n_fail"], 1)
|
||||
self.assertEqual(d["n_total"], 2)
|
||||
|
||||
|
||||
class TestGenData(unittest.TestCase):
|
||||
def test_ground_truth_shapes(self):
|
||||
|
||||
Reference in New Issue
Block a user