| # Sequence 1 defaults to track for "t1". |
| packet { |
| trusted_packet_sequence_id: 1 |
| timestamp: 0 |
| incremental_state_cleared: true |
| track_descriptor { |
| uuid: 1 |
| parent_uuid: 10 |
| thread { |
| pid: 5 |
| tid: 1 |
| thread_name: "t1" |
| } |
| } |
| trace_packet_defaults { |
| track_event_defaults { |
| track_uuid: 1 |
| } |
| } |
| } |
| # Sequence 2 defaults to track for "t2". |
| packet { |
| trusted_packet_sequence_id: 2 |
| timestamp: 0 |
| incremental_state_cleared: true |
| track_descriptor { |
| uuid: 2 |
| parent_uuid: 10 |
| thread { |
| pid: 5 |
| tid: 2 |
| thread_name: "t2" |
| } |
| } |
| trace_packet_defaults { |
| track_event_defaults { |
| track_uuid: 2 |
| } |
| } |
| } |
| # Both thread tracks are nested underneath this process track. |
| packet { |
| trusted_packet_sequence_id: 1 |
| timestamp: 0 |
| track_descriptor { |
| uuid: 10 |
| process { |
| pid: 5 |
| process_name: "p1" |
| } |
| } |
| } |
| # And we have an async track underneath the process too. |
| packet { |
| trusted_packet_sequence_id: 1 |
| timestamp: 0 |
| track_descriptor { |
| uuid: 11 |
| parent_uuid: 10 |
| name: "async" |
| } |
| } |
| packet { |
| trusted_packet_sequence_id: 1 |
| timestamp: 100 |
| track_descriptor { |
| uuid: 12 |
| parent_uuid: 10 |
| name: "async2" |
| } |
| } |
| packet { |
| trusted_packet_sequence_id: 2 |
| timestamp: 200 |
| track_descriptor { |
| uuid: 12 |
| parent_uuid: 10 |
| name: "async2" |
| } |
| } |
| |
| # Should appear on default track "t1". |
| packet { |
| trusted_packet_sequence_id: 1 |
| timestamp: 1000 |
| track_event { |
| categories: "cat" |
| name: "event1_on_t1" |
| type: 3 |
| } |
| } |
| # Should appear on default track "t2". |
| packet { |
| trusted_packet_sequence_id: 2 |
| timestamp: 2000 |
| track_event { |
| categories: "cat" |
| name: "event1_on_t2" |
| type: 3 |
| } |
| } |
| # Should appear on overridden track "t2". |
| packet { |
| trusted_packet_sequence_id: 1 |
| timestamp: 3000 |
| track_event { |
| track_uuid: 2 |
| categories: "cat" |
| name: "event2_on_t2" |
| type: 3 |
| } |
| } |
| # Should appear on process track. |
| packet { |
| trusted_packet_sequence_id: 1 |
| timestamp: 4000 |
| track_event { |
| track_uuid: 10 |
| categories: "cat" |
| name: "event1_on_p1" |
| type: 3 |
| } |
| } |
| # Should appear on async track. |
| packet { |
| trusted_packet_sequence_id: 1 |
| timestamp: 5000 |
| track_event { |
| track_uuid: 11 |
| categories: "cat" |
| name: "event1_on_async" |
| type: 3 |
| } |
| } |
| # Event for the "async2" track starting on one thread and ending on another. |
| packet { |
| trusted_packet_sequence_id: 1 |
| timestamp: 5100 |
| track_event { |
| track_uuid: 12 |
| categories: "cat" |
| name: "event1_on_async2" |
| type: 1 |
| } |
| } |
| packet { |
| trusted_packet_sequence_id: 2 |
| timestamp: 5200 |
| track_event { |
| track_uuid: 12 |
| categories: "cat" |
| name: "event1_on_async2" |
| type: 2 |
| } |
| } |
| |
| # If we later see another track descriptor for tid 1, but with a different uuid, |
| # we should detect tid reuse and start a new thread. |
| packet { |
| trusted_packet_sequence_id: 3 |
| timestamp: 10000 |
| incremental_state_cleared: true |
| track_descriptor { |
| uuid: 3 |
| parent_uuid: 10 |
| thread { |
| pid: 5 |
| tid: 1 |
| thread_name: "t3" |
| } |
| } |
| } |
| # Should appear on t3. |
| packet { |
| trusted_packet_sequence_id: 3 |
| timestamp: 11000 |
| track_event { |
| track_uuid: 3 |
| categories: "cat" |
| name: "event1_on_t3" |
| type: 3 |
| } |
| } |
| |
| # If we later see another track descriptor for pid 5, but with a different uuid, |
| # we should detect pid reuse and start a new process. |
| packet { |
| trusted_packet_sequence_id: 4 |
| timestamp: 20000 |
| incremental_state_cleared: true |
| track_descriptor { |
| uuid: 20 |
| process { |
| pid: 5 |
| process_name: "p2" |
| } |
| } |
| } |
| # Should appear on p2. |
| packet { |
| trusted_packet_sequence_id: 4 |
| timestamp: 21000 |
| track_event { |
| track_uuid: 20 |
| categories: "cat" |
| name: "event1_on_p2" |
| type: 3 |
| } |
| } |
| # Another thread t4 in the new process. |
| packet { |
| trusted_packet_sequence_id: 4 |
| timestamp: 22000 |
| incremental_state_cleared: true |
| track_descriptor { |
| uuid: 21 |
| parent_uuid: 20 |
| thread { |
| pid: 5 |
| tid: 4 |
| thread_name: "t4" |
| } |
| } |
| } |
| # Should appear on t4. |
| packet { |
| trusted_packet_sequence_id: 4 |
| timestamp: 22000 |
| track_event { |
| track_uuid: 21 |
| categories: "cat" |
| name: "event1_on_t4" |
| type: 3 |
| } |
| } |
| |
| # Another packet for a thread track in the old process, badly sorted. |
| packet { |
| trusted_packet_sequence_id: 2 |
| timestamp: 6000 |
| track_event { |
| track_uuid: 1 |
| categories: "cat" |
| name: "event3_on_t1" |
| type: 3 |
| } |
| } |