| 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 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 121 // Initialize(). See bug 6436. | 121 // Initialize(). See bug 6436. |
| 122 } | 122 } |
| 123 | 123 |
| 124 | 124 |
| 125 // static | 125 // static |
| 126 bool TestSuite::IsMarkedFlaky(const testing::TestInfo& test) { | 126 bool TestSuite::IsMarkedFlaky(const testing::TestInfo& test) { |
| 127 return strncmp(test.name(), "FLAKY_", 6) == 0; | 127 return strncmp(test.name(), "FLAKY_", 6) == 0; |
| 128 } | 128 } |
| 129 | 129 |
| 130 // static | 130 // static |
| 131 bool TestSuite::IsMarkedFailing(const testing::TestInfo& test) { | |
| 132 return strncmp(test.name(), "FAILS_", 6) == 0; | |
| 133 } | |
| 134 | |
| 135 // static | |
| 136 bool TestSuite::IsMarkedMaybe(const testing::TestInfo& test) { | 131 bool TestSuite::IsMarkedMaybe(const testing::TestInfo& test) { |
| 137 return strncmp(test.name(), "MAYBE_", 6) == 0; | 132 return strncmp(test.name(), "MAYBE_", 6) == 0; |
| 138 } | 133 } |
| 139 | 134 |
| 140 // static | 135 // static |
| 141 bool TestSuite::ShouldIgnoreFailure(const testing::TestInfo& test) { | 136 bool TestSuite::ShouldIgnoreFailure(const testing::TestInfo& test) { |
| 142 if (CommandLine::ForCurrentProcess()->HasSwitch(kStrictFailureHandling)) | 137 if (CommandLine::ForCurrentProcess()->HasSwitch(kStrictFailureHandling)) |
| 143 return false; | 138 return false; |
| 144 return IsMarkedFlaky(test) || IsMarkedFailing(test); | 139 return IsMarkedFlaky(test); |
| 145 } | 140 } |
| 146 | 141 |
| 147 // static | 142 // static |
| 148 bool TestSuite::NonIgnoredFailures(const testing::TestInfo& test) { | 143 bool TestSuite::NonIgnoredFailures(const testing::TestInfo& test) { |
| 149 return test.should_run() && test.result()->Failed() && | 144 return test.should_run() && test.result()->Failed() && |
| 150 !ShouldIgnoreFailure(test); | 145 !ShouldIgnoreFailure(test); |
| 151 } | 146 } |
| 152 | 147 |
| 153 int TestSuite::GetTestCount(TestMatch test_match) { | 148 int TestSuite::GetTestCount(TestMatch test_match) { |
| 154 testing::UnitTest* instance = testing::UnitTest::GetInstance(); | 149 testing::UnitTest* instance = testing::UnitTest::GetInstance(); |
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 202 if (result != 0 && GetTestCount(&TestSuite::NonIgnoredFailures) == 0) | 197 if (result != 0 && GetTestCount(&TestSuite::NonIgnoredFailures) == 0) |
| 203 result = 0; | 198 result = 0; |
| 204 | 199 |
| 205 // Display the number of flaky tests. | 200 // Display the number of flaky tests. |
| 206 int flaky_count = GetTestCount(&TestSuite::IsMarkedFlaky); | 201 int flaky_count = GetTestCount(&TestSuite::IsMarkedFlaky); |
| 207 if (flaky_count) { | 202 if (flaky_count) { |
| 208 printf(" YOU HAVE %d FLAKY %s\n\n", flaky_count, | 203 printf(" YOU HAVE %d FLAKY %s\n\n", flaky_count, |
| 209 flaky_count == 1 ? "TEST" : "TESTS"); | 204 flaky_count == 1 ? "TEST" : "TESTS"); |
| 210 } | 205 } |
| 211 | 206 |
| 212 // Display the number of tests with ignored failures (FAILS). | |
| 213 int failing_count = GetTestCount(&TestSuite::IsMarkedFailing); | |
| 214 if (failing_count) { | |
| 215 printf(" YOU HAVE %d %s with ignored failures (FAILS prefix)\n\n", | |
| 216 failing_count, failing_count == 1 ? "test" : "tests"); | |
| 217 } | |
| 218 | |
| 219 #if defined(OS_MACOSX) | 207 #if defined(OS_MACOSX) |
| 220 // This MUST happen before Shutdown() since Shutdown() tears down | 208 // This MUST happen before Shutdown() since Shutdown() tears down |
| 221 // objects (such as NotificationService::current()) that Cocoa | 209 // objects (such as NotificationService::current()) that Cocoa |
| 222 // objects use to remove themselves as observers. | 210 // objects use to remove themselves as observers. |
| 223 scoped_pool.Recycle(); | 211 scoped_pool.Recycle(); |
| 224 #endif | 212 #endif |
| 225 | 213 |
| 226 Shutdown(); | 214 Shutdown(); |
| 227 | 215 |
| 228 return result; | 216 return result; |
| (...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 300 icu_util::Initialize(); | 288 icu_util::Initialize(); |
| 301 | 289 |
| 302 CatchMaybeTests(); | 290 CatchMaybeTests(); |
| 303 ResetCommandLine(); | 291 ResetCommandLine(); |
| 304 | 292 |
| 305 TestTimeouts::Initialize(); | 293 TestTimeouts::Initialize(); |
| 306 } | 294 } |
| 307 | 295 |
| 308 void TestSuite::Shutdown() { | 296 void TestSuite::Shutdown() { |
| 309 } | 297 } |
| OLD | NEW |