38#ifndef GOOGLETEST_INCLUDE_GTEST_GTEST_DEATH_TEST_H_
39#define GOOGLETEST_INCLUDE_GTEST_GTEST_DEATH_TEST_H_
52#if GTEST_HAS_DEATH_TEST
172# define ASSERT_EXIT(statement, predicate, matcher) \
173 GTEST_DEATH_TEST_(statement, predicate, matcher, GTEST_FATAL_FAILURE_)
177# define EXPECT_EXIT(statement, predicate, matcher) \
178 GTEST_DEATH_TEST_(statement, predicate, matcher, GTEST_NONFATAL_FAILURE_)
183# define ASSERT_DEATH(statement, matcher) \
184 ASSERT_EXIT(statement, ::testing::internal::ExitedUnsuccessfully, matcher)
188# define EXPECT_DEATH(statement, matcher) \
189 EXPECT_EXIT(statement, ::testing::internal::ExitedUnsuccessfully, matcher)
196 explicit ExitedWithCode(
int exit_code);
197 ExitedWithCode(
const ExitedWithCode&) =
default;
198 void operator=(
const ExitedWithCode& other) =
delete;
199 bool operator()(
int exit_status)
const;
201 const int exit_code_;
204# if !GTEST_OS_WINDOWS && !GTEST_OS_FUCHSIA
210 explicit KilledBySignal(
int signum);
211 bool operator()(
int exit_status)
const;
262# define EXPECT_DEBUG_DEATH(statement, regex) \
263 GTEST_EXECUTE_STATEMENT_(statement, regex)
265# define ASSERT_DEBUG_DEATH(statement, regex) \
266 GTEST_EXECUTE_STATEMENT_(statement, regex)
270# define EXPECT_DEBUG_DEATH(statement, regex) \
271 EXPECT_DEATH(statement, regex)
273# define ASSERT_DEBUG_DEATH(statement, regex) \
274 ASSERT_DEATH(statement, regex)
314# define GTEST_UNSUPPORTED_DEATH_TEST(statement, regex, terminator) \
315 GTEST_AMBIGUOUS_ELSE_BLOCKER_ \
316 if (::testing::internal::AlwaysTrue()) { \
317 GTEST_LOG_(WARNING) \
318 << "Death tests are not supported on this platform.\n" \
319 << "Statement '" #statement "' cannot be verified."; \
320 } else if (::testing::internal::AlwaysFalse()) { \
321 ::testing::internal::RE::PartialMatch(".*", (regex)); \
322 GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement); \
332#if GTEST_HAS_DEATH_TEST
333# define EXPECT_DEATH_IF_SUPPORTED(statement, regex) \
334 EXPECT_DEATH(statement, regex)
335# define ASSERT_DEATH_IF_SUPPORTED(statement, regex) \
336 ASSERT_DEATH(statement, regex)
338# define EXPECT_DEATH_IF_SUPPORTED(statement, regex) \
339 GTEST_UNSUPPORTED_DEATH_TEST(statement, regex, )
340# define ASSERT_DEATH_IF_SUPPORTED(statement, regex) \
341 GTEST_UNSUPPORTED_DEATH_TEST(statement, regex, return)
GTEST_DECLARE_string_(death_test_style)