Crashpad
 
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Loading...
Searching...
No Matches
gtest_death.h File Reference
#include "base/logging.h"
#include "build/build_config.h"
#include "gtest/gtest.h"
Include dependency graph for gtest_death.h:

Macros

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

Macro Definition Documentation

◆ ASSERT_DEATH_CHECK

#define ASSERT_DEATH_CHECK ( statement,
regex )
Value:
ASSERT_DEATH_CRASH(statement, regex)
#define ASSERT_DEATH_CRASH(statement, regex)
Wraps the Google Test ASSERT_DEATH_IF_SUPPORTED() macro to make assertions about death caused by cras...
Definition gtest_death.h:45

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)
Swallows EXC_CRASH and EXC_CORPSE_NOTIFY exceptions in test child processes.
Definition exception_swallower.h:55
static void SwallowExceptions()
In a test child process, arranges to swallow EXC_CRASH and EXC_CORPSE_NOTIFY exceptions.
Definition exception_swallower.cc:154

Wraps the Google Test 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 Google Test (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 )
Value:
EXPECT_DEATH_CRASH(statement, regex)
#define EXPECT_DEATH_CRASH(statement, regex)
Wraps the Google Test EXPECT_DEATH_IF_SUPPORTED() macro to make assertions about death caused by cras...
Definition gtest_death.h:68

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 Google Test 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 Google Test (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()