# 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

# 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
../data/android_sched_and_ps.pb end_reason_match.sql android_sched_and_ps_end_reason_match.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

# 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 counters_ref_type_null.sql counters_ref_type_null_memory_counters.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_rail_custom_clock.textproto power_rail_event.sql power_rail_event_power_rail_custom_clock.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

# 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_counters.sql synth_1_filter_counters.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
counters_order_ref.py counters_order_ref.sql counters_order_ref_counters_order_ref.out
../data/example_android_trace_30s.pb filter_row_vector.sql filter_row_vector_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
../data/gpu_trace.pb gpu_render_stages.sql gpu_render_stages.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

heap_graph.textproto heap_graph_object.sql heap_graph_object.out
heap_graph.textproto heap_graph_reference.sql heap_graph_reference.out

# TrackEvent tests.
track_event_same_tids.py process_tracking.sql track_event_same_tids_threads.out
track_event_same_tids.py track_event_slices.sql track_event_same_tids_slices.out

# Parsing of an html file with systrace data inside
../data/systrace.html systrace_html.sql systrace_html.out

# Config
config.textproto metadata.sql config_metadata.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
