# Contains tests for the handling of tables by trace processor. The focus of tests here
# is to check that trace processor is correctly returning and handling constraints on
# the really important tables in trace processor.
#
# Note: It's generally *not* advisable to add tests here. Check the guidance provided by
# http://perfetto/dev/docs/analysis/trace-processor#diff-tests for choosing which folder
# to add a new test to.

# Window table
../../data/android_sched_and_ps.pb smoke_window_test.sql android_sched_and_ps_smoke_window.out

# Sched table
../common/synth_1.py filter_sched_test.sql synth_1_filter_sched.out
../../data/android_sched_and_ps.pb b119496959_test.sql android_sched_and_ps_b119496959.out
../../data/android_sched_and_ps.pb b119301023_test.sql android_sched_and_ps_b119301023.out

# Counters table
../common/synth_1.py filter_counter_test.sql synth_1_filter_counter.out
../../data/memory_counters.pb b120278869_neg_ts_end_test.sql memory_counters_b120278869_neg_ts_end.out
counters_where_cpu.py counters_where_cpu_test.sql counters_where_cpu_counters_where_cpu.out
counters_group_by_freq.py counters_group_by_freq_test.sql counters_group_by_freq_counters_group_by_freq.out
../../data/example_android_trace_30s.pb filter_row_vector_test.sql filter_row_vector_example_android_trace_30s.out
../../data/example_android_trace_30s.pb counter_dur_test.sql counter_dur_example_android_trace_30s.out

# Null printing
../common/synth_1.py nulls_test.sql nulls.out

# Thread table
thread_main_thread.textproto thread_main_thread_test.sql thread_main_thread.out

# Json output
../../data/memory_counters.pb trace_metadata trace_metadata.json.out

# Processes as a metric
process_uids.textproto android_task_names android_task_names.out

# Ftrace stats imports in metadata and stats tables
../../data/ftrace_error_stats.pftrace ftrace_setup_errors_test.sql ftrace_setup_errors.out
