diff options
-rw-r--r-- | base/metrics/field_trial.cc | 4 | ||||
-rw-r--r-- | base/metrics/field_trial_unittest.cc | 36 |
2 files changed, 36 insertions, 4 deletions
diff --git a/base/metrics/field_trial.cc b/base/metrics/field_trial.cc index 3a563aa..458ff4d 100644 --- a/base/metrics/field_trial.cc +++ b/base/metrics/field_trial.cc @@ -178,10 +178,6 @@ void FieldTrial::SetForced() { // first come first served, e.g., command line switch has precedence. if (forced_) return; - // Explicit forcing should only be for cases where we want to set the group - // probabilities before the hard coded field trial setup is executed. So - // there must have been at least one non-default group appended at that point. - DCHECK_GT(next_group_number_, kDefaultGroupNumber + 1); // And we must finalize the group choice before we mark ourselves as forced. FinalizeGroupChoice(); diff --git a/base/metrics/field_trial_unittest.cc b/base/metrics/field_trial_unittest.cc index 1ab8467..a77b5ef 100644 --- a/base/metrics/field_trial_unittest.cc +++ b/base/metrics/field_trial_unittest.cc @@ -588,6 +588,42 @@ TEST_F(FieldTrialTest, SetForced) { EXPECT_EQ(forced_group, would_win_group); } +TEST_F(FieldTrialTest, SetForcedDefaultOnly) { + const char kTrialName[] = "SetForcedDefaultOnly"; + ASSERT_FALSE(FieldTrialList::TrialExists(kTrialName)); + + int default_group = -1; + FieldTrial* trial = + FieldTrialList::FactoryGetFieldTrial(kTrialName, 100, kDefaultGroupName, + next_year_, 12, 31, &default_group); + trial->SetForced(); + + trial = FieldTrialList::FactoryGetFieldTrial(kTrialName, 100, + kDefaultGroupName, next_year_, + 12, 31, NULL); + EXPECT_EQ(default_group, trial->group()); + EXPECT_EQ(kDefaultGroupName, trial->group_name()); +} + +TEST_F(FieldTrialTest, SetForcedDefaultWithExtraGroup) { + const char kTrialName[] = "SetForcedDefaultWithExtraGroup"; + ASSERT_FALSE(FieldTrialList::TrialExists(kTrialName)); + + int default_group = -1; + FieldTrial* trial = + FieldTrialList::FactoryGetFieldTrial(kTrialName, 100, kDefaultGroupName, + next_year_, 12, 31, &default_group); + trial->SetForced(); + + trial = FieldTrialList::FactoryGetFieldTrial(kTrialName, 100, + kDefaultGroupName, next_year_, + 12, 31, NULL); + const int extra_group = trial->AppendGroup("Extra", 100); + EXPECT_EQ(default_group, trial->group()); + EXPECT_NE(extra_group, trial->group()); + EXPECT_EQ(kDefaultGroupName, trial->group_name()); +} + TEST_F(FieldTrialTest, Observe) { const char kTrialName[] = "TrialToObserve1"; const char kSecondaryGroupName[] = "SecondaryGroup"; |