Crashpad
Macros
gtest_death.h File Reference
#include "base/logging.h"
#include "build/build_config.h"
#include "gtest/gtest.h"

Macros

#define ASSERT_DEATH_CRASH(statement, regex)
 Wraps the gtest ASSERT_DEATH_IF_SUPPORTED() macro to make assertions about death caused by crashes. More...
 
#define EXPECT_DEATH_CRASH(statement, regex)
 Wraps the gtest EXPECT_DEATH_IF_SUPPORTED() macro to make assertions about death caused by crashes. More...
 
#define ASSERT_DEATH_CHECK(statement, regex)   ASSERT_DEATH_CRASH(statement, regex)
 Wraps the ASSERT_DEATH_CRASH() macro to make assertions about death caused by CHECK() failures. More...
 
#define EXPECT_DEATH_CHECK(statement, regex)   EXPECT_DEATH_CRASH(statement, regex)
 Wraps the EXPECT_DEATH_CRASH() macro to make assertions about death caused by CHECK() failures. More...
 

Macro Definition Documentation

◆ ASSERT_DEATH_CHECK

#define ASSERT_DEATH_CHECK (   statement,
  regex 
)    ASSERT_DEATH_CRASH(statement, regex)

Wraps the ASSERT_DEATH_CRASH() macro to make assertions about death caused by CHECK() failures.

In an in-Chromium build in the official configuration, CHECK() does not print its condition or streamed messages. In that case, this macro uses an empty regex pattern when calling ASSERT_DEATH_CRASH() to avoid looking for any particular output on the standard error stream. In other build configurations, the regex pattern is left intact.

On macOS, CHECK() failures normally show up as crashes to the system’s crash reporter, but it is undesirable for intentional ASSERT_DEATH_CHECK() crashes to be handled by any crash reporter, so this is implemented in terms of ASSERT_DEATH_CRASH() instead of ASSERT_DEATH().

See also
EXPECT_DEATH_CHECK()

◆ ASSERT_DEATH_CRASH

#define ASSERT_DEATH_CRASH (   statement,
  regex 
)
Value:
do { \
crashpad::test::ExceptionSwallower exception_swallower; \
ASSERT_DEATH_IF_SUPPORTED( \
{ statement; }, regex); \
} while (false)

Wraps the gtest ASSERT_DEATH_IF_SUPPORTED() macro to make assertions about death caused by crashes.

On macOS, this macro prevents the system’s crash reporter from handling crashes that occur in statement. Crashes are normally visible to the system’s crash reporter, but it is undesirable for intentional ASSERT_DEATH_CRASH() crashes to be handled by any crash reporter.

ASSERT_DEATH_IF_SUPPORTED() is used instead of ASSERT_DEATH() to support platforms where death tests are not implemented by gtest (e.g. Fuchsia). On platforms where death tests are not implemented, a warning will be logged and the remainder of the test body skipped.

See also
ASSERT_DEATH_CHECK()
EXPECT_DEATH_CRASH()

◆ EXPECT_DEATH_CHECK

#define EXPECT_DEATH_CHECK (   statement,
  regex 
)    EXPECT_DEATH_CRASH(statement, regex)

Wraps the EXPECT_DEATH_CRASH() macro to make assertions about death caused by CHECK() failures.

In an in-Chromium build in the official configuration, CHECK() does not print its condition or streamed messages. In that case, this macro uses an empty regex pattern when calling EXPECT_DEATH_CRASH() to avoid looking for any particular output on the standard error stream. In other build configurations, the regex pattern is left intact.

On macOS, CHECK() failures normally show up as crashes to the system’s crash reporter, but it is undesirable for intentional EXPECT_DEATH_CHECK() crashes to be handled by any crash reporter, so this is implemented in terms of EXPECT_DEATH_CRASH() instead of EXPECT_DEATH().

See also
ASSERT_DEATH_CHECK()

◆ EXPECT_DEATH_CRASH

#define EXPECT_DEATH_CRASH (   statement,
  regex 
)
Value:
do { \
crashpad::test::ExceptionSwallower exception_swallower; \
{ statement; }, \
regex); \
} while (false)

Wraps the gtest EXPECT_DEATH_IF_SUPPORTED() macro to make assertions about death caused by crashes.

On macOS, this macro prevents the system’s crash reporter from handling crashes that occur in statement. Crashes are normally visible to the system’s crash reporter, but it is undesirable for intentional EXPECT_DEATH_CRASH() crashes to be handled by any crash reporter.

EXPECT_DEATH_IF_SUPPORTED() is used instead of EXPECT_DEATH() to support platforms where death tests are not implemented by gtest (e.g. Fuchsia). On platforms where death tests are not implemented, a warning will be logged and the remainder of the test body skipped.

See also
EXPECT_DEATH_CHECK()
ASSERT_DEATH_CRASH()
crashpad::test::ExceptionSwallower::SwallowExceptions
static void SwallowExceptions()
In a test child process, arranges to swallow EXC_CRASH and EXC_CORPSE_NOTIFY exceptions.
Definition: exception_swallower.cc:153