33 #ifndef GOOGLETEST_INCLUDE_GTEST_GTEST_SPI_H_
34 #define GOOGLETEST_INCLUDE_GTEST_GTEST_SPI_H_
36 #include "gtest/gtest.h"
52 class GTEST_API_ ScopedFakeTestPartResultReporter
53 :
public TestPartResultReporterInterface {
57 INTERCEPT_ONLY_CURRENT_THREAD,
65 explicit ScopedFakeTestPartResultReporter(TestPartResultArray*
result);
68 ScopedFakeTestPartResultReporter(InterceptMode intercept_mode,
69 TestPartResultArray*
result);
72 ~ScopedFakeTestPartResultReporter()
override;
79 void ReportTestPartResult(
const TestPartResult&
result)
override;
84 const InterceptMode intercept_mode_;
85 TestPartResultReporterInterface* old_reporter_;
86 TestPartResultArray*
const result_;
101 SingleFailureChecker(
const TestPartResultArray*
results,
103 ~SingleFailureChecker();
105 const TestPartResultArray*
const results_;
141 #define EXPECT_FATAL_FAILURE(statement, substr) \
143 class GTestExpectFatalFailureHelper {\
145 static void Execute() { statement; }\
147 ::testing::TestPartResultArray gtest_failures;\
148 ::testing::internal::SingleFailureChecker gtest_checker(\
149 >est_failures, ::testing::TestPartResult::kFatalFailure, (substr));\
151 ::testing::ScopedFakeTestPartResultReporter gtest_reporter(\
152 ::testing::ScopedFakeTestPartResultReporter:: \
153 INTERCEPT_ONLY_CURRENT_THREAD, >est_failures);\
154 GTestExpectFatalFailureHelper::Execute();\
156 } while (::testing::internal::AlwaysFalse())
158 #define EXPECT_FATAL_FAILURE_ON_ALL_THREADS(statement, substr) \
160 class GTestExpectFatalFailureHelper {\
162 static void Execute() { statement; }\
164 ::testing::TestPartResultArray gtest_failures;\
165 ::testing::internal::SingleFailureChecker gtest_checker(\
166 >est_failures, ::testing::TestPartResult::kFatalFailure, (substr));\
168 ::testing::ScopedFakeTestPartResultReporter gtest_reporter(\
169 ::testing::ScopedFakeTestPartResultReporter:: \
170 INTERCEPT_ALL_THREADS, >est_failures);\
171 GTestExpectFatalFailureHelper::Execute();\
173 } while (::testing::internal::AlwaysFalse())
207 #define EXPECT_NONFATAL_FAILURE(statement, substr) \
209 ::testing::TestPartResultArray gtest_failures;\
210 ::testing::internal::SingleFailureChecker gtest_checker(\
211 >est_failures, ::testing::TestPartResult::kNonFatalFailure, \
214 ::testing::ScopedFakeTestPartResultReporter gtest_reporter(\
215 ::testing::ScopedFakeTestPartResultReporter:: \
216 INTERCEPT_ONLY_CURRENT_THREAD, >est_failures);\
217 if (::testing::internal::AlwaysTrue()) { statement; }\
219 } while (::testing::internal::AlwaysFalse())
221 #define EXPECT_NONFATAL_FAILURE_ON_ALL_THREADS(statement, substr) \
223 ::testing::TestPartResultArray gtest_failures;\
224 ::testing::internal::SingleFailureChecker gtest_checker(\
225 >est_failures, ::testing::TestPartResult::kNonFatalFailure, \
228 ::testing::ScopedFakeTestPartResultReporter gtest_reporter(\
229 ::testing::ScopedFakeTestPartResultReporter::INTERCEPT_ALL_THREADS, \
231 if (::testing::internal::AlwaysTrue()) { statement; }\
233 } while (::testing::internal::AlwaysFalse())
235 #endif // GOOGLETEST_INCLUDE_GTEST_GTEST_SPI_H_