Merge 3 perfetto fixes into into pi-dev

d52e627 Add Flush support to Producer ... [b/77684460]
7b14f65 Make the traced service robust against corrupted packets [b/77636740]
e86dde3 traced_probes: Write only one process tree per packet [b/77572477]

The merge-list contains also 3 test refactorings CLs. This CL is
deliberately merging them as well even if they are not tied to P1 bugs
for the following reason:
1) Not doing so would break our treehugger tests on pi-dev
2) Trying to do manual surgery on the branch to cut them away is just
   going to increase the chance of screwing up future cherry-picks.
3) Test changes don't affect stability risk of the release.

Bug: 77684460
Bug: 77636740
Bug: 77572477
Test: manual + perfetto_unittests + perfetto_integrationtests
Change-Id: I668e8c1603666aa2cfa2325e34bc4b4128757fbf
tree: 8a44c21c814735f8f7b2040f77ae6a0fd97ed39d
  1. build_overrides/
  2. buildtools/
  3. debian/
  4. docs/
  5. gn/
  6. include/
  7. infra/
  8. protos/
  9. src/
  10. test/
  11. tools/
  12. .clang-format
  13. .gitignore
  14. .gn
  15. .travis.yml
  16. Android.bp
  17. Android.bp.extras
  18. BUILD.gn
  19. codereview.settings
  20. MODULE_LICENSE_APACHE2
  21. NOTICE
  22. OWNERS
  23. perfetto.rc
  24. PRESUBMIT.py
  25. README.chromium
  26. README.md
README.md

Perfetto - Performance instrumentation and logging for POSIX platforms

This project is meant to be built both as part of the Android tree and from a standalone checkout

For internal docs see this page

Supported platforms

Android is the platform targeted in the first milestones. Right now Linux desktop and OSX are maintained best-effort.

Contributing

This project uses Android AOSP Gerrit for code reviews and uses the Google C++ style. Currently targets -std=c++11.

You can use both git cl upload from Chromium depot tools or Android repo to upload patches.

git cl is quite convenient as it supports code auto-formatting via git cl format.

See https://source.android.com/source/contributing for more details about external contributions and CLA signing.

Build instructions

See docs/build_instructions.md

Running Perfetto

See docs/running_perfetto.md

Continuous integration

Continuous build and test coverage is available at perfetto-ci.appspot.com. Trybots: CLs uploaded to gerrit are automatically submitted to TravisCI within one minute and made available on the CI page above. The relevant code lives in the infra/ directory.

Run tests

On the host (Linux / OSX)

$ tools/ninja -C out/default (tracing_unittests | tracing_benchmarks)
$ out/default/tracing_unittests --gtest_help

On Android

Either connect a device in ADB mode or use the bundled emulator.

To start the emulator:
$ tools/run_android_emulator (arm | arm64) &

To run the tests (either on the emulator or physical device):
$ tools/run_android_test out/default tracing_unittests