| 425 | } |
| 426 | |
| 427 | void OnFinish(const TFinish* descr) override { |
| 428 | TraceProcessor->Finish(*descr); |
| 429 | if (!GetIsForked() && ForkExitedCorrectly) { |
| 430 | return; |
| 431 | } |
| 432 | if (!PrintAfterTest_) { |
| 433 | return; |
| 434 | } |
| 435 | |
| 436 | if (descr->Success) { |
| 437 | fprintf(stderr, "[%sgood%s] %s::%s\n", LightGreenColor().data(), OldColor().data(), |
| 438 | descr->test->unit->name.data(), |
| 439 | descr->test->name); |
| 440 | NOTE_IN_VALGRIND(descr->test); |
| 441 | PrintTimes(SaveTestDuration()); |
| 442 | if (GetIsForked()) { |
| 443 | fprintf(stderr, "%s", ForkCorrectExitMsg); |
| 444 | } |
| 445 | } |
| 446 | } |
| 447 | |
| 448 | inline TDuration SaveTestDuration() { |
| 449 | const TInstant now = TInstant::Now(); |