OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include <cmath> | 5 #include <cmath> |
6 #include <limits> | 6 #include <limits> |
7 #include <numeric> | 7 #include <numeric> |
8 | 8 |
9 #include "base/basictypes.h" | 9 #include "base/basictypes.h" |
10 #include "base/guid.h" | 10 #include "base/guid.h" |
(...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
193 scoped_refptr<base::FieldTrial> trials[] = { | 193 scoped_refptr<base::FieldTrial> trials[] = { |
194 base::FieldTrialList::FactoryGetFieldTrial("one", 100, "default", | 194 base::FieldTrialList::FactoryGetFieldTrial("one", 100, "default", |
195 base::FieldTrialList::kNoExpirationYear, 1, 1, NULL), | 195 base::FieldTrialList::kNoExpirationYear, 1, 1, NULL), |
196 base::FieldTrialList::FactoryGetFieldTrial("two", 100, "default", | 196 base::FieldTrialList::FactoryGetFieldTrial("two", 100, "default", |
197 base::FieldTrialList::kNoExpirationYear, 1, 1, NULL) }; | 197 base::FieldTrialList::kNoExpirationYear, 1, 1, NULL) }; |
198 | 198 |
199 for (size_t i = 0; i < arraysize(trials); ++i) { | 199 for (size_t i = 0; i < arraysize(trials); ++i) { |
200 trials[i]->UseOneTimeRandomization(); | 200 trials[i]->UseOneTimeRandomization(); |
201 | 201 |
202 for (int j = 0; j < 100; ++j) | 202 for (int j = 0; j < 100; ++j) |
203 trials[i]->AppendGroup("", 1); | 203 trials[i]->AppendGroup(std::string(), 1); |
204 } | 204 } |
205 | 205 |
206 // The trials are most likely to give different results since they have | 206 // The trials are most likely to give different results since they have |
207 // different names. | 207 // different names. |
208 EXPECT_NE(trials[0]->group(), trials[1]->group()); | 208 EXPECT_NE(trials[0]->group(), trials[1]->group()); |
209 EXPECT_NE(trials[0]->group_name(), trials[1]->group_name()); | 209 EXPECT_NE(trials[0]->group_name(), trials[1]->group_name()); |
210 } | 210 } |
211 | 211 |
212 TEST_F(EntropyProviderTest, UseOneTimeRandomizationPermuted) { | 212 TEST_F(EntropyProviderTest, UseOneTimeRandomizationPermuted) { |
213 // Simply asserts that two trials using one-time randomization | 213 // Simply asserts that two trials using one-time randomization |
214 // that have different names, normally generate different results. | 214 // that have different names, normally generate different results. |
215 // | 215 // |
216 // Note that depending on the one-time random initialization, they | 216 // Note that depending on the one-time random initialization, they |
217 // _might_ actually give the same result, but we know that given | 217 // _might_ actually give the same result, but we know that given |
218 // the particular client_id we use for unit tests they won't. | 218 // the particular client_id we use for unit tests they won't. |
219 base::FieldTrialList field_trial_list( | 219 base::FieldTrialList field_trial_list( |
220 new PermutedEntropyProvider(1234, kMaxLowEntropySize)); | 220 new PermutedEntropyProvider(1234, kMaxLowEntropySize)); |
221 scoped_refptr<base::FieldTrial> trials[] = { | 221 scoped_refptr<base::FieldTrial> trials[] = { |
222 base::FieldTrialList::FactoryGetFieldTrial("one", 100, "default", | 222 base::FieldTrialList::FactoryGetFieldTrial("one", 100, "default", |
223 base::FieldTrialList::kNoExpirationYear, 1, 1, NULL), | 223 base::FieldTrialList::kNoExpirationYear, 1, 1, NULL), |
224 base::FieldTrialList::FactoryGetFieldTrial("two", 100, "default", | 224 base::FieldTrialList::FactoryGetFieldTrial("two", 100, "default", |
225 base::FieldTrialList::kNoExpirationYear, 1, 1, NULL) }; | 225 base::FieldTrialList::kNoExpirationYear, 1, 1, NULL) }; |
226 | 226 |
227 for (size_t i = 0; i < arraysize(trials); ++i) { | 227 for (size_t i = 0; i < arraysize(trials); ++i) { |
228 trials[i]->UseOneTimeRandomization(); | 228 trials[i]->UseOneTimeRandomization(); |
229 | 229 |
230 for (int j = 0; j < 100; ++j) | 230 for (int j = 0; j < 100; ++j) |
231 trials[i]->AppendGroup("", 1); | 231 trials[i]->AppendGroup(std::string(), 1); |
232 } | 232 } |
233 | 233 |
234 // The trials are most likely to give different results since they have | 234 // The trials are most likely to give different results since they have |
235 // different names. | 235 // different names. |
236 EXPECT_NE(trials[0]->group(), trials[1]->group()); | 236 EXPECT_NE(trials[0]->group(), trials[1]->group()); |
237 EXPECT_NE(trials[0]->group_name(), trials[1]->group_name()); | 237 EXPECT_NE(trials[0]->group_name(), trials[1]->group_name()); |
238 } | 238 } |
239 | 239 |
240 TEST_F(EntropyProviderTest, SHA1Entropy) { | 240 TEST_F(EntropyProviderTest, SHA1Entropy) { |
241 const double results[] = { GenerateSHA1Entropy("hi", "1"), | 241 const double results[] = { GenerateSHA1Entropy("hi", "1"), |
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
329 ++count; | 329 ++count; |
330 } | 330 } |
331 | 331 |
332 ASSERT_LT(count, kMaxAttempts) << "Expected average was " << | 332 ASSERT_LT(count, kMaxAttempts) << "Expected average was " << |
333 kExpectedAverage << ", average ended at " << cumulative_average << | 333 kExpectedAverage << ", average ended at " << cumulative_average << |
334 ", for trial " << kTestTrialNames[i]; | 334 ", for trial " << kTestTrialNames[i]; |
335 } | 335 } |
336 } | 336 } |
337 | 337 |
338 } // namespace metrics | 338 } // namespace metrics |
OLD | NEW |