33 #ifndef GOOGLETEST_INCLUDE_GTEST_GTEST_SPI_H_
34 #define GOOGLETEST_INCLUDE_GTEST_GTEST_SPI_H_
54 class GTEST_API_ ScopedFakeTestPartResultReporter
55 :
public TestPartResultReporterInterface {
59 INTERCEPT_ONLY_CURRENT_THREAD,
67 explicit ScopedFakeTestPartResultReporter(TestPartResultArray* result);
70 ScopedFakeTestPartResultReporter(InterceptMode intercept_mode,
71 TestPartResultArray* result);
74 ~ScopedFakeTestPartResultReporter()
override;
81 void ReportTestPartResult(
const TestPartResult& result)
override;
86 const InterceptMode intercept_mode_;
87 TestPartResultReporterInterface* old_reporter_;
88 TestPartResultArray*
const result_;
90 ScopedFakeTestPartResultReporter(
const ScopedFakeTestPartResultReporter&) =
92 ScopedFakeTestPartResultReporter& operator=(
93 const ScopedFakeTestPartResultReporter&) =
delete;
106 SingleFailureChecker(
const TestPartResultArray* results,
107 TestPartResult::Type type,
const std::string& substr);
108 ~SingleFailureChecker();
111 const TestPartResultArray*
const results_;
112 const TestPartResult::Type type_;
113 const std::string substr_;
115 SingleFailureChecker(
const SingleFailureChecker&) =
delete;
116 SingleFailureChecker& operator=(
const SingleFailureChecker&) =
delete;
149 #define EXPECT_FATAL_FAILURE(statement, substr) \
151 class GTestExpectFatalFailureHelper { \
153 static void Execute() { statement; } \
155 ::testing::TestPartResultArray gtest_failures; \
156 ::testing::internal::SingleFailureChecker gtest_checker( \
157 >est_failures, ::testing::TestPartResult::kFatalFailure, (substr)); \
159 ::testing::ScopedFakeTestPartResultReporter gtest_reporter( \
160 ::testing::ScopedFakeTestPartResultReporter:: \
161 INTERCEPT_ONLY_CURRENT_THREAD, \
163 GTestExpectFatalFailureHelper::Execute(); \
165 } while (::testing::internal::AlwaysFalse())
167 #define EXPECT_FATAL_FAILURE_ON_ALL_THREADS(statement, substr) \
169 class GTestExpectFatalFailureHelper { \
171 static void Execute() { statement; } \
173 ::testing::TestPartResultArray gtest_failures; \
174 ::testing::internal::SingleFailureChecker gtest_checker( \
175 >est_failures, ::testing::TestPartResult::kFatalFailure, (substr)); \
177 ::testing::ScopedFakeTestPartResultReporter gtest_reporter( \
178 ::testing::ScopedFakeTestPartResultReporter::INTERCEPT_ALL_THREADS, \
180 GTestExpectFatalFailureHelper::Execute(); \
182 } while (::testing::internal::AlwaysFalse())
217 #define EXPECT_NONFATAL_FAILURE(statement, substr) \
219 ::testing::TestPartResultArray gtest_failures; \
220 ::testing::internal::SingleFailureChecker gtest_checker( \
221 >est_failures, ::testing::TestPartResult::kNonFatalFailure, \
224 ::testing::ScopedFakeTestPartResultReporter gtest_reporter( \
225 ::testing::ScopedFakeTestPartResultReporter:: \
226 INTERCEPT_ONLY_CURRENT_THREAD, \
228 if (::testing::internal::AlwaysTrue()) { \
232 } while (::testing::internal::AlwaysFalse())
234 #define EXPECT_NONFATAL_FAILURE_ON_ALL_THREADS(statement, substr) \
236 ::testing::TestPartResultArray gtest_failures; \
237 ::testing::internal::SingleFailureChecker gtest_checker( \
238 >est_failures, ::testing::TestPartResult::kNonFatalFailure, \
241 ::testing::ScopedFakeTestPartResultReporter gtest_reporter( \
242 ::testing::ScopedFakeTestPartResultReporter::INTERCEPT_ALL_THREADS, \
244 if (::testing::internal::AlwaysTrue()) { \
248 } while (::testing::internal::AlwaysFalse())
250 #endif // GOOGLETEST_INCLUDE_GTEST_GTEST_SPI_H_
GTEST_DISABLE_MSC_WARNINGS_POP_() TEST(LinkTest
#define GTEST_DISABLE_MSC_WARNINGS_PUSH_(warnings)