40 #ifndef GOOGLETEST_INCLUDE_GTEST_GTEST_DEATH_TEST_H_
41 #define GOOGLETEST_INCLUDE_GTEST_GTEST_DEATH_TEST_H_
54 #ifdef GTEST_HAS_DEATH_TEST
173 #define ASSERT_EXIT(statement, predicate, matcher) \
174 GTEST_DEATH_TEST_(statement, predicate, matcher, GTEST_FATAL_FAILURE_)
178 #define EXPECT_EXIT(statement, predicate, matcher) \
179 GTEST_DEATH_TEST_(statement, predicate, matcher, GTEST_NONFATAL_FAILURE_)
184 #define ASSERT_DEATH(statement, matcher) \
185 ASSERT_EXIT(statement, ::testing::internal::ExitedUnsuccessfully, matcher)
189 #define EXPECT_DEATH(statement, matcher) \
190 EXPECT_EXIT(statement, ::testing::internal::ExitedUnsuccessfully, matcher)
197 explicit ExitedWithCode(
int exit_code);
198 ExitedWithCode(
const ExitedWithCode&) =
default;
199 void operator=(
const ExitedWithCode& other) =
delete;
200 bool operator()(
int exit_status)
const;
203 const int exit_code_;
206 #if !defined(GTEST_OS_WINDOWS) && !defined(GTEST_OS_FUCHSIA)
211 explicit KilledBySignal(
int signum);
212 bool operator()(
int exit_status)
const;
217 #endif // !GTEST_OS_WINDOWS
264 #define EXPECT_DEBUG_DEATH(statement, regex) \
265 GTEST_EXECUTE_STATEMENT_(statement, regex)
267 #define ASSERT_DEBUG_DEATH(statement, regex) \
268 GTEST_EXECUTE_STATEMENT_(statement, regex)
272 #define EXPECT_DEBUG_DEATH(statement, regex) EXPECT_DEATH(statement, regex)
274 #define ASSERT_DEBUG_DEATH(statement, regex) ASSERT_DEATH(statement, regex)
276 #endif // NDEBUG for EXPECT_DEBUG_DEATH
277 #endif // GTEST_HAS_DEATH_TEST
314 #define GTEST_UNSUPPORTED_DEATH_TEST(statement, regex_or_matcher, terminator) \
315 GTEST_AMBIGUOUS_ELSE_BLOCKER_ \
316 if (::testing::internal::AlwaysTrue()) { \
317 GTEST_LOG_(WARNING) << "Death tests are not supported on this platform.\n" \
318 << "Statement '" #statement "' cannot be verified."; \
319 } else if (::testing::internal::AlwaysFalse()) { \
320 ::testing::internal::MakeDeathTestMatcher(regex_or_matcher); \
321 GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement); \
331 #ifdef GTEST_HAS_DEATH_TEST
332 #define EXPECT_DEATH_IF_SUPPORTED(statement, regex) \
333 EXPECT_DEATH(statement, regex)
334 #define ASSERT_DEATH_IF_SUPPORTED(statement, regex) \
335 ASSERT_DEATH(statement, regex)
337 #define EXPECT_DEATH_IF_SUPPORTED(statement, regex) \
338 GTEST_UNSUPPORTED_DEATH_TEST(statement, regex, )
339 #define ASSERT_DEATH_IF_SUPPORTED(statement, regex) \
340 GTEST_UNSUPPORTED_DEATH_TEST(statement, regex, return)
345 #endif // GOOGLETEST_INCLUDE_GTEST_GTEST_DEATH_TEST_H_
#define GTEST_DECLARE_string_(name)