# Contains tests for graphics related events and tables.

# 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

# Graphics frame event trace tests.
graphics_frame_events.py graphics_frame_events.sql graphics_frame_events.out

# GPU Memory ftrace packets
gpu_mem_total.py gpu_mem_total.sql gpu_mem_total.out

# Clock sync
clock_sync.py clock_sync.sql clock_sync.out

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

# GPU metrics
gpu_metric.py android_gpu gpu_metric.out

# Android SysUI CUJs metrics
android_sysui_cuj.py android_sysui_cuj android_sysui_cuj.out

# Frame Timeline event trace tests
frame_timeline_events.py expected_frame_timeline_events.sql expected_frame_timeline_events.out
frame_timeline_events.py actual_frame_timeline_events.sql actual_frame_timeline_events.out

# Composition layer
composition_layer.py composition_layer_count.sql composition_layer_count.out

# Android Jank metrics
android_jank.py android_jank android_jank.out
