tracing: fix datasource adaptation in perfetto config
This CL fixes a bug in AdaptPerfettoConfigForChrome() in crrev.com/c/5581575 - |enable_system_backend| needs to be propagated so that only Chrome data sources are adapted in system background tracing scenarios. Bug: b:388424720 Test: unit test AdaptPerfettoConfigForChromeTest.EnableSystemBackend* Change-Id: Ie74b20c719854682f29401d614fb68e5e4135113 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6275227 Reviewed-by: Mikhail Khokhlov <khokhlov@google.com> Reviewed-by: Etienne Pierre-Doray <etiennep@chromium.org> Commit-Queue: Chinglin Yu <chinglinyu@chromium.org> Cr-Commit-Position: refs/heads/main@{#1422622}
This commit is contained in:

committed by
Chromium LUCI CQ

parent
627be3e8f3
commit
05218a6014
services/tracing/public/cpp/perfetto
@ -414,7 +414,7 @@ bool AdaptPerfettoConfigForChrome(
|
||||
for (auto& data_source_config : *perfetto_config->mutable_data_sources()) {
|
||||
AdaptDataSourceConfig(data_source_config.mutable_config(),
|
||||
chrome_config_string, privacy_filtering_enabled,
|
||||
client_priority);
|
||||
client_priority, enable_system_backend);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
@ -234,4 +234,52 @@ TEST_F(AdaptPerfettoConfigForChromeTest, Systrace) {
|
||||
}
|
||||
#endif // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_CASTOS)
|
||||
|
||||
TEST_F(AdaptPerfettoConfigForChromeTest, EnableSystemBackend_NonChrome) {
|
||||
auto perfetto_config = ParsePerfettoConfigFromText(R"pb(
|
||||
data_sources: { config: { name: "linux.some_system_ds" } }
|
||||
data_sources: { config: { name: "linux.ftrace" } }
|
||||
)pb");
|
||||
|
||||
EXPECT_TRUE(AdaptPerfettoConfigForChrome(
|
||||
&perfetto_config, false, false,
|
||||
perfetto::protos::gen::ChromeConfig::USER_INITIATED, true));
|
||||
|
||||
// System data sources are not adapted.
|
||||
for (auto& ds : perfetto_config.data_sources()) {
|
||||
EXPECT_FALSE(ds.config().has_chrome_config());
|
||||
}
|
||||
}
|
||||
|
||||
TEST_F(AdaptPerfettoConfigForChromeTest, EnableSystemBackend_Chrome) {
|
||||
auto perfetto_config = ParsePerfettoConfigFromText(R"pb(
|
||||
data_sources: {
|
||||
config: {
|
||||
name: "org.chromium.trace_event"
|
||||
track_event_config: {
|
||||
enabled_categories: [ "foo", "__metadata" ]
|
||||
disabled_categories: [ "*" ]
|
||||
}
|
||||
}
|
||||
}
|
||||
data_sources: {
|
||||
config: {
|
||||
name: "track_event"
|
||||
track_event_config: {
|
||||
enabled_categories: [ "foo", "__metadata" ]
|
||||
disabled_categories: [ "*" ]
|
||||
}
|
||||
}
|
||||
}
|
||||
data_sources: { config: { name: "org.chromium.trace_metadata" } }
|
||||
)pb");
|
||||
|
||||
EXPECT_TRUE(AdaptPerfettoConfigForChrome(
|
||||
&perfetto_config, false, false,
|
||||
perfetto::protos::gen::ChromeConfig::USER_INITIATED, true));
|
||||
|
||||
for (auto& ds : perfetto_config.data_sources()) {
|
||||
EXPECT_TRUE(ds.config().has_chrome_config());
|
||||
}
|
||||
}
|
||||
|
||||
} // namespace tracing
|
||||
|
Reference in New Issue
Block a user