33#include "gtest/gtest-test-part.h"
35#include "gtest/internal/gtest-port.h"
36#include "src/gtest-internal-inl.h"
40using internal::GetUnitTestImpl;
44std::string TestPartResult::ExtractSummary(
const char* message) {
45 const char*
const stack_trace = strstr(message, internal::kStackTraceMarker);
46 return stack_trace ==
nullptr ? message : std::string(message, stack_trace);
50std::ostream& operator<<(std::ostream& os,
const TestPartResult& result) {
51 return os << internal::FormatFileLocation(result.file_name(),
54 << (result.type() == TestPartResult::kSuccess ?
"Success"
55 : result.type() == TestPartResult::kSkip ?
"Skipped"
56 : result.type() == TestPartResult::kFatalFailure
58 :
"Non-fatal failure")
60 << result.message() << std::endl;
64void TestPartResultArray::Append(
const TestPartResult& result) {
65 array_.push_back(result);
69const TestPartResult& TestPartResultArray::GetTestPartResult(
int index)
const {
70 if (index < 0 || index >= size()) {
71 printf(
"\nInvalid index (%d) into TestPartResultArray.\n", index);
72 internal::posix::Abort();
75 return array_[
static_cast<size_t>(index)];
79int TestPartResultArray::size()
const {
80 return static_cast<int>(array_.size());
85HasNewFatalFailureHelper::HasNewFatalFailureHelper()
86 : has_new_fatal_failure_(false),
88 GetUnitTestImpl()->GetTestPartResultReporterForCurrentThread()) {
89 GetUnitTestImpl()->SetTestPartResultReporterForCurrentThread(
this);
92HasNewFatalFailureHelper::~HasNewFatalFailureHelper() {
93 GetUnitTestImpl()->SetTestPartResultReporterForCurrentThread(
97void HasNewFatalFailureHelper::ReportTestPartResult(
98 const TestPartResult& result) {
99 if (result.fatally_failed()) has_new_fatal_failure_ =
true;
100 original_reporter_->ReportTestPartResult(result);