| Index: base/test/test_suite.cc
|
| diff --git a/base/test/test_suite.cc b/base/test/test_suite.cc
|
| index 7211ff5a4b1007c99faae5865c76e06871ac3a4e..81ea744e5088545126dd56bd9bc44dc37d50454f 100644
|
| --- a/base/test/test_suite.cc
|
| +++ b/base/test/test_suite.cc
|
| @@ -100,14 +100,15 @@ int RunUnitTestsUsingBaseTestSuite(int argc, char **argv) {
|
| Bind(&TestSuite::Run, Unretained(&test_suite)));
|
| }
|
|
|
| -TestSuite::TestSuite(int argc, char** argv) : initialized_command_line_(false) {
|
| +TestSuite::TestSuite(int argc, char** argv)
|
| + : initialized_command_line_(false), created_feature_list_(false) {
|
| PreInitialize();
|
| InitializeFromCommandLine(argc, argv);
|
| }
|
|
|
| #if defined(OS_WIN)
|
| TestSuite::TestSuite(int argc, wchar_t** argv)
|
| - : initialized_command_line_(false) {
|
| + : initialized_command_line_(false), created_feature_list_(false) {
|
| PreInitialize();
|
| InitializeFromCommandLine(argc, argv);
|
| }
|
| @@ -226,15 +227,8 @@ int TestSuite::Run() {
|
| test_listener_ios::RegisterTestEndListener();
|
| #endif
|
|
|
| - // Set up a FeatureList instance, so that code using that API will not hit a
|
| - // an error that it's not set. Cleared by ClearInstanceForTesting() below.
|
| - base::FeatureList::SetInstance(WrapUnique(new base::FeatureList));
|
| -
|
| int result = RUN_ALL_TESTS();
|
|
|
| - // Clear the FeatureList that was registered above.
|
| - FeatureList::ClearInstanceForTesting();
|
| -
|
| #if defined(OS_MACOSX)
|
| // This MUST happen before Shutdown() since Shutdown() tears down
|
| // objects (such as NotificationService::current()) that Cocoa
|
| @@ -296,6 +290,13 @@ void TestSuite::Initialize() {
|
| }
|
| #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());
|
| +
|
| #if defined(OS_IOS)
|
| InitIOSTestMessageLoop();
|
| #endif // OS_IOS
|
| @@ -364,6 +365,9 @@ void TestSuite::Initialize() {
|
| }
|
|
|
| void TestSuite::Shutdown() {
|
| + // Clear the FeatureList that was created by Initialize().
|
| + if (created_feature_list_)
|
| + FeatureList::ClearInstanceForTesting();
|
| }
|
|
|
| } // namespace base
|
|
|