Index: base/test/test_suite.cc |
diff --git a/base/test/test_suite.cc b/base/test/test_suite.cc |
index c9bfe9e0f0173558f90130aead0fabe5b8370864..b273e83ad08b1370199485527273579934bc5b11 100644 |
--- a/base/test/test_suite.cc |
+++ b/base/test/test_suite.cc |
@@ -135,8 +135,7 @@ int RunUnitTestsUsingBaseTestSuite(int argc, char **argv) { |
Bind(&TestSuite::Run, Unretained(&test_suite))); |
} |
-TestSuite::TestSuite(int argc, char** argv) |
- : initialized_command_line_(false), created_feature_list_(false) { |
+TestSuite::TestSuite(int argc, char** argv) : initialized_command_line_(false) { |
PreInitialize(); |
InitializeFromCommandLine(argc, argv); |
// Logging must be initialized before any thread has a chance to call logging |
@@ -146,7 +145,7 @@ TestSuite::TestSuite(int argc, char** argv) |
#if defined(OS_WIN) |
TestSuite::TestSuite(int argc, wchar_t** argv) |
- : initialized_command_line_(false), created_feature_list_(false) { |
+ : initialized_command_line_(false) { |
PreInitialize(); |
InitializeFromCommandLine(argc, argv); |
// Logging must be initialized before any thread has a chance to call logging |
@@ -342,13 +341,18 @@ void TestSuite::Initialize() { |
debug::WaitForDebugger(60, true); |
} |
#endif |
- |
// Set up a FeatureList instance, so that code using that API will not hit a |
- // an error that it's not set. If a FeatureList was created in this way (i.e. |
- // one didn't exist previously), it will be cleared in Shutdown() via |
- // ClearInstanceForTesting(). |
- created_feature_list_ = |
- FeatureList::InitializeInstance(std::string(), std::string()); |
+ // an error that it's not set. It will be cleared automatically. |
+ scoped_feature_list_.InitFromCommandLine( |
+ CommandLine::ForCurrentProcess()->GetSwitchValueASCII("enable-features"), |
+ CommandLine::ForCurrentProcess()->GetSwitchValueASCII( |
+ "disable-features")); |
+ // The enable-features and disable-features flags were just slurped into a |
+ // FeatureList, so remove them from the command line. Tests should enable and |
+ // disable features via the ScopedFeatureList API rather than command-line |
+ // flags. |
+ CommandLine::ForCurrentProcess()->RemoveSwitchForTesting("enable-features"); |
+ CommandLine::ForCurrentProcess()->RemoveSwitchForTesting("disable-features"); |
#if defined(OS_IOS) |
InitIOSTestMessageLoop(); |
@@ -412,10 +416,6 @@ void TestSuite::Initialize() { |
void TestSuite::Shutdown() { |
base::debug::StopProfiling(); |
- |
- // Clear the FeatureList that was created by Initialize(). |
- if (created_feature_list_) |
- FeatureList::ClearInstanceForTesting(); |
} |
} // namespace base |