blob: 5a2015f2b5500ec18897a8c62bd3593d81097c6a [file] [log] [blame] [view]
# Testing Perfetto
The testing strategy for Perfetto is rather complex considering the wide variety
of build configurations and places it is expected to be integrated. We discuss
all testing related information in this doc.
# Test runners
Perfetto can be tested in a variety of locations:
* Travis: CI for Perfetto only. Found at https://perfetto-ci.appspot.com/
* APCT: see go/apct and go/apct-guide
* Treehugger: Android's presubmit system. Run before submission of every CL.
* CTS: Android test suite used run to ensure API compatibility. Rolling runs
internally.
Note that Travis uses the standalone build system and the others build as
part of the Android tree.
# Unit tests
Unit tests exist for most of the code in Perfetto on the class level. They
ensure that each class broadly works as expected.
Unit tests are run on Travis, APCT (pending) and Treehugger (pending).
# Integration tests
Integration tests ensure that subsystems (importantly ftrace) and Perfetto
as a whole (end to end testing) is working correctly. Note that we do not
test integration with any third parties, just within Perfetto.
There are two configurations in which integration tests can be run:
1. Assuming that the daemons (the service and ftrace) already running and
checking the test is able to interact correctly with them. This is usually
the way in which we test things on Android.
2. Starting up the daemons in the test itself and then testing against them.
This is usually how standalone builds are tested.
Integration tests are run on Travis (excluding ftrace) in mode 2, APCT (pending)
in mode 1, Treehugger (pending) in mode 1 and CTS in mode 1.
# CTS tests
CTS tests ensure that any vendors who modify Android remain compliant with the
platform API.
These tests include a subset of the integration tests above as well as adding
more complex tests which ensure interaction between platform (e.g. Android apps
etc.) and Perfetto is not broken.
CTS tests currently are not run anywhere as these tests are not included in
the suite.