1 /** 2 Copyright: Copyright (c) 2018, Joakim Brännström. All rights reserved. 3 License: MPL-2 4 Author: Joakim Brännström (joakim.brannstrom@gmx.com) 5 6 This Source Code Form is subject to the terms of the Mozilla Public License, 7 v.2.0. If a copy of the MPL was not distributed with this file, You can obtain 8 one at http://mozilla.org/MPL/2.0/. 9 10 #SPC-track_gtest 11 */ 12 module dextool.plugin.mutate.backend.test_mutant.gtest_post_analyze; 13 14 import logger = std.experimental.logger; 15 import std.array : empty; 16 import std.exception : collectException; 17 import std.range : isInputRange, isOutputRange; 18 19 import my.set; 20 21 import dextool.plugin.mutate.backend.test_mutant.test_case_analyze : GatherTestCase; 22 import dextool.plugin.mutate.backend.type : TestCase; 23 import dextool.type : AbsolutePath; 24 25 /** Parse input for google test cases. 26 Params: 27 r = range that is chunked by line 28 sink = an output that accepts values of type TestCase via `put`. 29 */ 30 struct GtestParser { 31 import std.regex : regex, matchFirst, matchAll; 32 33 private { 34 // example: [==========] Running 35 const re_delim = regex(`.*?\[=*\]`); 36 // example: [ RUN ] PassingTest.PassingTest1 37 // example: +ull)m[ RUN ] ADeathTest.ShouldRunFirst 38 const re_run_block = regex(`.*?\[\s*RUN\s*\]\s*(?P<tc>[a-zA-Z0-9_./]*)`); 39 // example: [ FAILED ] NonfatalFailureTest.EscapesStringOperands 40 const re_failed_block = regex(`.*?\[\s*FAILED\s*\]\s*(?P<tc>[a-zA-Z0-9_./]*)`); 41 42 StateData data; 43 } 44 45 private string testCaseName(string testCase) @safe pure nothrow const @nogc { 46 import std..string : lastIndexOf; 47 48 // pessimistic merge of test case names such that parameterized are 49 // grouped by their last separation. 50 51 try { 52 const idx = lastIndexOf(testCase, '/'); 53 54 if (idx == -1) { 55 return testCase; 56 } 57 return testCase[0 .. idx]; 58 } catch (Exception e) { 59 } 60 61 return testCase; 62 } 63 64 void process(T)(T line, ref GatherTestCase report) { 65 auto run_block_match = matchAll(line, re_run_block); 66 auto failed_block_match = matchAll(line, re_failed_block); 67 auto delim_match = matchFirst(line, re_delim); 68 data.hasRunBlock = !run_block_match.empty; 69 data.hasFailedBlock = !failed_block_match.empty; 70 data.hasDelim = !delim_match.empty; 71 72 if (data.hasDelim) { 73 final switch (data.delim) { 74 case DelimState.unknown: 75 data.delim = DelimState.start; 76 break; 77 case DelimState.start: 78 data.delim = DelimState.stop; 79 break; 80 case DelimState.stop: 81 data.delim = DelimState.start; 82 data.last_run = null; 83 break; 84 } 85 } 86 87 if (data.hasRunBlock && data.delim == DelimState.stop && !data.last_run.empty) { 88 /// Last test that was executed in a RUN block segfaulted. 89 report.reportFailed(TestCase(testCaseName(data.last_run), data.fail_msg_file)); 90 } 91 92 if (data.hasRunBlock) { 93 // force it to a start so failed messages can be found 94 data.delim = DelimState.start; 95 96 foreach (m; run_block_match) { 97 data.last_run = m["tc"].idup; 98 report.reportFound(TestCase(testCaseName(data.last_run))); 99 } 100 } 101 102 if (data.hasFailedBlock && data.delim == DelimState.start) { 103 foreach (m; failed_block_match) { 104 if (m["tc"].length == 0) 105 continue; 106 report.reportFailed(TestCase(testCaseName(m["tc"].idup), data.fail_msg_file)); 107 // the best we can do for now is for the first failed test case. 108 // May improve in the future. 109 } 110 data.fail_msg_file = null; 111 data.last_run = null; 112 } 113 } 114 115 void finalize(ref GatherTestCase report) @safe nothrow { 116 final switch (data.delim) { 117 case DelimState.unknown: 118 goto case; 119 case DelimState.start: 120 if (!data.last_run.empty) { 121 report.reportFailed(TestCase(testCaseName(data.last_run), data.fail_msg_file)); 122 } 123 break; 124 case DelimState.stop: 125 break; 126 } 127 128 data.last_run = null; 129 } 130 } 131 132 version (unittest) { 133 } else { 134 private: 135 } 136 137 // Determine what type of delimiter that where last found. 138 enum DelimState { 139 unknown, 140 start, 141 stop, 142 } 143 144 struct StateData { 145 DelimState delim; 146 147 string fail_msg_file; 148 string last_run; 149 150 /// The line contains a [======] block. 151 bool hasDelim; 152 /// The line contains a [ RUN ] block. 153 bool hasRunBlock; 154 /// the line contains a [ FAILED ] block. 155 bool hasFailedBlock; 156 /// the line contains a [ OK ] block. 157 bool hasOkBlock; 158 } 159 160 version (unittest) { 161 import std.algorithm : each, sort; 162 import std.array : array; 163 import std.file : getcwd; 164 import unit_threaded : shouldEqual, shouldBeIn; 165 } 166 167 @("shall report the failed test case") 168 unittest { 169 GatherTestCase app; 170 171 GtestParser parser; 172 testData1.each!(a => parser.process(a, app)); 173 174 shouldEqual(app.failed.toArray, [TestCase("MessageTest.DefaultConstructor")]); 175 } 176 177 @("shall report the found test cases") 178 unittest { 179 GatherTestCase app; 180 181 GtestParser parser; 182 testData3.each!(a => parser.process(a, app)); 183 184 shouldEqual(app.found.toArray.sort, [ 185 TestCase("Comp.A", ""), TestCase("Comp.B", ""), TestCase("Comp.C", 186 ""), TestCase("Comp.D", ""), TestCase("Comp.E", ""), 187 ]); 188 } 189 190 @("shall report the failed test cases") 191 unittest { 192 GatherTestCase app; 193 194 GtestParser parser; 195 testData4.each!(a => parser.process(a, app)); 196 197 shouldEqual(app.failed.toArray.sort, [ 198 TestCase("Foo.A", ""), TestCase("Foo.B", ""), TestCase("Foo.C", 199 ""), TestCase("Foo.D", ""), TestCase("Foo.E", ""), 200 ]); 201 } 202 203 @("shall report the failed test cases") 204 unittest { 205 GatherTestCase app; 206 207 GtestParser parser; 208 testData5.each!(a => parser.process(a, app)); 209 210 shouldEqual(app.failed.toArray.sort, [TestCase("FooTest.ShouldFail")]); 211 } 212 213 @("shall report the failed test cases even though there are junk in the output") 214 unittest { 215 GatherTestCase app; 216 217 GtestParser parser; 218 testData2.each!(a => parser.process(a, app)); 219 220 // dfmt off 221 auto expected = [ 222 TestCase(`AddFailureAtTest.MessageContainsSpecifiedFileAndLineNumber`), 223 TestCase(`ExpectFailureTest.ExpectFatalFailureOnAllThreads`), 224 TestCase(`ExpectFailureTest.ExpectFatalFailure`), 225 TestCase(`ExpectFailureTest.ExpectNonFatalFailureOnAllThreads`), 226 TestCase(`ExpectFailureTest.ExpectNonFatalFailure`), 227 TestCase(`ExpectFatalFailureTest.FailsWhenStatementReturns`), 228 TestCase(`ExpectFatalFailureTest.FailsWhenStatementThrows`), 229 TestCase(`ExpectFatalFailureTest.FailsWhenThereAreTwoFatalFailures`), 230 TestCase(`ExpectFatalFailureTest.FailsWhenThereIsNoFatalFailure`), 231 TestCase(`ExpectFatalFailureTest.FailsWhenThereIsOneNonfatalFailure`), 232 TestCase(`ExpectNonfatalFailureTest.FailsWhenStatementReturns`), 233 TestCase(`ExpectNonfatalFailureTest.FailsWhenStatementThrows`), 234 TestCase(`ExpectNonfatalFailureTest.FailsWhenThereAreTwoNonfatalFailures`), 235 TestCase(`ExpectNonfatalFailureTest.FailsWhenThereIsNoNonfatalFailure`), 236 TestCase(`ExpectNonfatalFailureTest.FailsWhenThereIsOneFatalFailure`), 237 TestCase(`MixedUpTestCaseTest.ThisShouldFailToo`), 238 TestCase(`MixedUpTestCaseTest.ThisShouldFail`), 239 TestCase(`MixedUpTestCaseWithSameTestNameTest.TheSecondTestWithThisNameShouldFail`), 240 TestCase(`TEST_F_before_TEST_in_same_test_case.DefinedUsingTESTAndShouldFail`), 241 TestCase(`TEST_before_TEST_F_in_same_test_case.DefinedUsingTEST_FAndShouldFail`), 242 TestCase(`ExpectFailureWithThreadsTest.ExpectFatalFailure`), 243 TestCase(`ExpectFailureWithThreadsTest.ExpectNonFatalFailure`), 244 TestCase(`FatalFailureInFixtureConstructorTest.FailureInConstructor`), 245 TestCase(`FatalFailureInSetUpTest.FailureInSetUp`), 246 TestCase(`FatalFailureTest.FatalFailureInNestedSubroutine`), 247 TestCase(`FatalFailureTest.FatalFailureInSubroutine`), 248 TestCase(`FatalFailureTest.NonfatalFailureInSubroutine`), 249 TestCase(`LoggingTest.InterleavingLoggingAndAssertions`), 250 TestCase(`NonFatalFailureInFixtureConstructorTest.FailureInConstructor`), 251 TestCase(`NonFatalFailureInSetUpTest.FailureInSetUp`), 252 TestCase(`NonfatalFailureTest.DiffForLongStrings`), 253 TestCase(`NonfatalFailureTest.EscapesStringOperands`), 254 TestCase(`PrintingFailingParams/FailingParamTest.Fails`), 255 TestCase(`PrintingStrings/ParamTest.Failure`), 256 TestCase(`SCOPED_TRACETest.CanBeNested`), 257 TestCase(`SCOPED_TRACETest.CanBeRepeated`), 258 TestCase(`SCOPED_TRACETest.ObeysScopes`), 259 TestCase(`SCOPED_TRACETest.WorksConcurrently`), 260 TestCase(`SCOPED_TRACETest.WorksInLoop`), 261 TestCase(`SCOPED_TRACETest.WorksInSubroutine`), 262 TestCase(`ScopedFakeTestPartResultReporterTest.InterceptOnlyCurrentThread`), 263 TestCase(`TypedTest`), 264 TestCase(`Unsigned/TypedTestP`), 265 ]; 266 // dfmt on 267 268 foreach (v; expected) { 269 v.shouldBeIn(app.failed.toArray); 270 } 271 272 shouldEqual(app.failed.length, expected.length); 273 } 274 275 @("shall report the last test case before the crash (variant 1)") 276 unittest { 277 GatherTestCase app; 278 279 GtestParser parser; 280 testData6.each!(a => parser.process(a, app)); 281 282 auto expected = [TestCase(`Test.segfault`), TestCase(`Test.next`)]; 283 284 foreach (v; expected) { 285 v.shouldBeIn(app.failed.toArray); 286 } 287 288 shouldEqual(app.failed.length, expected.length); 289 } 290 291 @("shall report the last test case before the crash (variant 2)") 292 unittest { 293 GatherTestCase app; 294 295 GtestParser parser; 296 testData7.each!(a => parser.process(a, app)); 297 parser.finalize(app); 298 299 auto expected = [TestCase(`Test.segfault1`), TestCase(`Test.segfault2`)]; 300 301 foreach (v; expected) { 302 v.shouldBeIn(app.failed.toArray); 303 } 304 305 shouldEqual(app.failed.length, expected.length); 306 } 307 308 version (unittest) { 309 // dfmt off 310 string[] testData1() { 311 // dfmt off 312 return [ 313 "Running main() from gtest_main.cc", 314 "[==========] Running 17 tests from 1 test case.", 315 "[----------] Global test environment set-up.", 316 "[----------] 17 tests from MessageTest", 317 "[ RUN ] MessageTest.DefaultConstructor", 318 "./googletest/test/gtest-message_test.cc:48: Failure", 319 "Expected equality of these values:", 320 " true", 321 " false", 322 "[ FAILED ] MessageTest.DefaultConstructor (0 ms)", 323 "[ RUN ] MessageTest.CopyConstructor", 324 "[ OK ] MessageTest.CopyConstructor (0 ms)", 325 "[ RUN ] MessageTest.ConstructsFromCString", 326 "[ OK ] MessageTest.ConstructsFromCString (0 ms)", 327 "[----------] 3 tests from MessageTest (0 ms total)", 328 "", 329 "[----------] Global test environment tear-down", 330 "[==========] 3 tests from 1 test case ran. (0 ms total)", 331 "[ PASSED ] 2 tests.", 332 "[ FAILED ] 1 test, listed below:", 333 "[ FAILED ] MessageTest.DefaultConstructor", 334 "", 335 " 1 FAILED TEST", 336 ]; 337 // dfmt on 338 } 339 340 // Example data from the "wild" that should still parse 341 string[] testData2() { 342 // dfmt off 343 return [ 344 `-[==========] Running 66 tests from 29 test cases.`, 345 `-[----------] Global test environment set-up.`, 346 `+ull)m[==========] Running 66 tests from 29 test cases.`, 347 `+ull)m[----------] Global test environment set-up.`, 348 ` FooEnvironment::SetUp() called.`, 349 ` BarEnvironment::SetUp() called.`, 350 `-[----------] 1 test from ADeathTest`, 351 `-[ RUN ] ADeathTest.ShouldRunFirst`, 352 `-[ OK ] ADeathTest.ShouldRunFirst`, 353 `-[----------] 1 test from ATypedDeathTest/0, where TypeParam = int`, 354 `-[ RUN ] ATypedDeathTest/0.ShouldRunFirst`, 355 `-[ OK ] ATypedDeathTest/0.ShouldRunFirst`, 356 `-[----------] 1 test from ATypedDeathTest/1, where TypeParam = double`, 357 `-[ RUN ] ATypedDeathTest/1.ShouldRunFirst`, 358 `-[ OK ] ATypedDeathTest/1.ShouldRunFirst`, 359 `-[----------] 1 test from My/ATypeParamDeathTest/0, where TypeParam = int`, 360 `-[ RUN ] My/ATypeParamDeathTest/0.ShouldRunFirst`, 361 `-[ OK ] My/ATypeParamDeathTest/0.ShouldRunFirst`, 362 `-[----------] 1 test from My/ATypeParamDeathTest/1, where TypeParam = double`, 363 `-[ RUN ] My/ATypeParamDeathTest/1.ShouldRunFirst`, 364 `-[ OK ] My/ATypeParamDeathTest/1.ShouldRunFirst`, 365 `-[----------] 2 tests from PassingTest`, 366 `-[ RUN ] PassingTest.PassingTest1`, 367 `-[ OK ] PassingTest.PassingTest1`, 368 `-[ RUN ] PassingTest.PassingTest2`, 369 `-[ OK ] PassingTest.PassingTest2`, 370 `-[----------] 2 tests from NonfatalFailureTest`, 371 `-[ RUN ] NonfatalFailureTest.EscapesStringOperands`, 372 `+ull)m[----------] 1 test from ADeathTest`, 373 `+ull)m[ RUN ] ADeathTest.ShouldRunFirst`, 374 `+ull)m[ OK ] ADeathTest.ShouldRunFirst`, 375 `+ull)m[----------] 1 test from ATypedDeathTest/0, where TypeParam = int`, 376 `+ull)m[ RUN ] ATypedDeathTest/0.ShouldRunFirst`, 377 `+ull)m[ OK ] ATypedDeathTest/0.ShouldRunFirst`, 378 `+ull)m[----------] 1 test from ATypedDeathTest/1, where TypeParam = double`, 379 `+ull)m[ RUN ] ATypedDeathTest/1.ShouldRunFirst`, 380 `+ull)m[ OK ] ATypedDeathTest/1.ShouldRunFirst`, 381 `+ull)m[----------] 1 test from My/ATypeParamDeathTest/0, where TypeParam = int`, 382 `+ull)m[ RUN ] My/ATypeParamDeathTest/0.ShouldRunFirst`, 383 `+ull)m[ OK ] My/ATypeParamDeathTest/0.ShouldRunFirst`, 384 `+ull)m[----------] 1 test from My/ATypeParamDeathTest/1, where TypeParam = double`, 385 `+ull)m[ RUN ] My/ATypeParamDeathTest/1.ShouldRunFirst`, 386 `+ull)m[ OK ] My/ATypeParamDeathTest/1.ShouldRunFirst`, 387 `+ull)m[----------] 2 tests from PassingTest`, 388 `+ull)m[ RUN ] PassingTest.PassingTest1`, 389 `+ull)m[ OK ] PassingTest.PassingTest1`, 390 `+ull)m[ RUN ] PassingTest.PassingTest2`, 391 `+ull)m[ OK ] PassingTest.PassingTest2`, 392 `+ull)m[----------] 2 tests from NonfatalFailureTest`, 393 `+ull)m[ RUN ] NonfatalFailureTest.EscapesStringOperands`, 394 ` gtest_output_test_.cc:#: Failure`, 395 ` Expected equality of these values:`, 396 ` kGoldenString`, 397 `@@ -47,7 +47,7 @@`, 398 ``, 399 ` actual`, 400 ` Which is: "actual \"string\""`, 401 ` [ FAILED ] NonfatalFailureTest.EscapesStringOperands`, 402 `-[ RUN ] NonfatalFailureTest.DiffForLongStrings`, 403 `+ull)m[ RUN ] NonfatalFailureTest.DiffForLongStrings`, 404 ` gtest_output_test_.cc:#: Failure`, 405 ` Expected equality of these values:`, 406 ` golden_str`, 407 `@@ -59,8 +59,8 @@`, 408 ``, 409 ` Line 2`, 410 ``, 411 ` [ FAILED ] NonfatalFailureTest.DiffForLongStrings`, 412 `-[----------] 3 tests from FatalFailureTest`, 413 `-[ RUN ] FatalFailureTest.FatalFailureInSubroutine`, 414 `+ull)m[----------] 3 tests from FatalFailureTest`, 415 `+ull)m[ RUN ] FatalFailureTest.FatalFailureInSubroutine`, 416 ` (expecting a failure that x should be 1)`, 417 ` gtest_output_test_.cc:#: Failure`, 418 ` Expected equality of these values:`, 419 `@@ -68,7 +68,7 @@`, 420 ``, 421 ` x`, 422 ` Which is: 2`, 423 ` [ FAILED ] FatalFailureTest.FatalFailureInSubroutine`, 424 `-[ RUN ] FatalFailureTest.FatalFailureInNestedSubroutine`, 425 `+ull)m[ RUN ] FatalFailureTest.FatalFailureInNestedSubroutine`, 426 ` (expecting a failure that x should be 1)`, 427 ` gtest_output_test_.cc:#: Failure`, 428 ` Expected equality of these values:`, 429 `@@ -76,15 +76,15 @@`, 430 ``, 431 ` x`, 432 ` Which is: 2`, 433 ` [ FAILED ] FatalFailureTest.FatalFailureInNestedSubroutine`, 434 `-[ RUN ] FatalFailureTest.NonfatalFailureInSubroutine`, 435 `+ull)m[ RUN ] FatalFailureTest.NonfatalFailureInSubroutine`, 436 ` (expecting a failure on false)`, 437 ` gtest_output_test_.cc:#: Failure`, 438 ` Value of: false`, 439 ` Actual: false`, 440 ` Expected: true`, 441 ` [ FAILED ] FatalFailureTest.NonfatalFailureInSubroutine`, 442 `-[----------] 1 test from LoggingTest`, 443 `-[ RUN ] LoggingTest.InterleavingLoggingAndAssertions`, 444 `+ull)m[----------] 1 test from LoggingTest`, 445 `+ull)m[ RUN ] LoggingTest.InterleavingLoggingAndAssertions`, 446 ` (expecting 2 failures on (3) >= (a[i]))`, 447 ` i == 0`, 448 ` i == 1`, 449 `@@ -95,8 +95,8 @@`, 450 ``, 451 ` gtest_output_test_.cc:#: Failure`, 452 ` Expected: (3) >= (a[i]), actual: 3 vs 6`, 453 ` [ FAILED ] LoggingTest.InterleavingLoggingAndAssertions`, 454 `-[----------] 6 tests from SCOPED_TRACETest`, 455 `-[ RUN ] SCOPED_TRACETest.ObeysScopes`, 456 `+ull)m[----------] 6 tests from SCOPED_TRACETest`, 457 `+ull)m[ RUN ] SCOPED_TRACETest.ObeysScopes`, 458 ` (expected to fail)`, 459 ` gtest_output_test_.cc:#: Failure`, 460 ` Failed`, 461 `@@ -110,7 +110,7 @@`, 462 ``, 463 ` Failed`, 464 ` This failure is expected, and shouldn't have a trace.`, 465 ` [ FAILED ] SCOPED_TRACETest.ObeysScopes`, 466 `-[ RUN ] SCOPED_TRACETest.WorksInLoop`, 467 `+ull)m[ RUN ] SCOPED_TRACETest.WorksInLoop`, 468 ` (expected to fail)`, 469 ` gtest_output_test_.cc:#: Failure`, 470 ` Expected equality of these values:`, 471 `@@ -127,7 +127,7 @@`, 472 ``, 473 ` Google Test trace:`, 474 ` gtest_output_test_.cc:#: i = 2`, 475 ` [ FAILED ] SCOPED_TRACETest.WorksInLoop`, 476 `-[ RUN ] SCOPED_TRACETest.WorksInSubroutine`, 477 `+ull)m[ RUN ] SCOPED_TRACETest.WorksInSubroutine`, 478 ` (expected to fail)`, 479 ` gtest_output_test_.cc:#: Failure`, 480 ` Expected equality of these values:`, 481 `@@ -144,7 +144,7 @@`, 482 ``, 483 ` Google Test trace:`, 484 ` gtest_output_test_.cc:#: n = 2`, 485 ` [ FAILED ] SCOPED_TRACETest.WorksInSubroutine`, 486 `-[ RUN ] SCOPED_TRACETest.CanBeNested`, 487 `+ull)m[ RUN ] SCOPED_TRACETest.CanBeNested`, 488 ` (expected to fail)`, 489 ` gtest_output_test_.cc:#: Failure`, 490 ` Expected equality of these values:`, 491 `@@ -155,7 +155,7 @@`, 492 ``, 493 ` gtest_output_test_.cc:#: n = 2`, 494 ` gtest_output_test_.cc:#:`, 495 ` [ FAILED ] SCOPED_TRACETest.CanBeNested`, 496 `-[ RUN ] SCOPED_TRACETest.CanBeRepeated`, 497 `+ull)m[ RUN ] SCOPED_TRACETest.CanBeRepeated`, 498 ` (expected to fail)`, 499 ` gtest_output_test_.cc:#: Failure`, 500 ` Failed`, 501 `@@ -183,7 +183,7 @@`, 502 ``, 503 ` gtest_output_test_.cc:#: B`, 504 ` gtest_output_test_.cc:#: A`, 505 ` [ FAILED ] SCOPED_TRACETest.CanBeRepeated`, 506 `-[ RUN ] SCOPED_TRACETest.WorksConcurrently`, 507 `+ull)m[ RUN ] SCOPED_TRACETest.WorksConcurrently`, 508 ` (expecting 6 failures)`, 509 ` gtest_output_test_.cc:#: Failure`, 510 ` Failed`, 511 `@@ -212,8 +212,8 @@`, 512 ``, 513 ` Failed`, 514 ` Expected failure #6 (in thread A, no trace alive).`, 515 ` [ FAILED ] SCOPED_TRACETest.WorksConcurrently`, 516 `-[----------] 1 test from NonFatalFailureInFixtureConstructorTest`, 517 `-[ RUN ] NonFatalFailureInFixtureConstructorTest.FailureInConstructor`, 518 `+ull)m[----------] 1 test from NonFatalFailureInFixtureConstructorTest`, 519 `+ull)m[ RUN ] NonFatalFailureInFixtureConstructorTest.FailureInConstructor`, 520 ` (expecting 5 failures)`, 521 ` gtest_output_test_.cc:#: Failure`, 522 ` Failed`, 523 `@@ -231,8 +231,8 @@`, 524 ``, 525 ` Failed`, 526 ` Expected failure #5, in the test fixture d'tor.`, 527 ` [ FAILED ] NonFatalFailureInFixtureConstructorTest.FailureInConstructor`, 528 `-[----------] 1 test from FatalFailureInFixtureConstructorTest`, 529 `-[ RUN ] FatalFailureInFixtureConstructorTest.FailureInConstructor`, 530 `+ull)m[----------] 1 test from FatalFailureInFixtureConstructorTest`, 531 `+ull)m[ RUN ] FatalFailureInFixtureConstructorTest.FailureInConstructor`, 532 ` (expecting 2 failures)`, 533 ` gtest_output_test_.cc:#: Failure`, 534 ` Failed`, 535 `@@ -241,8 +241,8 @@`, 536 ``, 537 ` Failed`, 538 ` Expected failure #2, in the test fixture d'tor.`, 539 ` [ FAILED ] FatalFailureInFixtureConstructorTest.FailureInConstructor`, 540 `-[----------] 1 test from NonFatalFailureInSetUpTest`, 541 `-[ RUN ] NonFatalFailureInSetUpTest.FailureInSetUp`, 542 `+ull)m[----------] 1 test from NonFatalFailureInSetUpTest`, 543 `+ull)m[ RUN ] NonFatalFailureInSetUpTest.FailureInSetUp`, 544 ` (expecting 4 failures)`, 545 ` gtest_output_test_.cc:#: Failure`, 546 ` Failed`, 547 `@@ -257,8 +257,8 @@`, 548 ``, 549 ` Failed`, 550 ` Expected failure #4, in the test fixture d'tor.`, 551 ` [ FAILED ] NonFatalFailureInSetUpTest.FailureInSetUp`, 552 `-[----------] 1 test from FatalFailureInSetUpTest`, 553 `-[ RUN ] FatalFailureInSetUpTest.FailureInSetUp`, 554 `+ull)m[----------] 1 test from FatalFailureInSetUpTest`, 555 `+ull)m[ RUN ] FatalFailureInSetUpTest.FailureInSetUp`, 556 ` (expecting 3 failures)`, 557 ` gtest_output_test_.cc:#: Failure`, 558 ` Failed`, 559 `@@ -270,18 +270,18 @@`, 560 ``, 561 ` Failed`, 562 ` Expected failure #3, in the test fixture d'tor.`, 563 ` [ FAILED ] FatalFailureInSetUpTest.FailureInSetUp`, 564 `-[----------] 1 test from AddFailureAtTest`, 565 `-[ RUN ] AddFailureAtTest.MessageContainsSpecifiedFileAndLineNumber`, 566 `+ull)m[----------] 1 test from AddFailureAtTest`, 567 `+ull)m[ RUN ] AddFailureAtTest.MessageContainsSpecifiedFileAndLineNumber`, 568 ` foo.cc:42: Failure`, 569 ` Failed`, 570 ` Expected failure in foo.cc`, 571 ` [ FAILED ] AddFailureAtTest.MessageContainsSpecifiedFileAndLineNumber`, 572 `-[----------] 4 tests from MixedUpTestCaseTest`, 573 `-[ RUN ] MixedUpTestCaseTest.FirstTestFromNamespaceFoo`, 574 `-[ OK ] MixedUpTestCaseTest.FirstTestFromNamespaceFoo`, 575 `-[ RUN ] MixedUpTestCaseTest.SecondTestFromNamespaceFoo`, 576 `-[ OK ] MixedUpTestCaseTest.SecondTestFromNamespaceFoo`, 577 `-[ RUN ] MixedUpTestCaseTest.ThisShouldFail`, 578 `+ull)m[----------] 4 tests from MixedUpTestCaseTest`, 579 `+ull)m[ RUN ] MixedUpTestCaseTest.FirstTestFromNamespaceFoo`, 580 `+ull)m[ OK ] MixedUpTestCaseTest.FirstTestFromNamespaceFoo`, 581 `+ull)m[ RUN ] MixedUpTestCaseTest.SecondTestFromNamespaceFoo`, 582 `+ull)m[ OK ] MixedUpTestCaseTest.SecondTestFromNamespaceFoo`, 583 `+ull)m[ RUN ] MixedUpTestCaseTest.ThisShouldFail`, 584 ` gtest.cc:#: Failure`, 585 ` Failed`, 586 ` All tests in the same test case must use the same test fixture`, 587 `@@ -292,7 +292,7 @@`, 588 ``, 589 ` units and have the same name. You should probably rename one`, 590 ` of the classes to put the tests into different test cases.`, 591 ` [ FAILED ] MixedUpTestCaseTest.ThisShouldFail`, 592 `-[ RUN ] MixedUpTestCaseTest.ThisShouldFailToo`, 593 `+ull)m[ RUN ] MixedUpTestCaseTest.ThisShouldFailToo`, 594 ` gtest.cc:#: Failure`, 595 ` Failed`, 596 ` All tests in the same test case must use the same test fixture`, 597 `@@ -303,10 +303,10 @@`, 598 ``, 599 ` units and have the same name. You should probably rename one`, 600 ` of the classes to put the tests into different test cases.`, 601 ` [ FAILED ] MixedUpTestCaseTest.ThisShouldFailToo`, 602 `-[----------] 2 tests from MixedUpTestCaseWithSameTestNameTest`, 603 `-[ RUN ] MixedUpTestCaseWithSameTestNameTest.TheSecondTestWithThisNameShouldFail`, 604 `-[ OK ] MixedUpTestCaseWithSameTestNameTest.TheSecondTestWithThisNameShouldFail`, 605 `-[ RUN ] MixedUpTestCaseWithSameTestNameTest.TheSecondTestWithThisNameShouldFail`, 606 `+ull)m[----------] 2 tests from MixedUpTestCaseWithSameTestNameTest`, 607 `+ull)m[ RUN ] MixedUpTestCaseWithSameTestNameTest.TheSecondTestWithThisNameShouldFail`, 608 `+ull)m[ OK ] MixedUpTestCaseWithSameTestNameTest.TheSecondTestWithThisNameShouldFail`, 609 `+ull)m[ RUN ] MixedUpTestCaseWithSameTestNameTest.TheSecondTestWithThisNameShouldFail`, 610 ` gtest.cc:#: Failure`, 611 ` Failed`, 612 ` All tests in the same test case must use the same test fixture`, 613 `@@ -317,10 +317,10 @@`, 614 ``, 615 ` units and have the same name. You should probably rename one`, 616 ` of the classes to put the tests into different test cases.`, 617 ` [ FAILED ] MixedUpTestCaseWithSameTestNameTest.TheSecondTestWithThisNameShouldFail`, 618 `-[----------] 2 tests from TEST_F_before_TEST_in_same_test_case`, 619 `-[ RUN ] TEST_F_before_TEST_in_same_test_case.DefinedUsingTEST_F`, 620 `-[ OK ] TEST_F_before_TEST_in_same_test_case.DefinedUsingTEST_F`, 621 `-[ RUN ] TEST_F_before_TEST_in_same_test_case.DefinedUsingTESTAndShouldFail`, 622 `+ull)m[----------] 2 tests from TEST_F_before_TEST_in_same_test_case`, 623 `+ull)m[ RUN ] TEST_F_before_TEST_in_same_test_case.DefinedUsingTEST_F`, 624 `+ull)m[ OK ] TEST_F_before_TEST_in_same_test_case.DefinedUsingTEST_F`, 625 `+ull)m[ RUN ] TEST_F_before_TEST_in_same_test_case.DefinedUsingTESTAndShouldFail`, 626 ` gtest.cc:#: Failure`, 627 ` Failed`, 628 ` All tests in the same test case must use the same test fixture`, 629 `@@ -331,10 +331,10 @@`, 630 ``, 631 ` want to change the TEST to TEST_F or move it to another test`, 632 ` case.`, 633 ` [ FAILED ] TEST_F_before_TEST_in_same_test_case.DefinedUsingTESTAndShouldFail`, 634 `-[----------] 2 tests from TEST_before_TEST_F_in_same_test_case`, 635 `-[ RUN ] TEST_before_TEST_F_in_same_test_case.DefinedUsingTEST`, 636 `-[ OK ] TEST_before_TEST_F_in_same_test_case.DefinedUsingTEST`, 637 `-[ RUN ] TEST_before_TEST_F_in_same_test_case.DefinedUsingTEST_FAndShouldFail`, 638 `+ull)m[----------] 2 tests from TEST_before_TEST_F_in_same_test_case`, 639 `+ull)m[ RUN ] TEST_before_TEST_F_in_same_test_case.DefinedUsingTEST`, 640 `+ull)m[ OK ] TEST_before_TEST_F_in_same_test_case.DefinedUsingTEST`, 641 `+ull)m[ RUN ] TEST_before_TEST_F_in_same_test_case.DefinedUsingTEST_FAndShouldFail`, 642 ` gtest.cc:#: Failure`, 643 ` Failed`, 644 ` All tests in the same test case must use the same test fixture`, 645 `@@ -345,20 +345,20 @@`, 646 ``, 647 ` want to change the TEST to TEST_F or move it to another test`, 648 ` case.`, 649 ` [ FAILED ] TEST_before_TEST_F_in_same_test_case.DefinedUsingTEST_FAndShouldFail`, 650 `-[----------] 8 tests from ExpectNonfatalFailureTest`, 651 `-[ RUN ] ExpectNonfatalFailureTest.CanReferenceGlobalVariables`, 652 `-[ OK ] ExpectNonfatalFailureTest.CanReferenceGlobalVariables`, 653 `-[ RUN ] ExpectNonfatalFailureTest.CanReferenceLocalVariables`, 654 `-[ OK ] ExpectNonfatalFailureTest.CanReferenceLocalVariables`, 655 `-[ RUN ] ExpectNonfatalFailureTest.SucceedsWhenThereIsOneNonfatalFailure`, 656 `-[ OK ] ExpectNonfatalFailureTest.SucceedsWhenThereIsOneNonfatalFailure`, 657 `-[ RUN ] ExpectNonfatalFailureTest.FailsWhenThereIsNoNonfatalFailure`, 658 `+ull)m[----------] 8 tests from ExpectNonfatalFailureTest`, 659 `+ull)m[ RUN ] ExpectNonfatalFailureTest.CanReferenceGlobalVariables`, 660 `+ull)m[ OK ] ExpectNonfatalFailureTest.CanReferenceGlobalVariables`, 661 `+ull)m[ RUN ] ExpectNonfatalFailureTest.CanReferenceLocalVariables`, 662 `+ull)m[ OK ] ExpectNonfatalFailureTest.CanReferenceLocalVariables`, 663 `+ull)m[ RUN ] ExpectNonfatalFailureTest.SucceedsWhenThereIsOneNonfatalFailure`, 664 `+ull)m[ OK ] ExpectNonfatalFailureTest.SucceedsWhenThereIsOneNonfatalFailure`, 665 `+ull)m[ RUN ] ExpectNonfatalFailureTest.FailsWhenThereIsNoNonfatalFailure`, 666 ` (expecting a failure)`, 667 ` gtest.cc:#: Failure`, 668 ` Expected: 1 non-fatal failure`, 669 ` Actual: 0 failures`, 670 ` [ FAILED ] ExpectNonfatalFailureTest.FailsWhenThereIsNoNonfatalFailure`, 671 `-[ RUN ] ExpectNonfatalFailureTest.FailsWhenThereAreTwoNonfatalFailures`, 672 `+ull)m[ RUN ] ExpectNonfatalFailureTest.FailsWhenThereAreTwoNonfatalFailures`, 673 ` (expecting a failure)`, 674 ` gtest.cc:#: Failure`, 675 ` Expected: 1 non-fatal failure`, 676 `@@ -372,7 +372,7 @@`, 677 ``, 678 ` Expected non-fatal failure 2.`, 679 ``, 680 ` [ FAILED ] ExpectNonfatalFailureTest.FailsWhenThereAreTwoNonfatalFailures`, 681 `-[ RUN ] ExpectNonfatalFailureTest.FailsWhenThereIsOneFatalFailure`, 682 `+ull)m[ RUN ] ExpectNonfatalFailureTest.FailsWhenThereIsOneFatalFailure`, 683 ` (expecting a failure)`, 684 ` gtest.cc:#: Failure`, 685 ` Expected: 1 non-fatal failure`, 686 `@@ -382,32 +382,32 @@`, 687 ``, 688 ` Expected fatal failure.`, 689 ``, 690 ` [ FAILED ] ExpectNonfatalFailureTest.FailsWhenThereIsOneFatalFailure`, 691 `-[ RUN ] ExpectNonfatalFailureTest.FailsWhenStatementReturns`, 692 `+ull)m[ RUN ] ExpectNonfatalFailureTest.FailsWhenStatementReturns`, 693 ` (expecting a failure)`, 694 ` gtest.cc:#: Failure`, 695 ` Expected: 1 non-fatal failure`, 696 ` Actual: 0 failures`, 697 ` [ FAILED ] ExpectNonfatalFailureTest.FailsWhenStatementReturns`, 698 `-[ RUN ] ExpectNonfatalFailureTest.FailsWhenStatementThrows`, 699 `+ull)m[ RUN ] ExpectNonfatalFailureTest.FailsWhenStatementThrows`, 700 ` (expecting a failure)`, 701 ` gtest.cc:#: Failure`, 702 ` Expected: 1 non-fatal failure`, 703 ` Actual: 0 failures`, 704 ` [ FAILED ] ExpectNonfatalFailureTest.FailsWhenStatementThrows`, 705 `-[----------] 8 tests from ExpectFatalFailureTest`, 706 `-[ RUN ] ExpectFatalFailureTest.CanReferenceGlobalVariables`, 707 `-[ OK ] ExpectFatalFailureTest.CanReferenceGlobalVariables`, 708 `-[ RUN ] ExpectFatalFailureTest.CanReferenceLocalStaticVariables`, 709 `-[ OK ] ExpectFatalFailureTest.CanReferenceLocalStaticVariables`, 710 `-[ RUN ] ExpectFatalFailureTest.SucceedsWhenThereIsOneFatalFailure`, 711 `-[ OK ] ExpectFatalFailureTest.SucceedsWhenThereIsOneFatalFailure`, 712 `-[ RUN ] ExpectFatalFailureTest.FailsWhenThereIsNoFatalFailure`, 713 `+ull)m[----------] 8 tests from ExpectFatalFailureTest`, 714 `+ull)m[ RUN ] ExpectFatalFailureTest.CanReferenceGlobalVariables`, 715 `+ull)m[ OK ] ExpectFatalFailureTest.CanReferenceGlobalVariables`, 716 `+ull)m[ RUN ] ExpectFatalFailureTest.CanReferenceLocalStaticVariables`, 717 `+ull)m[ OK ] ExpectFatalFailureTest.CanReferenceLocalStaticVariables`, 718 `+ull)m[ RUN ] ExpectFatalFailureTest.SucceedsWhenThereIsOneFatalFailure`, 719 `+ull)m[ OK ] ExpectFatalFailureTest.SucceedsWhenThereIsOneFatalFailure`, 720 `+ull)m[ RUN ] ExpectFatalFailureTest.FailsWhenThereIsNoFatalFailure`, 721 ` (expecting a failure)`, 722 ` gtest.cc:#: Failure`, 723 ` Expected: 1 fatal failure`, 724 ` Actual: 0 failures`, 725 ` [ FAILED ] ExpectFatalFailureTest.FailsWhenThereIsNoFatalFailure`, 726 `-[ RUN ] ExpectFatalFailureTest.FailsWhenThereAreTwoFatalFailures`, 727 `+ull)m[ RUN ] ExpectFatalFailureTest.FailsWhenThereAreTwoFatalFailures`, 728 ` (expecting a failure)`, 729 ` gtest.cc:#: Failure`, 730 ` Expected: 1 fatal failure`, 731 `@@ -421,7 +421,7 @@`, 732 ``, 733 ` Expected fatal failure.`, 734 ``, 735 ` [ FAILED ] ExpectFatalFailureTest.FailsWhenThereAreTwoFatalFailures`, 736 `-[ RUN ] ExpectFatalFailureTest.FailsWhenThereIsOneNonfatalFailure`, 737 `+ull)m[ RUN ] ExpectFatalFailureTest.FailsWhenThereIsOneNonfatalFailure`, 738 ` (expecting a failure)`, 739 ` gtest.cc:#: Failure`, 740 ` Expected: 1 fatal failure`, 741 `@@ -431,22 +431,22 @@`, 742 ``, 743 ` Expected non-fatal failure.`, 744 ``, 745 ` [ FAILED ] ExpectFatalFailureTest.FailsWhenThereIsOneNonfatalFailure`, 746 `-[ RUN ] ExpectFatalFailureTest.FailsWhenStatementReturns`, 747 `+ull)m[ RUN ] ExpectFatalFailureTest.FailsWhenStatementReturns`, 748 ` (expecting a failure)`, 749 ` gtest.cc:#: Failure`, 750 ` Expected: 1 fatal failure`, 751 ` Actual: 0 failures`, 752 ` [ FAILED ] ExpectFatalFailureTest.FailsWhenStatementReturns`, 753 `-[ RUN ] ExpectFatalFailureTest.FailsWhenStatementThrows`, 754 `+ull)m[ RUN ] ExpectFatalFailureTest.FailsWhenStatementThrows`, 755 ` (expecting a failure)`, 756 ` gtest.cc:#: Failure`, 757 ` Expected: 1 fatal failure`, 758 ` Actual: 0 failures`, 759 ` [ FAILED ] ExpectFatalFailureTest.FailsWhenStatementThrows`, 760 `-[----------] 2 tests from TypedTest/0, where TypeParam = int`, 761 `-[ RUN ] TypedTest/0.Success`, 762 `-[ OK ] TypedTest/0.Success`, 763 `-[ RUN ] TypedTest/0.Failure`, 764 `+ull)m[----------] 2 tests from TypedTest/0, where TypeParam = int`, 765 `+ull)m[ RUN ] TypedTest/0.Success`, 766 `+ull)m[ OK ] TypedTest/0.Success`, 767 `+ull)m[ RUN ] TypedTest/0.Failure`, 768 ` gtest_output_test_.cc:#: Failure`, 769 ` Expected equality of these values:`, 770 ` 1`, 771 `@@ -454,10 +454,10 @@`, 772 ``, 773 ` Which is: 0`, 774 ` Expected failure`, 775 ` [ FAILED ] TypedTest/0.Failure, where TypeParam = int`, 776 `-[----------] 2 tests from Unsigned/TypedTestP/0, where TypeParam = unsigned char`, 777 `-[ RUN ] Unsigned/TypedTestP/0.Success`, 778 `-[ OK ] Unsigned/TypedTestP/0.Success`, 779 `-[ RUN ] Unsigned/TypedTestP/0.Failure`, 780 `+ull)m[----------] 2 tests from Unsigned/TypedTestP/0, where TypeParam = unsigned char`, 781 `+ull)m[ RUN ] Unsigned/TypedTestP/0.Success`, 782 `+ull)m[ OK ] Unsigned/TypedTestP/0.Success`, 783 `+ull)m[ RUN ] Unsigned/TypedTestP/0.Failure`, 784 ` gtest_output_test_.cc:#: Failure`, 785 ` Expected equality of these values:`, 786 ` 1U`, 787 `@@ -466,10 +466,10 @@`, 788 ``, 789 ` Which is: '\0'`, 790 ` Expected failure`, 791 ` [ FAILED ] Unsigned/TypedTestP/0.Failure, where TypeParam = unsigned char`, 792 `-[----------] 2 tests from Unsigned/TypedTestP/1, where TypeParam = unsigned`, 793 `-[ RUN ] Unsigned/TypedTestP/1.Success`, 794 `-[ OK ] Unsigned/TypedTestP/1.Success`, 795 `-[ RUN ] Unsigned/TypedTestP/1.Failure`, 796 `+ull)m[----------] 2 tests from Unsigned/TypedTestP/1, where TypeParam = unsigned`, 797 `+ull)m[ RUN ] Unsigned/TypedTestP/1.Success`, 798 `+ull)m[ OK ] Unsigned/TypedTestP/1.Success`, 799 `+ull)m[ RUN ] Unsigned/TypedTestP/1.Failure`, 800 ` gtest_output_test_.cc:#: Failure`, 801 ` Expected equality of these values:`, 802 ` 1U`, 803 `@@ -478,8 +478,8 @@`, 804 ``, 805 ` Which is: 0`, 806 ` Expected failure`, 807 ` [ FAILED ] Unsigned/TypedTestP/1.Failure, where TypeParam = unsigned`, 808 `-[----------] 4 tests from ExpectFailureTest`, 809 `-[ RUN ] ExpectFailureTest.ExpectFatalFailure`, 810 `+ull)m[----------] 4 tests from ExpectFailureTest`, 811 `+ull)m[ RUN ] ExpectFailureTest.ExpectFatalFailure`, 812 ` (expecting 1 failure)`, 813 ` gtest.cc:#: Failure`, 814 ` Expected: 1 fatal failure`, 815 `@@ -504,7 +504,7 @@`, 816 ``, 817 ` Expected fatal failure.`, 818 ``, 819 ` [ FAILED ] ExpectFailureTest.ExpectFatalFailure`, 820 `-[ RUN ] ExpectFailureTest.ExpectNonFatalFailure`, 821 `+ull)m[ RUN ] ExpectFailureTest.ExpectNonFatalFailure`, 822 ` (expecting 1 failure)`, 823 ` gtest.cc:#: Failure`, 824 ` Expected: 1 non-fatal failure`, 825 `@@ -529,7 +529,7 @@`, 826 ``, 827 ` Expected non-fatal failure.`, 828 ``, 829 ` [ FAILED ] ExpectFailureTest.ExpectNonFatalFailure`, 830 `-[ RUN ] ExpectFailureTest.ExpectFatalFailureOnAllThreads`, 831 `+ull)m[ RUN ] ExpectFailureTest.ExpectFatalFailureOnAllThreads`, 832 ` (expecting 1 failure)`, 833 ` gtest.cc:#: Failure`, 834 ` Expected: 1 fatal failure`, 835 `@@ -554,7 +554,7 @@`, 836 ``, 837 ` Expected fatal failure.`, 838 ``, 839 ` [ FAILED ] ExpectFailureTest.ExpectFatalFailureOnAllThreads`, 840 `-[ RUN ] ExpectFailureTest.ExpectNonFatalFailureOnAllThreads`, 841 `+ull)m[ RUN ] ExpectFailureTest.ExpectNonFatalFailureOnAllThreads`, 842 ` (expecting 1 failure)`, 843 ` gtest.cc:#: Failure`, 844 ` Expected: 1 non-fatal failure`, 845 `@@ -579,8 +579,8 @@`, 846 ``, 847 ` Expected non-fatal failure.`, 848 ``, 849 ` [ FAILED ] ExpectFailureTest.ExpectNonFatalFailureOnAllThreads`, 850 `-[----------] 2 tests from ExpectFailureWithThreadsTest`, 851 `-[ RUN ] ExpectFailureWithThreadsTest.ExpectFatalFailure`, 852 `+ull)m[----------] 2 tests from ExpectFailureWithThreadsTest`, 853 `+ull)m[ RUN ] ExpectFailureWithThreadsTest.ExpectFatalFailure`, 854 ` (expecting 2 failures)`, 855 ` gtest_output_test_.cc:#: Failure`, 856 ` Failed`, 857 `@@ -589,7 +589,7 @@`, 858 ``, 859 ` Expected: 1 fatal failure`, 860 ` Actual: 0 failures`, 861 ` [ FAILED ] ExpectFailureWithThreadsTest.ExpectFatalFailure`, 862 `-[ RUN ] ExpectFailureWithThreadsTest.ExpectNonFatalFailure`, 863 `+ull)m[ RUN ] ExpectFailureWithThreadsTest.ExpectNonFatalFailure`, 864 ` (expecting 2 failures)`, 865 ` gtest_output_test_.cc:#: Failure`, 866 ` Failed`, 867 `@@ -598,8 +598,8 @@`, 868 ``, 869 ` Expected: 1 non-fatal failure`, 870 ` Actual: 0 failures`, 871 ` [ FAILED ] ExpectFailureWithThreadsTest.ExpectNonFatalFailure`, 872 `-[----------] 1 test from ScopedFakeTestPartResultReporterTest`, 873 `-[ RUN ] ScopedFakeTestPartResultReporterTest.InterceptOnlyCurrentThread`, 874 `+ull)m[----------] 1 test from ScopedFakeTestPartResultReporterTest`, 875 `+ull)m[ RUN ] ScopedFakeTestPartResultReporterTest.InterceptOnlyCurrentThread`, 876 ` (expecting 2 failures)`, 877 ` gtest_output_test_.cc:#: Failure`, 878 ` Failed`, 879 `@@ -608,18 +608,18 @@`, 880 ``, 881 ` Failed`, 882 ` Expected non-fatal failure.`, 883 ` [ FAILED ] ScopedFakeTestPartResultReporterTest.InterceptOnlyCurrentThread`, 884 `-[----------] 1 test from PrintingFailingParams/FailingParamTest`, 885 `-[ RUN ] PrintingFailingParams/FailingParamTest.Fails/0`, 886 `+ull)m[----------] 1 test from PrintingFailingParams/FailingParamTest`, 887 `+ull)m[ RUN ] PrintingFailingParams/FailingParamTest.Fails/0`, 888 ` gtest_output_test_.cc:#: Failure`, 889 ` Expected equality of these values:`, 890 ` 1`, 891 ` GetParam()`, 892 ` Which is: 2`, 893 ` [ FAILED ] PrintingFailingParams/FailingParamTest.Fails/0, where GetParam() = 2`, 894 `-[----------] 2 tests from PrintingStrings/ParamTest`, 895 `-[ RUN ] PrintingStrings/ParamTest.Success/a`, 896 `-[ OK ] PrintingStrings/ParamTest.Success/a`, 897 `-[ RUN ] PrintingStrings/ParamTest.Failure/a`, 898 `+ull)m[----------] 2 tests from PrintingStrings/ParamTest`, 899 `+ull)m[ RUN ] PrintingStrings/ParamTest.Success/a`, 900 `+ull)m[ OK ] PrintingStrings/ParamTest.Success/a`, 901 `+ull)m[ RUN ] PrintingStrings/ParamTest.Failure/a`, 902 ` gtest_output_test_.cc:#: Failure`, 903 ` Expected equality of these values:`, 904 ` "b"`, 905 `@@ -627,7 +627,7 @@`, 906 ``, 907 ` Which is: "a"`, 908 ` Expected failure`, 909 ` [ FAILED ] PrintingStrings/ParamTest.Failure/a, where GetParam() = "a"`, 910 `-[----------] Global test environment tear-down`, 911 `+ull)m[----------] Global test environment tear-down`, 912 ` BarEnvironment::TearDown() called.`, 913 ` gtest_output_test_.cc:#: Failure`, 914 ` Failed`, 915 `@@ -636,8 +636,8 @@`, 916 ``, 917 ` gtest_output_test_.cc:#: Failure`, 918 ` Failed`, 919 ` Expected fatal failure.`, 920 `+ull)m[==========] 66 tests from 29 test cases ran.`, 921 `+ull)m[ PASSED ] 22 tests.`, 922 ` [ FAILED ] 44 tests, listed below:`, 923 ` [ FAILED ] NonfatalFailureTest.EscapesStringOperands`, 924 ` [ FAILED ] NonfatalFailureTest.DiffForLongStrings`, 925 ]; 926 // dfmt on 927 } 928 929 string[] testData3() { 930 // this contains a little fuzzy data that the parser should be able to 931 // handle. this is what typically can happen when running tets from via 932 // a makefile. 933 // dfmt off 934 return [ 935 `Running main() from gtest_main.cc`, 936 `[==========] Running 4 tests from 1 test case.`, 937 `[----------] Global test environment set-up.`, 938 `[----------] 4 tests from MessageTest`, 939 `[ RUN ] Comp.A`, 940 `[ OK ] Comp.A (0 ms)`, 941 `[ RUN ] Comp.B`, 942 `[ OK ] Comp.B (0 ms) [ RUN ] Comp.C`, 943 `[ OK ] Comp.C (0 ms)`, 944 `[ RUN ] Comp.D`, 945 `[ OK ] Comp.D (0 ms)`, 946 `[ RUN ] Comp.E/a[ OK ] Comp.E/a (0 ms)[ RUN ] Comp.E/b[ OK ] Comp.E/b (0 ms)`, 947 `[----------] 4 tests from Comp (0 ms total)`, 948 ``, 949 `[----------] Global test environment tear-down`, 950 `[==========] 4 tests from 1 test case ran. (0 ms total)`, 951 `[ PASSED ] 4 tests.`, 952 ]; 953 // dfmt on 954 } 955 956 string[] testData4() { 957 // dfmt off 958 return [ 959 "Running main() from gtest_main.cc", 960 "[==========] Running 17 tests from 1 test case.", 961 "[----------] Global test environment set-up.", 962 "[----------] 17 tests from MessageTest", 963 "[ RUN ] Foo.A", 964 "[ FAILED ] Foo.A (0 ms)[ RUN ] Foo.B[ FAILED ] Foo.B (0 ms)[ RUN ] Foo.C[ FAILED ] Foo.C (0 ms)", 965 "[ RUN ] Foo.D[ FAILED ] Foo.D (0 ms)[ RUN ] Foo.E", 966 "[ FAILED ] Foo.E (0 ms)", 967 "[----------] 3 tests from MessageTest (0 ms total)", 968 ]; 969 // dfmt on 970 } 971 972 string[] testData5() { 973 // dfmt off 974 return [ 975 "35: [==========] Running 13 tests from 3 test cases.", 976 "35: [----------] Global test environment set-up.", 977 "35: [----------] 1 test from BarDeathTest", 978 "35: [ RUN ] BarDeathTest.ThreadSafeAndFast", 979 "35: [ OK ] BarDeathTest.ThreadSafeAndFast (436 ms)", 980 "35: [----------] 1 test from BarDeathTest (436 ms total)", 981 "35: [----------] 10 tests from MyParamSequence/MyParamTest", 982 "35: [ RUN ] MyParamSequence/MyParamTest.ShouldPass/0", 983 "35: [ OK ] MyParamSequence/MyParamTest.ShouldPass/0 (0 ms)", 984 "35: [ RUN ] MyParamSequence/MyParamTest.ShouldPass/1", 985 "35: [ OK ] MyParamSequence/MyParamTest.ShouldPass/1 (0 ms)", 986 "35: [----------] 2 tests from MyParamSequence/MyParamTest (0 ms total)", 987 "35: ", 988 "35: [----------] 2 tests from FooTest", 989 "35: [ RUN ] FooTest.ShouldFail", 990 "35: /home/joker/src/cpp/googletest/googletest/test/gtest_repeat_test.cc:96: Failure", 991 "35: Expected equality of these values:", 992 "35: 0", 993 "35: 1", 994 "35: Expected failure.", 995 "35: [ FAILED ] FooTest.ShouldFail (0 ms)", 996 "35: [ RUN ] FooTest.ShouldPass", 997 "35: [ OK ] FooTest.ShouldPass (0 ms)", 998 "35: [----------] 2 tests from FooTest (0 ms total)", 999 "35: [----------] Global test environment tear-down", 1000 "35: [==========] 13 tests from 3 test cases ran. (436 ms total)", 1001 "35: [ PASSED ] 12 tests.", 1002 "35: [ FAILED ] 1 test, listed below:", 1003 "35: [ FAILED ] FooTest.ShouldFail", 1004 ]; 1005 // dfmt on 1006 } 1007 1008 // A binary segfaults while it is running a test 1009 string[] testData6() { 1010 // dfmt off 1011 return [ 1012 "Running main() from gtest_main.cc", 1013 "[==========] Running 17 tests from 1 test case.", 1014 "[----------] Global test environment set-up.", 1015 "[----------] 17 tests from MessageTest", 1016 "[ RUN ] Test.segfault", 1017 "junk", 1018 "Running main() from gtest_main.cc", 1019 "[==========] Running 17 tests from 1 test case.", 1020 "[----------] Global test environment set-up.", 1021 "[----------] 17 tests from MessageTest", 1022 "[ RUN ] Test.next", 1023 "[ FAILED ] Test.next (0 ms)", 1024 ]; 1025 // dfmt on 1026 } 1027 1028 string[] testData7() { 1029 // dfmt off 1030 return [ 1031 "Running main() from gtest_main.cc", 1032 "[==========] Running 17 tests from 1 test case.", 1033 "[----------] Global test environment set-up.", 1034 "[----------] 17 tests from MessageTest", 1035 "[ RUN ] Test.segfault1", 1036 "junk", 1037 "Running main() from gtest_main.cc", 1038 "[==========] Running 17 tests from 1 test case.", 1039 "[----------] Global test environment set-up.", 1040 "[----------] 17 tests from MessageTest", 1041 "[ RUN ] Test.segfault2", 1042 ]; 1043 // dfmt on 1044 } 1045 }