# Contains heap profiling, perf profiling and heap graph tests.

heap_profile_jit.textproto heap_profile_frames.sql heap_profile_jit.out
heap_profile_deobfuscate.textproto heap_profile_deobfuscate.sql heap_profile_deobfuscate.out
heap_profile_deobfuscate_memfd.textproto heap_profile_deobfuscate.sql heap_profile_deobfuscate.out


profiler_smaps.textproto profiler_smaps.sql profiler_smaps.out

heap_graph_baseapk.textproto heap_graph_flamegraph.sql heap_graph_flamegraph.out
heap_graph_baseapk.textproto heap_graph_object.sql heap_graph_object.out
heap_graph_baseapk.textproto heap_graph_reference.sql heap_graph_reference.out

heap_graph_duplicate.textproto heap_graph_flamegraph.sql heap_graph_duplicate_flamegraph.out

heap_graph.textproto heap_graph_flamegraph.sql heap_graph_flamegraph.out
heap_graph.textproto heap_graph_object.sql heap_graph_object.out
heap_graph.textproto heap_graph_reference.sql heap_graph_reference.out
heap_graph_two_locations.textproto heap_graph_object.sql heap_graph_two_locations.out
heap_graph_legacy.textproto heap_graph_object.sql heap_graph_object.out
heap_graph_legacy.textproto heap_graph_reference.sql heap_graph_reference.out
heap_graph_interleaved.textproto heap_graph_object.sql heap_graph_interleaved_object.out
heap_graph_interleaved.textproto heap_graph_reference.sql heap_graph_interleaved_reference.out
../../data/system-server-heap-graph-new.pftrace heap_graph_flamegraph.sql heap_graph_flamegraph_system-server-heap-graph.out
../../data/system-server-native-profile heap_profile_flamegraph.sql heap_profile_flamegraph_system-server-native-profile.out
heap_profile_tracker_new_stack.textproto heap_profile_tracker_new_stack.sql heap_profile_tracker_new_stack.out
heap_profile_tracker_twoheaps.textproto heap_profile_tracker_twoheaps.sql heap_profile_tracker_twoheaps.out
heap_graph_branching.textproto heap_graph_flamegraph_focused.sql heap_graph_flamegraph_focused.out
heap_graph_superclass.textproto heap_graph_superclass.sql heap_graph_superclass.out

# TODO(b/153552977): Stop supporting legacy heap graphs. These never made
#                    it into a public release, so we should eventually stop
#                    supporting workarounds for them.
heap_graph_legacy.textproto heap_graph_flamegraph.sql heap_graph_flamegraph.out

stack_profile_tracker_empty_callstack.textproto stack_profile_tracker_empty_callstack.sql stack_profile_tracker_empty_callstack.out

# Metrics
heap_profile.textproto heap_profile_callsites heap_profile_callsites.out
heap_profile_no_symbols.textproto unsymbolized_frames unsymbolized_frames.out

heap_graph.textproto java_heap_stats java_heap_stats.out
heap_graph_closest_proc.textproto java_heap_stats heap_stats_closest_proc.out
heap_graph.textproto java_heap_histogram java_heap_histogram.out

# perf_sample table (traced_perf trace as an input).
../../data/perf_sample.pb perf_sample.sql perf_sample_perf_sample.out

# this uses llvm-symbolizer to test the offline symbolization built into
# trace_processor_shell.
../../data/heapprofd_standalone_client_example-trace stack_profile_symbols.sql stack_profile_symbols.out
