| Index: components/metrics/call_stack_profile_metrics_provider_unittest.cc
|
| diff --git a/components/metrics/call_stack_profile_metrics_provider_unittest.cc b/components/metrics/call_stack_profile_metrics_provider_unittest.cc
|
| index c81e23922ac460f6d69b52b7326a8c848e629249..4067a9cf34f9c31ca4d20b964d87654e8a2c0f85 100644
|
| --- a/components/metrics/call_stack_profile_metrics_provider_unittest.cc
|
| +++ b/components/metrics/call_stack_profile_metrics_provider_unittest.cc
|
| @@ -10,10 +10,10 @@
|
| #include <utility>
|
|
|
| #include "base/macros.h"
|
| -#include "base/metrics/field_trial.h"
|
| #include "base/profiler/stack_sampling_profiler.h"
|
| #include "base/run_loop.h"
|
| #include "base/strings/string_number_conversions.h"
|
| +#include "base/test/scoped_feature_list.h"
|
| #include "build/build_config.h"
|
| #include "components/metrics/call_stack_profile_params.h"
|
| #include "components/metrics/proto/chrome_user_metrics_extension.pb.h"
|
| @@ -117,39 +117,35 @@ Profiles ProfilesFactory::Build() {
|
|
|
| namespace metrics {
|
|
|
| -// This test fixture enables the field trial that
|
| +// This test fixture enables the feature that
|
| // CallStackProfileMetricsProvider depends on to report profiles.
|
| class CallStackProfileMetricsProviderTest : public testing::Test {
|
| public:
|
| - CallStackProfileMetricsProviderTest()
|
| - : field_trial_list_(nullptr) {
|
| - base::FieldTrialList::CreateFieldTrial(
|
| - TestState::kFieldTrialName,
|
| - TestState::kReportProfilesGroupName);
|
| + CallStackProfileMetricsProviderTest() {
|
| + scoped_feature_list_.InitAndEnableFeature(TestState::kEnableReporting);
|
| TestState::ResetStaticStateForTesting();
|
| }
|
|
|
| ~CallStackProfileMetricsProviderTest() override {}
|
|
|
| // Utility function to append profiles to the metrics provider.
|
| - void AppendProfiles(const CallStackProfileParams& params, Profiles profiles) {
|
| + void AppendProfiles(CallStackProfileParams* params, Profiles profiles) {
|
| CallStackProfileMetricsProvider::GetProfilerCallback(params).Run(
|
| - std::move(profiles));
|
| + std::move(profiles), nullptr);
|
| }
|
|
|
| void VerifyProfileProto(const ExpectedProtoProfile& expected,
|
| const SampledProfile& proto);
|
|
|
| private:
|
| - // Exposes field trial/group names from the CallStackProfileMetricsProvider.
|
| + // Exposes the feature from the CallStackProfileMetricsProvider.
|
| class TestState : public CallStackProfileMetricsProvider {
|
| public:
|
| - using CallStackProfileMetricsProvider::kFieldTrialName;
|
| - using CallStackProfileMetricsProvider::kReportProfilesGroupName;
|
| + using CallStackProfileMetricsProvider::kEnableReporting;
|
| using CallStackProfileMetricsProvider::ResetStaticStateForTesting;
|
| };
|
|
|
| - base::FieldTrialList field_trial_list_;
|
| + base::test::ScopedFeatureList scoped_feature_list_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(CallStackProfileMetricsProviderTest);
|
| };
|
| @@ -343,12 +339,11 @@ TEST_F(CallStackProfileMetricsProviderTest, MultipleProfiles) {
|
|
|
| CallStackProfileMetricsProvider provider;
|
| provider.OnRecordingEnabled();
|
| - AppendProfiles(
|
| - CallStackProfileParams(CallStackProfileParams::BROWSER_PROCESS,
|
| - CallStackProfileParams::UI_THREAD,
|
| - CallStackProfileParams::PROCESS_STARTUP,
|
| - CallStackProfileParams::MAY_SHUFFLE),
|
| - std::move(profiles));
|
| + CallStackProfileParams params(CallStackProfileParams::BROWSER_PROCESS,
|
| + CallStackProfileParams::UI_THREAD,
|
| + CallStackProfileParams::PROCESS_STARTUP,
|
| + CallStackProfileParams::MAY_SHUFFLE);
|
| + AppendProfiles(¶ms, std::move(profiles));
|
| ChromeUserMetricsExtension uma_proto;
|
| provider.ProvideGeneralMetrics(&uma_proto);
|
|
|
| @@ -428,12 +423,11 @@ TEST_F(CallStackProfileMetricsProviderTest, RepeatedStacksUnordered) {
|
|
|
| CallStackProfileMetricsProvider provider;
|
| provider.OnRecordingEnabled();
|
| - AppendProfiles(
|
| - CallStackProfileParams(CallStackProfileParams::BROWSER_PROCESS,
|
| - CallStackProfileParams::UI_THREAD,
|
| - CallStackProfileParams::PROCESS_STARTUP,
|
| - CallStackProfileParams::MAY_SHUFFLE),
|
| - std::move(profiles));
|
| + CallStackProfileParams params(CallStackProfileParams::BROWSER_PROCESS,
|
| + CallStackProfileParams::UI_THREAD,
|
| + CallStackProfileParams::PROCESS_STARTUP,
|
| + CallStackProfileParams::MAY_SHUFFLE);
|
| + AppendProfiles(¶ms, std::move(profiles));
|
| ChromeUserMetricsExtension uma_proto;
|
| provider.ProvideGeneralMetrics(&uma_proto);
|
|
|
| @@ -515,11 +509,11 @@ TEST_F(CallStackProfileMetricsProviderTest, RepeatedStacksOrdered) {
|
|
|
| CallStackProfileMetricsProvider provider;
|
| provider.OnRecordingEnabled();
|
| - AppendProfiles(CallStackProfileParams(CallStackProfileParams::BROWSER_PROCESS,
|
| - CallStackProfileParams::UI_THREAD,
|
| - CallStackProfileParams::PROCESS_STARTUP,
|
| - CallStackProfileParams::PRESERVE_ORDER),
|
| - std::move(profiles));
|
| + CallStackProfileParams params(CallStackProfileParams::BROWSER_PROCESS,
|
| + CallStackProfileParams::UI_THREAD,
|
| + CallStackProfileParams::PROCESS_STARTUP,
|
| + CallStackProfileParams::PRESERVE_ORDER);
|
| + AppendProfiles(¶ms, std::move(profiles));
|
| ChromeUserMetricsExtension uma_proto;
|
| provider.ProvideGeneralMetrics(&uma_proto);
|
|
|
| @@ -559,12 +553,11 @@ TEST_F(CallStackProfileMetricsProviderTest, UnknownModule) {
|
|
|
| CallStackProfileMetricsProvider provider;
|
| provider.OnRecordingEnabled();
|
| - AppendProfiles(
|
| - CallStackProfileParams(CallStackProfileParams::BROWSER_PROCESS,
|
| - CallStackProfileParams::UI_THREAD,
|
| - CallStackProfileParams::PROCESS_STARTUP,
|
| - CallStackProfileParams::MAY_SHUFFLE),
|
| - std::move(profiles));
|
| + CallStackProfileParams params(CallStackProfileParams::BROWSER_PROCESS,
|
| + CallStackProfileParams::UI_THREAD,
|
| + CallStackProfileParams::PROCESS_STARTUP,
|
| + CallStackProfileParams::MAY_SHUFFLE);
|
| + AppendProfiles(¶ms, std::move(profiles));
|
| ChromeUserMetricsExtension uma_proto;
|
| provider.ProvideGeneralMetrics(&uma_proto);
|
|
|
| @@ -593,12 +586,11 @@ TEST_F(CallStackProfileMetricsProviderTest, ProfilesProvidedOnlyOnce) {
|
|
|
| CallStackProfileMetricsProvider provider;
|
| provider.OnRecordingEnabled();
|
| - AppendProfiles(
|
| - CallStackProfileParams(CallStackProfileParams::BROWSER_PROCESS,
|
| - CallStackProfileParams::UI_THREAD,
|
| - CallStackProfileParams::PROCESS_STARTUP,
|
| - CallStackProfileParams::MAY_SHUFFLE),
|
| - std::move(profiles));
|
| + CallStackProfileParams params(CallStackProfileParams::BROWSER_PROCESS,
|
| + CallStackProfileParams::UI_THREAD,
|
| + CallStackProfileParams::PROCESS_STARTUP,
|
| + CallStackProfileParams::MAY_SHUFFLE);
|
| + AppendProfiles(¶ms, std::move(profiles));
|
| ChromeUserMetricsExtension uma_proto;
|
| provider.ProvideGeneralMetrics(&uma_proto);
|
|
|
| @@ -624,12 +616,11 @@ TEST_F(CallStackProfileMetricsProviderTest,
|
|
|
| ASSERT_EQ(1U, profiles.size());
|
|
|
| - AppendProfiles(
|
| - CallStackProfileParams(CallStackProfileParams::BROWSER_PROCESS,
|
| - CallStackProfileParams::UI_THREAD,
|
| - CallStackProfileParams::PROCESS_STARTUP,
|
| - CallStackProfileParams::MAY_SHUFFLE),
|
| - std::move(profiles));
|
| + CallStackProfileParams params(CallStackProfileParams::BROWSER_PROCESS,
|
| + CallStackProfileParams::UI_THREAD,
|
| + CallStackProfileParams::PROCESS_STARTUP,
|
| + CallStackProfileParams::MAY_SHUFFLE);
|
| + AppendProfiles(¶ms, std::move(profiles));
|
|
|
| CallStackProfileMetricsProvider provider;
|
| provider.OnRecordingEnabled();
|
| @@ -652,12 +643,11 @@ TEST_F(CallStackProfileMetricsProviderTest, ProfilesNotProvidedWhileDisabled) {
|
|
|
| CallStackProfileMetricsProvider provider;
|
| provider.OnRecordingDisabled();
|
| - AppendProfiles(
|
| - CallStackProfileParams(CallStackProfileParams::BROWSER_PROCESS,
|
| - CallStackProfileParams::UI_THREAD,
|
| - CallStackProfileParams::PROCESS_STARTUP,
|
| - CallStackProfileParams::MAY_SHUFFLE),
|
| - std::move(profiles));
|
| + CallStackProfileParams params(CallStackProfileParams::BROWSER_PROCESS,
|
| + CallStackProfileParams::UI_THREAD,
|
| + CallStackProfileParams::PROCESS_STARTUP,
|
| + CallStackProfileParams::MAY_SHUFFLE);
|
| + AppendProfiles(¶ms, std::move(profiles));
|
| ChromeUserMetricsExtension uma_proto;
|
| provider.ProvideGeneralMetrics(&uma_proto);
|
|
|
| @@ -670,12 +660,12 @@ TEST_F(CallStackProfileMetricsProviderTest,
|
| ProfilesNotProvidedAfterChangeToDisabled) {
|
| CallStackProfileMetricsProvider provider;
|
| provider.OnRecordingEnabled();
|
| + CallStackProfileParams params(CallStackProfileParams::BROWSER_PROCESS,
|
| + CallStackProfileParams::UI_THREAD,
|
| + CallStackProfileParams::PROCESS_STARTUP,
|
| + CallStackProfileParams::MAY_SHUFFLE);
|
| base::StackSamplingProfiler::CompletedCallback callback =
|
| - CallStackProfileMetricsProvider::GetProfilerCallback(
|
| - CallStackProfileParams(CallStackProfileParams::BROWSER_PROCESS,
|
| - CallStackProfileParams::UI_THREAD,
|
| - CallStackProfileParams::PROCESS_STARTUP,
|
| - CallStackProfileParams::MAY_SHUFFLE));
|
| + CallStackProfileMetricsProvider::GetProfilerCallback(¶ms);
|
| provider.OnRecordingDisabled();
|
|
|
| Profiles profiles = ProfilesFactory()
|
| @@ -683,7 +673,8 @@ TEST_F(CallStackProfileMetricsProviderTest,
|
| .NewSample()
|
| .AddFrame(Frame::kUnknownModuleIndex, 0x1234)
|
| .Build();
|
| - callback.Run(std::move(profiles));
|
| + base::StackSamplingProfiler::SamplingParams sampling_params;
|
| + callback.Run(std::move(profiles), &sampling_params);
|
| ChromeUserMetricsExtension uma_proto;
|
| provider.ProvideGeneralMetrics(&uma_proto);
|
|
|
| @@ -696,12 +687,12 @@ TEST_F(CallStackProfileMetricsProviderTest,
|
| ProfilesNotProvidedAfterChangeToDisabledThenEnabled) {
|
| CallStackProfileMetricsProvider provider;
|
| provider.OnRecordingEnabled();
|
| + CallStackProfileParams params(CallStackProfileParams::BROWSER_PROCESS,
|
| + CallStackProfileParams::UI_THREAD,
|
| + CallStackProfileParams::PROCESS_STARTUP,
|
| + CallStackProfileParams::MAY_SHUFFLE);
|
| base::StackSamplingProfiler::CompletedCallback callback =
|
| - CallStackProfileMetricsProvider::GetProfilerCallback(
|
| - CallStackProfileParams(CallStackProfileParams::BROWSER_PROCESS,
|
| - CallStackProfileParams::UI_THREAD,
|
| - CallStackProfileParams::PROCESS_STARTUP,
|
| - CallStackProfileParams::MAY_SHUFFLE));
|
| + CallStackProfileMetricsProvider::GetProfilerCallback(¶ms);
|
| provider.OnRecordingDisabled();
|
| provider.OnRecordingEnabled();
|
|
|
| @@ -710,7 +701,8 @@ TEST_F(CallStackProfileMetricsProviderTest,
|
| .NewSample()
|
| .AddFrame(Frame::kUnknownModuleIndex, 0x1234)
|
| .Build();
|
| - callback.Run(std::move(profiles));
|
| + base::StackSamplingProfiler::SamplingParams sampling_params;
|
| + callback.Run(std::move(profiles), &sampling_params);
|
| ChromeUserMetricsExtension uma_proto;
|
| provider.ProvideGeneralMetrics(&uma_proto);
|
|
|
| @@ -723,12 +715,12 @@ TEST_F(CallStackProfileMetricsProviderTest,
|
| ProfilesNotProvidedAfterChangeFromDisabled) {
|
| CallStackProfileMetricsProvider provider;
|
| provider.OnRecordingDisabled();
|
| + CallStackProfileParams params(CallStackProfileParams::BROWSER_PROCESS,
|
| + CallStackProfileParams::UI_THREAD,
|
| + CallStackProfileParams::PROCESS_STARTUP,
|
| + CallStackProfileParams::MAY_SHUFFLE);
|
| base::StackSamplingProfiler::CompletedCallback callback =
|
| - CallStackProfileMetricsProvider::GetProfilerCallback(
|
| - CallStackProfileParams(CallStackProfileParams::BROWSER_PROCESS,
|
| - CallStackProfileParams::UI_THREAD,
|
| - CallStackProfileParams::PROCESS_STARTUP,
|
| - CallStackProfileParams::MAY_SHUFFLE));
|
| + CallStackProfileMetricsProvider::GetProfilerCallback(¶ms);
|
| provider.OnRecordingEnabled();
|
|
|
| Profiles profiles = ProfilesFactory()
|
| @@ -736,7 +728,8 @@ TEST_F(CallStackProfileMetricsProviderTest,
|
| .NewSample()
|
| .AddFrame(Frame::kUnknownModuleIndex, 0x1234)
|
| .Build();
|
| - callback.Run(std::move(profiles));
|
| + base::StackSamplingProfiler::SamplingParams sampling_params;
|
| + callback.Run(std::move(profiles), &sampling_params);
|
| ChromeUserMetricsExtension uma_proto;
|
| provider.ProvideGeneralMetrics(&uma_proto);
|
|
|
|
|