| 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 "base/test/test_suite.h" | 5 #include "base/test/test_suite.h" |
| 6 | 6 |
| 7 #include "base/at_exit.h" | 7 #include "base/at_exit.h" |
| 8 #include "base/base_paths.h" | 8 #include "base/base_paths.h" |
| 9 #include "base/base_switches.h" | 9 #include "base/base_switches.h" |
| 10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
| (...skipping 10 matching lines...) Expand all Loading... |
| 21 #include "base/time.h" | 21 #include "base/time.h" |
| 22 #include "testing/gtest/include/gtest/gtest.h" | 22 #include "testing/gtest/include/gtest/gtest.h" |
| 23 #include "testing/multiprocess_func_list.h" | 23 #include "testing/multiprocess_func_list.h" |
| 24 | 24 |
| 25 #if defined(OS_MACOSX) | 25 #if defined(OS_MACOSX) |
| 26 #include "base/mac/scoped_nsautorelease_pool.h" | 26 #include "base/mac/scoped_nsautorelease_pool.h" |
| 27 #include "base/test/mock_chrome_application_mac.h" | 27 #include "base/test/mock_chrome_application_mac.h" |
| 28 #endif | 28 #endif |
| 29 | 29 |
| 30 #if defined(OS_ANDROID) | 30 #if defined(OS_ANDROID) |
| 31 #include "base/test/test_stub_android.h" | 31 #include "base/test/test_support_android.h" |
| 32 #endif | 32 #endif |
| 33 | 33 |
| 34 #if defined(TOOLKIT_GTK) | 34 #if defined(TOOLKIT_GTK) |
| 35 #include <gtk/gtk.h> | 35 #include <gtk/gtk.h> |
| 36 #endif | 36 #endif |
| 37 | 37 |
| 38 namespace { | 38 namespace { |
| 39 | 39 |
| 40 class MaybeTestDisabler : public testing::EmptyTestEventListener { | 40 class MaybeTestDisabler : public testing::EmptyTestEventListener { |
| 41 public: | 41 public: |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 94 initialized_command_line_ = CommandLine::Init(argc, argv); | 94 initialized_command_line_ = CommandLine::Init(argc, argv); |
| 95 testing::InitGoogleTest(&argc, argv); | 95 testing::InitGoogleTest(&argc, argv); |
| 96 #if defined(OS_LINUX) && defined(USE_AURA) | 96 #if defined(OS_LINUX) && defined(USE_AURA) |
| 97 // When calling native char conversion functions (e.g wrctomb) we need to | 97 // When calling native char conversion functions (e.g wrctomb) we need to |
| 98 // have the locale set. In the absence of such a call the "C" locale is the | 98 // have the locale set. In the absence of such a call the "C" locale is the |
| 99 // default. In the gtk code (below) gtk_init() implicitly sets a locale. | 99 // default. In the gtk code (below) gtk_init() implicitly sets a locale. |
| 100 setlocale(LC_ALL, ""); | 100 setlocale(LC_ALL, ""); |
| 101 #elif defined(TOOLKIT_GTK) | 101 #elif defined(TOOLKIT_GTK) |
| 102 gtk_init_check(&argc, &argv); | 102 gtk_init_check(&argc, &argv); |
| 103 #endif // defined(TOOLKIT_GTK) | 103 #endif // defined(TOOLKIT_GTK) |
| 104 |
| 105 // On Android when building tests as apks, AtExitManager is created in |
| 106 // testing/android/native_test_wrapper.cc before main() is called. |
| 107 #if !defined(ANDROID_APK_TEST_TARGET) |
| 104 if (create_at_exit_manager) | 108 if (create_at_exit_manager) |
| 105 at_exit_manager_.reset(new base::AtExitManager); | 109 at_exit_manager_.reset(new base::AtExitManager); |
| 110 #endif |
| 106 | 111 |
| 107 // Don't add additional code to this function. Instead add it to | 112 // Don't add additional code to this function. Instead add it to |
| 108 // Initialize(). See bug 6436. | 113 // Initialize(). See bug 6436. |
| 109 } | 114 } |
| 110 | 115 |
| 111 | 116 |
| 112 // static | 117 // static |
| 113 bool TestSuite::IsMarkedFlaky(const testing::TestInfo& test) { | 118 bool TestSuite::IsMarkedFlaky(const testing::TestInfo& test) { |
| 114 return strncmp(test.name(), "FLAKY_", 6) == 0; | 119 return strncmp(test.name(), "FLAKY_", 6) == 0; |
| 115 } | 120 } |
| (...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 230 #endif // defined(OS_WIN) | 235 #endif // defined(OS_WIN) |
| 231 } | 236 } |
| 232 | 237 |
| 233 void TestSuite::Initialize() { | 238 void TestSuite::Initialize() { |
| 234 #if defined(OS_MACOSX) | 239 #if defined(OS_MACOSX) |
| 235 // Some of the app unit tests spin runloops. | 240 // Some of the app unit tests spin runloops. |
| 236 mock_cr_app::RegisterMockCrApp(); | 241 mock_cr_app::RegisterMockCrApp(); |
| 237 #endif | 242 #endif |
| 238 | 243 |
| 239 #if defined(OS_ANDROID) | 244 #if defined(OS_ANDROID) |
| 240 InitAndroidTestStub(); | 245 InitAndroidTest(); |
| 241 #endif | 246 #else |
| 242 | |
| 243 // Initialize logging. | 247 // Initialize logging. |
| 244 FilePath exe; | 248 FilePath exe; |
| 245 PathService::Get(base::FILE_EXE, &exe); | 249 PathService::Get(base::FILE_EXE, &exe); |
| 246 FilePath log_filename = exe.ReplaceExtension(FILE_PATH_LITERAL("log")); | 250 FilePath log_filename = exe.ReplaceExtension(FILE_PATH_LITERAL("log")); |
| 247 logging::InitLogging( | 251 logging::InitLogging( |
| 248 log_filename.value().c_str(), | 252 log_filename.value().c_str(), |
| 249 logging::LOG_TO_BOTH_FILE_AND_SYSTEM_DEBUG_LOG, | 253 logging::LOG_TO_BOTH_FILE_AND_SYSTEM_DEBUG_LOG, |
| 250 logging::LOCK_LOG_FILE, | 254 logging::LOCK_LOG_FILE, |
| 251 logging::DELETE_OLD_LOG_FILE, | 255 logging::DELETE_OLD_LOG_FILE, |
| 252 logging::DISABLE_DCHECK_FOR_NON_OFFICIAL_RELEASE_BUILDS); | 256 logging::DISABLE_DCHECK_FOR_NON_OFFICIAL_RELEASE_BUILDS); |
| 253 // We want process and thread IDs because we may have multiple processes. | 257 // We want process and thread IDs because we may have multiple processes. |
| 254 // Note: temporarily enabled timestamps in an effort to catch bug 6361. | 258 // Note: temporarily enabled timestamps in an effort to catch bug 6361. |
| 255 logging::SetLogItems(true, true, true, true); | 259 logging::SetLogItems(true, true, true, true); |
| 260 #endif // else defined(OS_ANDROID) |
| 256 | 261 |
| 257 CHECK(base::EnableInProcessStackDumping()); | 262 CHECK(base::EnableInProcessStackDumping()); |
| 258 #if defined(OS_WIN) | 263 #if defined(OS_WIN) |
| 259 // Make sure we run with high resolution timer to minimize differences | 264 // Make sure we run with high resolution timer to minimize differences |
| 260 // between production code and test code. | 265 // between production code and test code. |
| 261 base::Time::EnableHighResolutionTimer(true); | 266 base::Time::EnableHighResolutionTimer(true); |
| 262 #endif // defined(OS_WIN) | 267 #endif // defined(OS_WIN) |
| 263 | 268 |
| 264 // In some cases, we do not want to see standard error dialogs. | 269 // In some cases, we do not want to see standard error dialogs. |
| 265 if (!base::debug::BeingDebugged() && | 270 if (!base::debug::BeingDebugged() && |
| 266 !CommandLine::ForCurrentProcess()->HasSwitch("show-error-dialogs")) { | 271 !CommandLine::ForCurrentProcess()->HasSwitch("show-error-dialogs")) { |
| 267 SuppressErrorDialogs(); | 272 SuppressErrorDialogs(); |
| 268 base::debug::SetSuppressDebugUI(true); | 273 base::debug::SetSuppressDebugUI(true); |
| 269 logging::SetLogAssertHandler(UnitTestAssertHandler); | 274 logging::SetLogAssertHandler(UnitTestAssertHandler); |
| 270 } | 275 } |
| 271 | 276 |
| 272 #if !defined(OS_ANDROID) | |
| 273 // TODO(michaelbai): The icu can not be compiled in Android now, this should | |
| 274 // be enabled once icu is ready. http://b/5406077. | |
| 275 icu_util::Initialize(); | 277 icu_util::Initialize(); |
| 276 #endif | |
| 277 | 278 |
| 278 CatchMaybeTests(); | 279 CatchMaybeTests(); |
| 279 ResetCommandLine(); | 280 ResetCommandLine(); |
| 280 | 281 |
| 281 TestTimeouts::Initialize(); | 282 TestTimeouts::Initialize(); |
| 282 } | 283 } |
| 283 | 284 |
| 284 void TestSuite::Shutdown() { | 285 void TestSuite::Shutdown() { |
| 285 } | 286 } |
| OLD | NEW |