diff options
-rw-r--r-- | base/test/test_suite.cc | 33 | ||||
-rw-r--r-- | base/test/test_suite.h | 3 | ||||
-rw-r--r-- | chrome/browser/chrome_main_browsertest.cc | 2 |
3 files changed, 27 insertions, 11 deletions
diff --git a/base/test/test_suite.cc b/base/test/test_suite.cc index a1af2c5..dba5063 100644 --- a/base/test/test_suite.cc +++ b/base/test/test_suite.cc @@ -70,6 +70,7 @@ class TestClientInitializer : public testing::EmptyTestEventListener { } // namespace const char TestSuite::kStrictFailureHandling[] = "strict_failure_handling"; +const char TestSuite::kSilent[] = "silent"; TestSuite::TestSuite(int argc, char** argv) : initialized_command_line_(false) { PreInitialize(argc, argv, true); @@ -176,6 +177,14 @@ int TestSuite::Run() { std::string client_func = CommandLine::ForCurrentProcess()->GetSwitchValueASCII( switches::kTestChildProcess); + + bool silent = CommandLine::ForCurrentProcess()->HasSwitch(kSilent); + if (silent) { + testing::TestEventListeners& listeners = + testing::UnitTest::GetInstance()->listeners(); + delete listeners.Release(listeners.default_result_printer()); + } + // Check to see if we are being run as a client process. if (!client_func.empty()) return multi_process_function_list::InvokeChildProcessTest(client_func); @@ -185,18 +194,20 @@ int TestSuite::Run() { if (result != 0 && GetTestCount(&TestSuite::NonIgnoredFailures) == 0) result = 0; - // Display the number of flaky tests. - int flaky_count = GetTestCount(&TestSuite::IsMarkedFlaky); - if (flaky_count) { - printf(" YOU HAVE %d FLAKY %s\n\n", flaky_count, - flaky_count == 1 ? "TEST" : "TESTS"); - } + if (!silent) { + // Display the number of flaky tests. + int flaky_count = GetTestCount(&TestSuite::IsMarkedFlaky); + if (flaky_count) { + printf(" YOU HAVE %d FLAKY %s\n\n", flaky_count, + flaky_count == 1 ? "TEST" : "TESTS"); + } - // Display the number of tests with ignored failures (FAILS). - int failing_count = GetTestCount(&TestSuite::IsMarkedFailing); - if (failing_count) { - printf(" YOU HAVE %d %s with ignored failures (FAILS prefix)\n\n", - failing_count, failing_count == 1 ? "test" : "tests"); + // Display the number of tests with ignored failures (FAILS). + int failing_count = GetTestCount(&TestSuite::IsMarkedFailing); + if (failing_count) { + printf(" YOU HAVE %d %s with ignored failures (FAILS prefix)\n\n", + failing_count, failing_count == 1 ? "test" : "tests"); + } } #if defined(OS_MACOSX) diff --git a/base/test/test_suite.h b/base/test/test_suite.h index 2b0e9ce..889e55f 100644 --- a/base/test/test_suite.h +++ b/base/test/test_suite.h @@ -59,6 +59,9 @@ class TestSuite { // process exit code. static const char kStrictFailureHandling[]; + // A command-line flag that silences all gtest output. + static const char kSilent[]; + protected: // This constructor is only accessible to specialized test suite // implementations which need to control the creation of an AtExitManager diff --git a/chrome/browser/chrome_main_browsertest.cc b/chrome/browser/chrome_main_browsertest.cc index b34080a..888079c 100644 --- a/chrome/browser/chrome_main_browsertest.cc +++ b/chrome/browser/chrome_main_browsertest.cc @@ -8,6 +8,7 @@ #include "base/file_util.h" #include "base/path_service.h" #include "base/process_util.h" +#include "base/test/test_suite.h" #include "chrome/browser/ui/browser.h" #include "chrome/browser/ui/browser_list.h" #include "chrome/common/chrome_notification_types.h" @@ -50,6 +51,7 @@ class ChromeMainTest : public InProcessBrowserTest { new_command_line_.AppendSwitchASCII( test_launcher::kGTestFilterFlag, test_launcher::kEmptyTestName); + new_command_line_.AppendSwitch(TestSuite::kSilent); } void Relaunch() { |