|  | # Smoke tests | 
|  | ../data/sfgate.json smoke.sql sfgate_smoke.out | 
|  | ../data/sfgate.json smoke_slices.sql sfgate_smoke_slices.out | 
|  | ../data/android_sched_and_ps.pb smoke.sql android_sched_and_ps_smoke.out | 
|  | ../data/compressed.pb smoke.sql compressed_smoke.out | 
|  | synth_1.py smoke.sql synth_1_smoke.out | 
|  | ../data/fuchsia_trace.fxt smoke.sql fuchsia_smoke.out | 
|  | ../data/fuchsia_trace.fxt smoke_slices.sql fuchsia_smoke_slices.out | 
|  | ../data/fuchsia_trace.fxt smoke_instants.sql fuchsia_smoke_instants.out | 
|  | ../data/fuchsia_trace.fxt smoke_counters.sql fuchsia_smoke_counters.out | 
|  | ../data/fuchsia_workstation.fxt smoke_slices.sql fuchsia_workstation_smoke_slices.out | 
|  |  | 
|  | # Test for the process<>thread tracking logic. | 
|  | synth_process_tracking.py process_tracking.sql process_tracking.out | 
|  | synth_process_tracking.py process_tracking_uid.sql process_tracking_uid.out | 
|  | process_tracking_short_lived_1.py process_tracking.sql process_tracking_process_tracking_short_lived_1.out | 
|  | process_tracking_short_lived_2.py process_tracking.sql process_tracking_process_tracking_short_lived_2.out | 
|  | process_tracking_exec.py process_tracking.sql process_tracking_process_tracking_exec.out | 
|  | process_parent_pid_tracking_1.py process_parent_pid.sql process_parent_pid_process_parent_pid_tracking_1.out | 
|  | process_parent_pid_tracking_2.py process_parent_pid.sql process_parent_pid_process_parent_pid_tracking_2.out | 
|  | reused_thread_print.py process_tracking.sql process_tracking_reused_thread_print.out | 
|  | sde_tracing_mark_write.textproto slice_with_pid.sql slice_with_pid_sde_tracing_mark_write.out | 
|  |  | 
|  | # Test for computing CPU time from sched events for threads. | 
|  | ../data/example_android_trace_30s.pb thread_cpu_time.sql thread_cpu_time_example_android_trace_30s.out | 
|  |  | 
|  |  | 
|  | # The below tests check the storage backed tables in the trace processor. | 
|  | # Sched | 
|  | ../data/android_sched_and_ps.pb ts_desc_filter.sql ts_desc_filter_android_sched_and_ps.out | 
|  |  | 
|  | # Sched reason | 
|  | ../data/android_sched_and_ps.pb end_reason_eq.sql android_sched_and_ps_end_reason_eq.out | 
|  | ../data/android_sched_and_ps.pb end_reason_neq.sql android_sched_and_ps_end_reason_neq.out | 
|  |  | 
|  | # Sched wakeup | 
|  | ../data/android_sched_and_ps.pb sched_wakeup.sql sched_wakeup_android_sched_and_ps.out | 
|  |  | 
|  | # CPU Frequency | 
|  | ../data/cpu_counters.pb b120487929.sql cpu_counters_b120487929.out | 
|  |  | 
|  | # Logcat | 
|  | ../data/android_log.pb android_log_counts.sql android_log_counts.out | 
|  | ../data/android_log.pb android_log_msgs.sql android_log_msgs.out | 
|  | ../data/android_log_ring_buffer_mode.pb android_log_ring_buffer_mode.sql android_log_ring_buffer_mode.out | 
|  |  | 
|  | # Mm Event | 
|  | ../data/mm_event.pb mm_event.sql mm_event.out | 
|  |  | 
|  | # Oom Score | 
|  | synth_oom.py oom_query.sql synth_oom_oom_query.out | 
|  | ../data/process_stats_poll.pb oom_score_poll.sql process_stats_poll_oom_score.out | 
|  |  | 
|  | # LMK handling | 
|  | kernel_lmk.py lmk.sql lmk_kernel_lmk.out | 
|  | ../data/lmk_userspace.pb lmk.sql lmk_userspace_lmk.out | 
|  | oom_kill.textproto oom_kill.sql oom_kill.out | 
|  |  | 
|  | # Rss stats | 
|  | rss_stat_mm_id.py rss_stat.sql rss_stat_mm_id.out | 
|  | rss_stat_mm_id_clone.py rss_stat.sql rss_stat_mm_id_clone.out | 
|  | rss_stat_mm_id_reuse.py rss_stat.sql rss_stat_mm_id_reuse.out | 
|  | rss_stat_legacy.py rss_stat.sql rss_stat_legacy.out | 
|  | rss_stat_after_free.py rss_stat_after_free.sql rss_stat_after_free.out | 
|  |  | 
|  | # Memory counters | 
|  | ../data/memory_counters.pb args_string_filter_null.sql memory_counters_args_string_filter_null.out | 
|  | ../data/memory_counters.pb args_string_is_null.sql memory_counters_args_string_is_null.out | 
|  | ../data/memory_counters.pb args_string_is_not_null.sql memory_counters_args_string_is_not_null.out | 
|  | ../data/memory_counters.pb b120605557.sql memory_counters_b120605557.out | 
|  | ../data/memory_counters.pb global_memory_counter.sql global_memory_counter_memory_counters.out | 
|  | ion_stat.textproto ion_stat.sql ion_stat.out | 
|  |  | 
|  | # Stats | 
|  | ../data/android_sched_and_ps.pb stats.sql android_sched_and_ps_stats.out | 
|  |  | 
|  | # Syscalls | 
|  | syscall.py sys.sql sys_syscall.out | 
|  |  | 
|  | # Power rails | 
|  | ../data/power_rails.pb power_rails.sql power_rails_power_rails.out | 
|  | power_rails_custom_clock.textproto power_rails_event.sql power_rails_event_power_rails_custom_clock.out | 
|  | power_rails.textproto power_rails_timestamp_sort.sql power_rails_timestamp_sort.out | 
|  |  | 
|  |  | 
|  | # Android userspace async slices | 
|  | android_async_slice.textproto process_track_slices.sql process_track_slices_android_async_slice.out | 
|  |  | 
|  |  | 
|  | # The below tests check the autogenerated tables. | 
|  | # Span join | 
|  | ../data/android_sched_and_ps.pb slice_span_join_b118665515.sql android_sched_and_ps_slice_span_join_b118665515.out | 
|  | synth_1.py span_join_unordered_cols.sql span_join_unordered_cols_synth_1.out | 
|  | synth_1.py span_join_unordered_cols_reverse.sql span_join_unordered_cols_synth_1.out | 
|  | ../data/android_sched_and_ps.pb span_left_join.sql span_left_join.out | 
|  | ../data/android_sched_and_ps.pb span_left_join_unpartitioned.sql span_left_join_unpartitioned.out | 
|  | ../data/android_sched_and_ps.pb span_left_join_left_unpartitioned.sql span_left_join_left_unpartitioned.out | 
|  | ../data/android_sched_and_ps.pb span_left_join_left_partitioned.sql span_left_join_left_partitioned.out | 
|  | ../data/android_sched_and_ps.pb span_outer_join.sql span_outer_join.out | 
|  | ../data/android_sched_and_ps.pb span_left_join_empty_right.sql span_left_join_empty_right.out | 
|  | ../data/android_sched_and_ps.pb span_join_zero_negative_dur.sql span_join_zero_negative_dur.out | 
|  | ../data/android_sched_and_ps.pb span_outer_join_empty.sql span_outer_join_empty_android_sched_and_ps.out | 
|  | ../data/android_sched_and_ps.pb span_left_join_unordered.sql span_left_join_unordered_android_sched_and_ps.out | 
|  | ../data/android_sched_and_ps.pb span_join_unpartitioned_empty.sql span_join_unpartitioned_empty.out | 
|  |  | 
|  | # Window table | 
|  | ../data/android_sched_and_ps.pb smoke_window.sql android_sched_and_ps_smoke_window.out | 
|  |  | 
|  |  | 
|  | # The below tests check the lower level layers of the trace processor (i.e. | 
|  | # fitering and printing code). | 
|  | # Sched table | 
|  | synth_1.py filter_sched.sql synth_1_filter_sched.out | 
|  | ../data/android_sched_and_ps.pb b119496959.sql android_sched_and_ps_b119496959.out | 
|  | ../data/android_sched_and_ps.pb b119301023.sql android_sched_and_ps_b119301023.out | 
|  |  | 
|  | # Counters table | 
|  | synth_1.py filter_counter.sql synth_1_filter_counter.out | 
|  | ../data/memory_counters.pb b120278869_neg_ts_end.sql memory_counters_b120278869_neg_ts_end.out | 
|  | counters_where_cpu.py counters_where_cpu.sql counters_where_cpu_counters_where_cpu.out | 
|  | counters_group_by_freq.py counters_group_by_freq.sql counters_group_by_freq_counters_group_by_freq.out | 
|  | ../data/example_android_trace_30s.pb filter_row_vector.sql filter_row_vector_example_android_trace_30s.out | 
|  | ../data/example_android_trace_30s.pb counter_dur.sql counter_dur_example_android_trace_30s.out | 
|  |  | 
|  | # Null printing | 
|  | synth_1.py nulls.sql nulls.out | 
|  |  | 
|  |  | 
|  | # The below tests check the systrace conversion code in the raw table. | 
|  | # Print events | 
|  | ../data/lmk_userspace.pb print_systrace.sql print_systrace_lmk_userspace.out | 
|  | # Unsigned integers | 
|  | print_systrace_unsigned.py print_systrace.sql print_systrace_unsigned.out | 
|  |  | 
|  | # GPU trace tests. | 
|  | gpu_counters.py gpu_counters.sql gpu_counters.out | 
|  | gpu_counter_specs.textproto gpu_counter_specs.sql gpu_counter_specs.out | 
|  | gpu_render_stages.py gpu_render_stages.sql gpu_render_stages.out | 
|  | vulkan_api_events.py vulkan_api_events.sql vulkan_api_events.out | 
|  | gpu_log.py gpu_log.sql gpu_log.out | 
|  |  | 
|  | # Clock sync | 
|  | clock_sync.py clock_sync.sql clock_sync.out | 
|  |  | 
|  | # Graphics frame event trace tests. | 
|  | graphics_frame_events.py graphics_frame_events.sql graphics_frame_events.out | 
|  |  | 
|  | # Scheduling slices from sched_switch events. There are two tests, one for the | 
|  | # typical encoding of sched_switch events, and one for the same trace | 
|  | # re-encoded in the compact format. The output should be identical apart from | 
|  | # the latter having one slice fewer for each cpu (the first compact | 
|  | # sched_switch event doesn't start a slice). Six slices in this case. | 
|  | ../data/sched_switch_original.pb sched_slices.sql sched_slices_sched_switch_original.out | 
|  | ../data/sched_switch_compact.pb sched_slices.sql sched_slices_sched_switch_compact.out | 
|  |  | 
|  | heap_profile_jit.textproto heap_profile_frames.sql heap_profile_jit.out | 
|  |  | 
|  | profiler_smaps.textproto profiler_smaps.sql profiler_smaps.out | 
|  |  | 
|  | heap_graph_baseapk.textproto heap_graph_flamegraph.sql heap_graph_flamegraph.out | 
|  | heap_graph_baseapk.textproto heap_graph_object.sql heap_graph_object.out | 
|  | heap_graph_baseapk.textproto heap_graph_reference.sql heap_graph_reference.out | 
|  |  | 
|  | heap_graph.textproto heap_graph_flamegraph.sql heap_graph_flamegraph.out | 
|  | heap_graph.textproto heap_graph_object.sql heap_graph_object.out | 
|  | heap_graph.textproto heap_graph_reference.sql heap_graph_reference.out | 
|  | heap_graph_two_locations.textproto heap_graph_object.sql heap_graph_two_locations.out | 
|  | # TODO(b/153552977): Stop supporting legacy heap graphs. These never made | 
|  | #                    it into a public release, so we should eventually stop | 
|  | #                    supporting workarounds for them. | 
|  | heap_graph_legacy.textproto heap_graph_flamegraph.sql heap_graph_flamegraph.out | 
|  | heap_graph_legacy.textproto heap_graph_object.sql heap_graph_object.out | 
|  | heap_graph_legacy.textproto heap_graph_reference.sql heap_graph_reference.out | 
|  | heap_graph_interleaved.textproto heap_graph_object.sql heap_graph_interleaved_object.out | 
|  | heap_graph_interleaved.textproto heap_graph_reference.sql heap_graph_interleaved_reference.out | 
|  | ../data/system-server-heap-graph.pftrace heap_graph_flamegraph.sql heap_graph_flamegraph_system-server-heap-graph.out | 
|  | ../data/system-server-native-profile heap_profile_flamegraph.sql heap_profile_flamegraph_system-server-native-profile.out | 
|  | heap_profile_tracker_new_stack.textproto heap_profile_tracker_new_stack.sql heap_profile_tracker_new_stack.out | 
|  | heap_graph_branching.textproto heap_graph_flamegraph_focused.sql heap_graph_flamegraph_focused.out | 
|  |  | 
|  | stack_profile_tracker_empty_callstack.textproto stack_profile_tracker_empty_callstack.sql stack_profile_tracker_empty_callstack.out | 
|  |  | 
|  | # TrackEvent tests. | 
|  | track_event_same_tids.textproto process_tracking.sql track_event_same_tids_threads.out | 
|  | track_event_same_tids.textproto track_event_slices.sql track_event_same_tids_slices.out | 
|  | track_event_typed_args.textproto track_event_slices.sql track_event_typed_args_slices.out | 
|  | track_event_typed_args.textproto track_event_args.sql track_event_typed_args_args.out | 
|  | track_event_tracks.textproto track_event_slices.sql track_event_tracks_slices.out | 
|  | track_event_with_atrace.textproto track_event_slices.sql track_event_with_atrace.out | 
|  | track_event_merged_debug_annotations.textproto track_event_args.sql track_event_merged_debug_annotations_args.out | 
|  | track_event_counters.textproto track_event_slices.sql track_event_counters_slices.out | 
|  | track_event_counters.textproto track_event_counters.sql track_event_counters_counters.out | 
|  | track_event_monotonic_trace_clock.textproto track_event_slices.sql track_event_monotonic_trace_clock_slices.out | 
|  |  | 
|  | # Parsing systrace files | 
|  | ../data/systrace.html systrace_html.sql systrace_html.out | 
|  | ../data/trailing_empty.systrace sched_smoke.sql sched_smoke_trailing_empty.out | 
|  |  | 
|  | # Config & metadata | 
|  | config_metadata.textproto metadata.sql config_metadata.out | 
|  | trigger_packet_trace.textproto triggers_packets.sql triggers_packets_trigger_packet_trace.out | 
|  |  | 
|  | # Decoding of sched_waking events from a trace with compact scheduling events. | 
|  | # Verifies the contents of raw & instants tables. | 
|  | ../data/compact_sched.pb sched_waking_raw.sql sched_waking_raw_compact_sched.out | 
|  | ../data/compact_sched.pb sched_waking_instants.sql sched_waking_instants_compact_sched.out | 
|  |  | 
|  | # Ensures process -> package matching works as expected. | 
|  | process_metadata_matching.textproto process_metadata_matching.sql process_metadata_matching.out | 
|  |  | 
|  | # Trace size | 
|  | ../data/android_sched_and_ps.pb trace_size.sql android_sched_and_ps_trace_size.out | 
|  |  | 
|  | # Thread time_in_state | 
|  | thread_time_in_state.textproto thread_time_in_state.sql thread_time_in_state.out | 
|  | thread_time_in_state_annotations.py thread_time_in_state_annotations.sql thread_time_in_state_annotations.out | 
|  |  | 
|  | # Initial display state | 
|  | initial_display_state.textproto initial_display_state.sql initial_display_state.out | 
|  |  | 
|  | # CPU info | 
|  | cpu_info.textproto cpu.sql cpu.out | 
|  | cpu_info.textproto cpu_freq.sql cpu_freq.out | 
|  |  | 
|  | # Thread table | 
|  | thread_main_thread.textproto thread_main_thread.sql thread_main_thread.out |