perfetto: fix several problems with CTS

The problems:
1) Previously, we were creating a new thread with a producer on every
resume of the activity. As resumes do not necessarily correspond to
process death, we were ending up with n producers (where n is the number
of tests which ran before the activity test).
2) We were not cleaning up producers correctly and were instead relying
on process death. However, it's very possible that an activity gets
recreated without process death (as we have foreground services).
3) When we refactored CTS deps to not have to repeat tests, we
accidentally stopped running integration tests in CTS.

Solutions:
1) Setup "proper" producer lifecycle handling (this is still pretty
hacky but significantly better than it was before) by tying the
lifecycle of the producer to the lifecycle of the containing Java Android
owner.
2) Reintroduce the integration tests source set into the CTS tests.

Bug: 146984689
Change-Id: I2b0bed6f9f451057e93cb2d380962f6af0117efc
6 files changed
tree: 68d3ab81c3a7b6078129618e4b8a8af61b60313e
  1. bazel/
  2. build_overrides/
  3. buildtools/
  4. debian/
  5. docs/
  6. gn/
  7. include/
  8. infra/
  9. protos/
  10. src/
  11. test/
  12. tools/
  13. ui/
  14. .clang-format
  15. .gitignore
  16. .gn
  17. .style.yapf
  18. Android.bp
  19. Android.bp.extras
  20. BUILD
  21. BUILD.extras
  22. BUILD.gn
  23. codereview.settings
  24. heapprofd.rc
  25. LICENSE
  26. MODULE_LICENSE_APACHE2
  27. NOTICE
  28. OWNERS
  29. perfetto.rc
  30. PRESUBMIT.py
  31. README.chromium
  32. README.md
  33. TEST_MAPPING
  34. WORKSPACE
README.md

Perfetto - Performance instrumentation and tracing

Perfetto is an open-source project for performance instrumentation and tracing of Linux/Android/Chrome platforms and user-space apps.

See www.perfetto.dev for docs.

Contributing

See /docs/contributing.md for instructions.

The source-of-truth repo is Android's Gerrit. The GitHub repo is a read-only mirror.

Bugs

  • For bugs affecting Android or the tracing internals use the internal bug tracker (go/perfetto-bugs).
  • For bugs affecting Chrome use http://crbug.com, Component:Speed>Tracing label:Perfetto.

Community

You can reach us on our Discord channel. If you prefer using IRC we have an experimental Discord <> IRC bridge synced with #perfetto-dev on Freenode.