@@ -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