# 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/event_latency_with_args.perfetto-trace event_latency_to_breakdowns_test.sql event_latency_to_breakdowns.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
../../data/chrome_scroll_without_vsync.pftrace chrome_processes_type_test.sql chrome_processes_type.out
../../data/chrome_android_systrace.pftrace chrome_processes_type_test.sql chrome_processes_type_android_systrace.out
track_with_chrome_process.textproto chrome_processes_type_test.sql track_with_chrome_process.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 reliable range
chrome_reliable_range.textproto chrome_reliable_range_test.sql chrome_reliable_range.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
../../data/async-trace-1.json count_slices_test.sql async-trace-1_count_slices.out
../../data/async-trace-2.json count_slices_test.sql async-trace-2_count_slices.out

# Log messages.
chrome_log_message.textproto chrome_log_message_test.sql chrome_log_message.out
chrome_log_message.textproto chrome_log_message_args_test.sql chrome_log_message_args.out

# Missing processes.
../../data/chrome_scroll_without_vsync.pftrace chrome_missing_processes_test.sql chrome_missing_processes_default_trace.out
chrome_missing_processes.textproto chrome_missing_processes_test.sql chrome_missing_processes.out
chrome_missing_processes.textproto chrome_missing_processes_args_test.sql chrome_missing_processes_args.out
