Files
TheRock/rocm-systems/projects/rocprofiler-systems/external/perfetto/test/cts
derek.holloway 7502bf64a4
CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
Flatten subprojects into a single base monorepo
2026-09-02 16:34:47 -07:00
..

This directory contains the CTS tests for the Perfetto library.

Background

For information about what CTS is, please go to https://source.android.com/compatibility/cts/ where you will find information on the purpose of CTS and how to run these tests.

Test contents

The single GTest target (CtsPerfettoTestCases) contains the following notable test suites:

  • PerfettoCtsTest - verifies that any Android app can operate as a perfetto producer.
  • HeapprofdCtsTest - verifies that Android apps can be heap-profiled, and that the manifest-based opt-in is respected.
  • The contents of perfetto/test/end_to_end_integrationtest.cc.

PerfettoCtsTest

The GTest suite is both the consumer of data as well as the driver the actual tests we wish to run. This target drives the tracing system by requesting tracing to start/stop and ensures the data it receives is correct. This mimics the role of real consumers acting as the driver for tracing on device. This suite is compiled and pushed to device and subsequently run using a shell account which gives us permissions to access the perfetto consumer socket.

The mock producer is an Android app with a thin Java wrapping around the C++ library interfaced using JNI. The purpose of this target is to ensure that the TraceProto received from the consumer is valid and then push some fake data. This ensures that any arbitrary app can push data to the Perfetto socket which can then be decoded by the GTest consumer.

HeapprofdCtsTest

The tests cover the intersection of profiling from-startup/at-runtime, and whether the target app is debuggable. The GTest binary handles the targets' lifetimes, acts as a profiling consumer, and asserts the contents of the resultant traces.