# Tests related to Chrome's use of Perfetto.

# Chrome metrics (found in the trace_processor/chrome directory).

# Scroll jank metrics
../../data/chrome_scroll_without_vsync.pftrace scroll_jank_general_validation_test.sql scroll_jank_general_validation.out
../../data/chrome_scroll_without_vsync.pftrace scroll_jank_test.sql scroll_jank.out
../../data/chrome_scroll_without_vsync.pftrace scroll_flow_event_test.sql scroll_flow_event.out
../../data/chrome_scroll_without_vsync.pftrace scroll_flow_event_general_validation_test.sql scroll_flow_event_general_validation.out
../../data/chrome_scroll_without_vsync.pftrace scroll_jank_cause_test.sql scroll_jank_cause.out
../../data/chrome_scroll_without_vsync.pftrace scroll_flow_event_queuing_delay_test.sql scroll_flow_event_queuing_delay.out
../../data/chrome_scroll_without_vsync.pftrace scroll_flow_event_queuing_delay_general_validation_test.sql scroll_flow_event_general_validation.out
../../data/chrome_scroll_without_vsync.pftrace scroll_jank_cause_queuing_delay_test.sql scroll_jank_cause_queuing_delay.out
../../data/chrome_scroll_without_vsync.pftrace scroll_jank_cause_queuing_delay_restricted_test.sql scroll_jank_cause_queuing_delay_restricted.out
../../data/chrome_scroll_without_vsync.pftrace scroll_jank_cause_queuing_delay_general_validation_test.sql scroll_jank_cause_queuing_delay_general_validation.out
../../data/chrome_scroll_without_vsync.pftrace chrome_thread_slice_test.sql chrome_thread_slice.out
../../data/scrolling_with_blocked_nonblocked_frames.pftrace chrome_input_to_browser_intervals_test.sql chrome_input_to_browser_intervals.out
../../data/fling_with_input_delay.pftrace chrome_scroll_jank_caused_by_scheduling_test.sql chrome_scroll_jank_caused_by_scheduling_test.out
../../data/fling_with_input_delay.pftrace chrome_tasks_delaying_input_processing_test.sql chrome_tasks_delaying_input_processing_test.out
../../data/scrolling_with_blocked_nonblocked_frames.pftrace chrome_scroll_inputs_per_frame_test.sql chrome_scroll_inputs_per_frame_test.out
../track_event/track_event_counters.textproto chrome_thread_slice_repeated_test.sql chrome_thread_slice_repeated.out
../../data/chrome_rendering_desktop.pftrace frame_times frame_times_metric.out
../../data/chrome_rendering_desktop.pftrace chrome_dropped_frames chrome_dropped_frames_metric.out
../chrome/long_event_latency.textproto chrome_long_latency_metric_test.sql chrome_long_latency_metric.out
scroll_jank_mojo_simple_watcher.py scroll_jank_mojo_simple_watcher_test.sql scroll_jank_mojo_simple_watcher.out
scroll_jank_gpu_check.py scroll_jank_gpu_check_test.sql scroll_jank_gpu_check.out

# Touch gesture metrics
../../data/chrome_touch_gesture_scroll.pftrace touch_jank_test.sql touch_jank.out
../../data/chrome_touch_gesture_scroll.pftrace touch_flow_event_test.sql touch_flow_event.out
../../data/chrome_touch_gesture_scroll.pftrace touch_flow_event_queuing_delay_test.sql touch_flow_event_queuing_delay.out
touch_jank.py touch_jank_test.sql touch_jank_synth.out
touch_jank.py touch_flow_event_test.sql touch_flow_event_synth.out
touch_jank.py touch_flow_event_queuing_delay_full_test.sql touch_flow_event_queuing_delay_synth.out

# Chrome memory snapshots.
../../data/chrome_memory_snapshot.pftrace memory_snapshot_general_validation_test.sql memory_snapshot_general_validation.out
../../data/chrome_memory_snapshot.pftrace memory_snapshot_os_dump_events_test.sql memory_snapshot_os_dump_events.out
../../data/chrome_memory_snapshot.pftrace memory_snapshot_chrome_dump_events_test.sql memory_snapshot_chrome_dump_events.out
../../data/chrome_memory_snapshot.pftrace memory_snapshot_nodes_test.sql memory_snapshot_nodes.out
../../data/chrome_memory_snapshot.pftrace memory_snapshot_edges_test.sql memory_snapshot_edges.out
../../data/chrome_memory_snapshot.pftrace memory_snapshot_node_args_test.sql memory_snapshot_node_args.out
../../data/chrome_memory_snapshot.pftrace memory_snapshot_smaps_test.sql memory_snapshot_smaps.out

# RAIL modes.
combined_rail_modes.py combined_rail_modes_test.sql combined_rail_modes.out
cpu_time_by_combined_rail_mode.py cpu_time_by_combined_rail_mode_test.sql cpu_time_by_combined_rail_mode.out
actual_power_by_combined_rail_mode.py actual_power_by_combined_rail_mode_test.sql actual_power_by_combined_rail_mode.out
estimated_power_by_combined_rail_mode.py estimated_power_by_combined_rail_mode_test.sql estimated_power_by_combined_rail_mode.out
modified_rail_modes.py modified_rail_modes_test.sql modified_rail_modes.out
modified_rail_modes_no_vsyncs.py modified_rail_modes_test.sql modified_rail_modes_no_vsyncs.out
modified_rail_modes_with_input.py modified_rail_modes_with_input_test.sql modified_rail_modes_with_input.out
modified_rail_modes_long.py modified_rail_modes_test.sql modified_rail_modes_long.out
modified_rail_modes_extra_long.py modified_rail_modes_test.sql modified_rail_modes_extra_long.out

# Chrome processes.
../../data/chrome_scroll_without_vsync.pftrace chrome_processes_test.sql chrome_processes.out
../../data/chrome_android_systrace.pftrace chrome_processes_test.sql chrome_processes_android_systrace.out
../../data/chrome_scroll_without_vsync.pftrace chrome_threads_test.sql chrome_threads.out
../../data/chrome_android_systrace.pftrace chrome_threads_test.sql chrome_threads_android_systrace.out

# Chrome histogram hashes
chrome_histogram_hashes.textproto chrome_histogram_hashes chrome_histogram_hashes.out

# Chrome user events
chrome_user_event_hashes.textproto chrome_user_event_hashes chrome_user_event_hashes.out

# Chrome performance mark
chrome_performance_mark_hashes.textproto chrome_performance_mark_hashes chrome_performance_mark_hashes.out

# Chrome slices
chrome_slice_names.textproto chrome_slice_names chrome_slice_names.out

# Chrome tasks.
../../data/chrome_page_load_all_categories_not_extended.pftrace.gz chrome_tasks_test.sql chrome_tasks.out

# Chrome stack samples.
../../data/chrome_stack_traces_symbolized_trace.pftrace chrome_stack_samples_for_task_test.sql chrome_stack_samples_for_task_test.out

# Unsymbolized args.
unsymbolized_args.textproto chrome_unsymbolized_args unsymbolized_args.out
