From 4564361c750a8a898fa4ad5d8eba1be501bf5ab9 Mon Sep 17 00:00:00 2001 From: "jam@chromium.org" Date: Mon, 23 Apr 2012 23:11:57 +0000 Subject: Add a "--silent" flag to our test suite to disable gtest output. This clears up the test logs when running the ChromeMain browsertests. BUG=124645 Review URL: https://chromiumcodereview.appspot.com/10199007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@133560 0039d316-1c4b-4281-b951-d872f2087c98 --- base/test/test_suite.cc | 33 ++++++++++++++++++++++----------- base/test/test_suite.h | 3 +++ 2 files changed, 25 insertions(+), 11 deletions(-) (limited to 'base/test') 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 -- cgit v1.1