Chromium Code Reviews| Index: base/metrics/field_trial_unittest.cc |
| diff --git a/base/metrics/field_trial_unittest.cc b/base/metrics/field_trial_unittest.cc |
| index caa00e814cbf9dcfc3d918bf3b8ea8d20b147a6e..c09ab05c60cb15929df9338d56f38b2a4adf98ee 100644 |
| --- a/base/metrics/field_trial_unittest.cc |
| +++ b/base/metrics/field_trial_unittest.cc |
| @@ -6,14 +6,18 @@ |
| #include <stddef.h> |
| +#include "base/base_switches.h" |
| #include "base/build_time.h" |
| +#include "base/feature_list.h" |
| #include "base/macros.h" |
| +#include "base/memory/ptr_util.h" |
| #include "base/message_loop/message_loop.h" |
| #include "base/rand_util.h" |
| #include "base/run_loop.h" |
| #include "base/strings/string_number_conversions.h" |
| #include "base/strings/stringprintf.h" |
| #include "base/test/gtest_util.h" |
| +#include "base/test/mock_entropy_provider.h" |
| #include "testing/gtest/include/gtest/gtest.h" |
| namespace base { |
| @@ -1132,4 +1136,33 @@ TEST(FieldTrialDeathTest, OneTimeRandomizedTrialWithoutFieldTrialList) { |
| ""); |
| } |
| +TEST(FieldTrialListTest, TestCopyFieldTrialStateToFlags) { |
| + base::FieldTrialList field_trial_list( |
| + base::MakeUnique<base::MockEntropyProvider>()); |
| + base::FieldTrialList::CreateFieldTrial("Trial1", "Group1"); |
| + base::FilePath test_file_path = base::FilePath(FILE_PATH_LITERAL("Program")); |
| + base::CommandLine cmd_line = base::CommandLine(test_file_path); |
| + |
| + std::unique_ptr<base::FeatureList> feature_list(new base::FeatureList); |
| + feature_list->InitializeFromCommandLine("ShareFieldTrialStateViaSharedMemory", |
| + ""); |
| + base::FeatureList::ClearInstanceForTesting(); |
| + base::FeatureList::SetInstance(std::move(feature_list)); |
| + |
| + std::unique_ptr<base::SharedMemory> field_trial_state = |
| + base::FieldTrialList::CopyFieldTrialStateToFlags("field-trial-handle", |
| + &cmd_line); |
| + |
| +#if defined(OS_WIN) |
| + std::string field_trial_state_string( |
| + static_cast<char*>(field_trial_state.get()->memory())); |
|
Alexei Svitkine (slow)
2016/10/06 21:39:28
Nit: Just inline this into the EXPECT_EQ
lawrencewu
2016/10/07 15:07:21
Done.
|
| + |
| + EXPECT_EQ("Trial1/Group1/", field_trial_state_string); |
| + EXPECT_TRUE(cmd_line.HasSwitch("field-trial-handle")); |
| +#else |
| + EXPECT_TRUE(field_trial_state.get() == nullptr); |
| + EXPECT_TRUE(cmd_line.HasSwitch(switches::kForceFieldTrials)); |
| +#endif |
| +} |
| + |
| } // namespace base |