Skip to content

Commit ab40ed8

Browse files
committed
Harden live WebTransport QUIC H3 transcript proof
1 parent 5754225 commit ab40ed8

2 files changed

Lines changed: 23 additions & 1 deletion

File tree

.ssot/registry.json

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

tests/test_webtransport_bidi_stream_context.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -500,9 +500,19 @@ async def test_live_webtransport_concurrent_sessions_multi_lane_burst_isolated(s
500500

501501
session_ids = _trace_session_ids(trace)
502502
self.assertGreaterEqual(len(session_ids), 2)
503+
_assert_transport_boundary_trace(self, trace)
504+
self.assertGreaterEqual(
505+
sum(1 for row in trace if row.get("event") == "quic.handshake.complete"),
506+
len(session_ids),
507+
)
508+
self.assertGreaterEqual(
509+
sum(1 for row in trace if row.get("event") == "webtransport.connect.response"),
510+
len(session_ids),
511+
)
503512
stream_dispatches = _trace_rows_by_session(trace, event="webtransport.stream.dispatch")
504513
datagram_dispatches = _trace_rows_by_session(trace, event="webtransport.datagram.dispatch")
505514
for session_id in session_ids:
515+
_assert_session_lifecycle_trace(self, trace, session_id)
506516
rows = stream_dispatches.get(session_id, [])
507517
self.assertGreaterEqual(
508518
sum(1 for row in rows if row.get("stream_direction") == "bidi"),
@@ -513,6 +523,18 @@ async def test_live_webtransport_concurrent_sessions_multi_lane_burst_isolated(s
513523
1,
514524
)
515525
self.assertGreaterEqual(len(datagram_dispatches.get(session_id, [])), 1)
526+
owned_rows = [
527+
row for row in trace
528+
if row.get("event") in {
529+
"webtransport.stream.dispatch",
530+
"webtransport.stream.send",
531+
"webtransport.datagram.dispatch",
532+
"webtransport.datagram.send",
533+
}
534+
and row.get("session_id") == session_id
535+
]
536+
self.assertTrue(owned_rows)
537+
self.assertEqual({row["session_id"] for row in owned_rows}, {session_id})
516538
_assert_no_bad_trace_events(self, trace)
517539

518540
async def test_webtransport_trace_contains_lifecycle_events_per_session(self) -> None:

0 commit comments

Comments
 (0)