Perfetto has two main test targets: perfetto_unittests
and perfetto_integrationtests
. These can either be built using standalone or in the Android tree; we provide instructions for running both below. CTS tests can also be run when building in the Android tree; they cannot be built using standalone.
First, ennsure that you can build Perfetto (see build instructions). On Android, also setup the service and the kernel event producer (see running Perfetto)
On Linux and Mac, out/$target/perfetto_unittests and out/$target/perfetto_integrationtests can be run directly.
On Android, the following commands should be run (with the appropriate target in curly braces depending on which tests suites are to be run):
adb push out/$target/perfetto_{unittests, integrationtests} /data/local/tmp/ adb shell out/$target/perfetto_{unittests, integrationtests}.
Unit tests, once built, can be run using the following commands:
adb push $OUT/data/nativetest/perfetto_unittests/perfetto_unittests /data/local/tmp/ adb shell /data/local/tmp/perfetto_unittests
Integration tests, once built, can be run using the following commands:
adb push $OUT/data/nativetest/perfetto_integrationtests/perfetto_integrationtests /data/local/tmp/ adb shell /data/local/tmp/perfetto_integrationtests
Building in the Android tree also allows building of CTS tests. The relevant targets are CtsPerfettoProducerApp
and CtsPerfettoTestCases
. Once these are built, the following commands should be run (to manually run these tests):
adb push $ANDROID_HOST_OUT/cts/android-cts/testcases/CtsPerfettoTestCases64 /data/local/tmp/ adb install -r $ANDROID_HOST_OUT/cts/android-cts/testcases/CtsPerfettoProducerApp.apk
Next, the app with name ‘android.perfetto.producer’ should be run on device. Finally, the following command should be run:
adb shell /data/local/tmp/CtsPerfettoTestCases64