perfetto_cmd: don't connect to the service if unnecessary
The previous refactoring aosp/1713963 introduced a bug
in the perfetto cmdline client. The bug was about assuming
that a 0 return code from the cmdline parser meant
"all clear, proceed with the service connection".
However, there were two cases where previously a return 0
mean to exit(0) without connecting:
--version and --reset-guardrails.
The CL makes the ParseCmdlineAndMaybeDaemonize return
an Optional<int> so it's clear if intends to exit()
or continue.
Test: added a test to perfetto_integrationtests,
checked it failed before this CL.
Bug: 189359657
Bug: 158465724
Bug: 187945217
Change-Id: I765dd36dc9b69576ec3e888dfa2893ea31a7b6e5Perfetto is a production-grade open-source stack for performance instrumentation and trace analysis. It offers services and libraries and for recording system-level and app-level traces, native + java heap profiling, a library for analyzing traces using SQL and a web-based UI to visualize and explore multi-GB traces.
See https://perfetto.dev/docs or the /docs/ directory for documentation.