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 b2d01a6574cca63fbc25e4401c1839426062d0b2..50755d18cc37410c914aa71062a59511e40bc865 100644 |
--- a/components/metrics/call_stack_profile_metrics_provider_unittest.cc |
+++ b/components/metrics/call_stack_profile_metrics_provider_unittest.cc |
@@ -4,9 +4,11 @@ |
#include "components/metrics/call_stack_profile_metrics_provider.h" |
+#include "base/metrics/field_trial.h" |
#include "base/profiler/stack_sampling_profiler.h" |
#include "base/strings/string_number_conversions.h" |
#include "components/metrics/proto/chrome_user_metrics_extension.pb.h" |
+#include "components/variations/entropy_provider.h" |
#include "testing/gtest/include/gtest/gtest.h" |
using base::StackSamplingProfiler; |
@@ -17,8 +19,33 @@ using Sample = StackSamplingProfiler::Sample; |
namespace metrics { |
+// This test fixture enables the field trial that |
+// CallStackProfileMetricsProvider depends on to report profiles. |
+class CallStackProfileMetricsProviderTest : public testing::Test { |
+ public: |
+ CallStackProfileMetricsProviderTest() |
+ : field_trial_list_(new base::FieldTrialList( |
+ new metrics::SHA1EntropyProvider("foo"))) { |
+ base::FieldTrialList::CreateFieldTrial( |
+ FieldTrialState::kFieldTrialName, |
+ FieldTrialState::kReportProfilesGroupName); |
+ } |
+ |
+ ~CallStackProfileMetricsProviderTest() override {} |
+ |
+ private: |
+ // Exposes field trial/group names from the CallStackProfileMetricsProvider. |
+ class FieldTrialState : public CallStackProfileMetricsProvider { |
+ public: |
+ using CallStackProfileMetricsProvider::kFieldTrialName; |
+ using CallStackProfileMetricsProvider::kReportProfilesGroupName; |
+ }; |
+ |
+ const scoped_ptr<base::FieldTrialList> field_trial_list_; |
+}; |
+ |
// Checks that all properties from multiple profiles are filled as expected. |
-TEST(CallStackProfileMetricsProviderTest, MultipleProfiles) { |
+TEST_F(CallStackProfileMetricsProviderTest, MultipleProfiles) { |
const uintptr_t module1_base_address = 0x1000; |
const uintptr_t module2_base_address = 0x2000; |
const uintptr_t module3_base_address = 0x3000; |
@@ -229,7 +256,7 @@ TEST(CallStackProfileMetricsProviderTest, MultipleProfiles) { |
// Checks that all duplicate samples are collapsed with |
// preserve_sample_ordering = false. |
-TEST(CallStackProfileMetricsProviderTest, RepeatedStacksUnordered) { |
+TEST_F(CallStackProfileMetricsProviderTest, RepeatedStacksUnordered) { |
const uintptr_t module_base_address = 0x1000; |
const Module modules[] = { |
@@ -305,7 +332,7 @@ TEST(CallStackProfileMetricsProviderTest, RepeatedStacksUnordered) { |
// Checks that only contiguous duplicate samples are collapsed with |
// preserve_sample_ordering = true. |
-TEST(CallStackProfileMetricsProviderTest, RepeatedStacksOrdered) { |
+TEST_F(CallStackProfileMetricsProviderTest, RepeatedStacksOrdered) { |
const uintptr_t module_base_address = 0x1000; |
const Module modules[] = { |
@@ -379,9 +406,8 @@ TEST(CallStackProfileMetricsProviderTest, RepeatedStacksOrdered) { |
} |
} |
- |
// Checks that unknown modules produce an empty Entry. |
-TEST(CallStackProfileMetricsProviderTest, UnknownModule) { |
+TEST_F(CallStackProfileMetricsProviderTest, UnknownModule) { |
const Frame frame(reinterpret_cast<const void*>(0x1000), |
Frame::kUnknownModuleIndex); |