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