34#ifndef GOOGLETEST_INCLUDE_GTEST_GTEST_TEST_PART_H_
35#define GOOGLETEST_INCLUDE_GTEST_GTEST_TEST_PART_H_
40#include "gtest/internal/gtest-internal.h"
41#include "gtest/internal/gtest-string.h"
43GTEST_DISABLE_MSC_WARNINGS_PUSH_(4251 \
52class GTEST_API_ TestPartResult {
66 TestPartResult(Type a_type,
const char* a_file_name,
int a_line_number,
67 const char* a_message)
69 file_name_(a_file_name == nullptr ?
"" : a_file_name),
70 line_number_(a_line_number),
71 summary_(ExtractSummary(a_message)),
72 message_(a_message) {}
75 Type type()
const {
return type_; }
79 const char* file_name()
const {
80 return file_name_.empty() ? nullptr : file_name_.c_str();
85 int line_number()
const {
return line_number_; }
88 const char* summary()
const {
return summary_.c_str(); }
91 const char* message()
const {
return message_.c_str(); }
94 bool skipped()
const {
return type_ == kSkip; }
97 bool passed()
const {
return type_ == kSuccess; }
100 bool nonfatally_failed()
const {
return type_ == kNonFatalFailure; }
103 bool fatally_failed()
const {
return type_ == kFatalFailure; }
106 bool failed()
const {
return fatally_failed() || nonfatally_failed(); }
113 static std::string ExtractSummary(
const char* message);
117 std::string file_name_;
121 std::string summary_;
122 std::string message_;
126std::ostream& operator<<(std::ostream& os,
const TestPartResult& result);
132class GTEST_API_ TestPartResultArray {
134 TestPartResultArray() {}
137 void Append(
const TestPartResult& result);
140 const TestPartResult& GetTestPartResult(
int index)
const;
146 std::vector<TestPartResult> array_;
148 TestPartResultArray(
const TestPartResultArray&) =
delete;
149 TestPartResultArray& operator=(
const TestPartResultArray&) =
delete;
153class GTEST_API_ TestPartResultReporterInterface {
155 virtual ~TestPartResultReporterInterface() {}
157 virtual void ReportTestPartResult(
const TestPartResult& result) = 0;
168class GTEST_API_ HasNewFatalFailureHelper
169 :
public TestPartResultReporterInterface {
171 HasNewFatalFailureHelper();
172 ~HasNewFatalFailureHelper()
override;
173 void ReportTestPartResult(
const TestPartResult& result)
override;
174 bool has_new_fatal_failure()
const {
return has_new_fatal_failure_; }
177 bool has_new_fatal_failure_;
178 TestPartResultReporterInterface* original_reporter_;
180 HasNewFatalFailureHelper(
const HasNewFatalFailureHelper&) =
delete;
181 HasNewFatalFailureHelper& operator=(
const HasNewFatalFailureHelper&) =
delete;
188GTEST_DISABLE_MSC_WARNINGS_POP_()