# 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

# Ancestor slice table.
relationship_tables.textproto ancestor_slice.sql ancestor_slice.out
# Descendant slice table.
relationship_tables.textproto descendant_slice.sql descendant_slice.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
gpu_render_stages_interned_spec.textproto gpu_render_stages.sql gpu_render_stages_interned_spec.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_duplicate.textproto heap_graph_flamegraph.sql heap_graph_duplicate_flamegraph.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_profile_tracker_twoheaps.textproto heap_profile_tracker_twoheaps.sql heap_profile_tracker_twoheaps.out
heap_graph_branching.textproto heap_graph_flamegraph_focused.sql heap_graph_flamegraph_focused.out
heap_graph_superclass.textproto heap_graph_superclass.sql heap_graph_superclass.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

# Chrome metrics (found in the trace_processor/chrome directory).
../data/chrome_scroll_without_vsync.pftrace scroll_jank_general_validation.sql scroll_jank_general_validation.out
../data/chrome_scroll_without_vsync.pftrace scroll_jank.sql scroll_jank.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_event.py thread_time_in_state_event.sql thread_time_in_state_event.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

# Missed frames.
frame_missed.py frame_missed_event.sql frame_missed_event_frame_missed.out

# perf_sample table (traced_perf trace as an input).
../data/perf_sample.pb perf_sample.sql perf_sample_perf_sample.out
