| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/launcher/unit_test_launcher.h" | 5 #include "base/test/launcher/unit_test_launcher.h" |
| 6 | 6 |
| 7 #include "base/base_switches.h" | 7 #include "base/base_switches.h" |
| 8 #include "base/bind.h" | 8 #include "base/bind.h" |
| 9 #include "base/callback_helpers.h" | 9 #include "base/callback_helpers.h" |
| 10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
| (...skipping 13 matching lines...) Expand all Loading... |
| 24 #include "base/test/gtest_xml_util.h" | 24 #include "base/test/gtest_xml_util.h" |
| 25 #include "base/test/launcher/test_launcher.h" | 25 #include "base/test/launcher/test_launcher.h" |
| 26 #include "base/test/test_switches.h" | 26 #include "base/test/test_switches.h" |
| 27 #include "base/test/test_timeouts.h" | 27 #include "base/test/test_timeouts.h" |
| 28 #include "base/third_party/dynamic_annotations/dynamic_annotations.h" | 28 #include "base/third_party/dynamic_annotations/dynamic_annotations.h" |
| 29 #include "base/threading/thread_checker.h" | 29 #include "base/threading/thread_checker.h" |
| 30 #include "base/threading/thread_task_runner_handle.h" | 30 #include "base/threading/thread_task_runner_handle.h" |
| 31 #include "build/build_config.h" | 31 #include "build/build_config.h" |
| 32 #include "testing/gtest/include/gtest/gtest.h" | 32 #include "testing/gtest/include/gtest/gtest.h" |
| 33 | 33 |
| 34 #if defined(OS_POSIX) |
| 35 #include "base/files/file_descriptor_watcher_posix.h" |
| 36 #endif |
| 37 |
| 34 namespace base { | 38 namespace base { |
| 35 | 39 |
| 36 namespace { | 40 namespace { |
| 37 | 41 |
| 38 // This constant controls how many tests are run in a single batch by default. | 42 // This constant controls how many tests are run in a single batch by default. |
| 39 const size_t kDefaultTestBatchLimit = 10; | 43 const size_t kDefaultTestBatchLimit = 10; |
| 40 | 44 |
| 41 const char kHelpFlag[] = "help"; | 45 const char kHelpFlag[] = "help"; |
| 42 | 46 |
| 43 // Flag to run all tests in a single process. | 47 // Flag to run all tests in a single process. |
| (...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 222 return 1; | 226 return 1; |
| 223 | 227 |
| 224 fprintf(stdout, | 228 fprintf(stdout, |
| 225 "IMPORTANT DEBUGGING NOTE: batches of tests are run inside their\n" | 229 "IMPORTANT DEBUGGING NOTE: batches of tests are run inside their\n" |
| 226 "own process. For debugging a test inside a debugger, use the\n" | 230 "own process. For debugging a test inside a debugger, use the\n" |
| 227 "--gtest_filter=<your_test_name> flag along with\n" | 231 "--gtest_filter=<your_test_name> flag along with\n" |
| 228 "--single-process-tests.\n"); | 232 "--single-process-tests.\n"); |
| 229 fflush(stdout); | 233 fflush(stdout); |
| 230 | 234 |
| 231 MessageLoopForIO message_loop; | 235 MessageLoopForIO message_loop; |
| 236 #if defined(OS_POSIX) |
| 237 FileDescriptorWatcher file_descriptor_watcher(&message_loop); |
| 238 #endif |
| 232 | 239 |
| 233 DefaultUnitTestPlatformDelegate platform_delegate; | 240 DefaultUnitTestPlatformDelegate platform_delegate; |
| 234 UnitTestLauncherDelegate delegate( | 241 UnitTestLauncherDelegate delegate( |
| 235 &platform_delegate, batch_limit, use_job_objects); | 242 &platform_delegate, batch_limit, use_job_objects); |
| 236 base::TestLauncher launcher(&delegate, default_jobs); | 243 base::TestLauncher launcher(&delegate, default_jobs); |
| 237 bool success = launcher.Run(); | 244 bool success = launcher.Run(); |
| 238 | 245 |
| 239 fprintf(stdout, "Tests took %" PRId64 " seconds.\n", | 246 fprintf(stdout, "Tests took %" PRId64 " seconds.\n", |
| 240 (base::TimeTicks::Now() - start_time).InSeconds()); | 247 (base::TimeTicks::Now() - start_time).InSeconds()); |
| 241 fflush(stdout); | 248 fflush(stdout); |
| (...skipping 385 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 627 TestLauncher* test_launcher, | 634 TestLauncher* test_launcher, |
| 628 const std::vector<std::string>& test_names) { | 635 const std::vector<std::string>& test_names) { |
| 629 ThreadTaskRunnerHandle::Get()->PostTask( | 636 ThreadTaskRunnerHandle::Get()->PostTask( |
| 630 FROM_HERE, | 637 FROM_HERE, |
| 631 Bind(&RunUnitTestsSerially, test_launcher, platform_delegate_, test_names, | 638 Bind(&RunUnitTestsSerially, test_launcher, platform_delegate_, test_names, |
| 632 use_job_objects_ ? TestLauncher::USE_JOB_OBJECTS : 0)); | 639 use_job_objects_ ? TestLauncher::USE_JOB_OBJECTS : 0)); |
| 633 return test_names.size(); | 640 return test_names.size(); |
| 634 } | 641 } |
| 635 | 642 |
| 636 } // namespace base | 643 } // namespace base |
| OLD | NEW |