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