mirror of
https://github.com/chromium/crashpad.git
synced 2024-12-29 16:45:53 +08:00
26804a0be1
Likewise for EXPECT_DEATH_CHECK() and EXPECT_DEATH(). In the in-Chromium build configured for official builds in Release mode, CHECK() throws away its condition string and stream parameters without ever printing them, although it still evaluates the condition and triggers death appropriately. {ASSERT,EXPECT}_DEATH(statement, regex) will not work correctly for any regex that attempts to match what CHECK() prints. In these build configurations, {ASSERT,EXPECT}_DEATH_CHECK() use a match-all regex (""). In other build configurations, they transparently wrap {ASSERT,EXPECT}_DEATH(). BUG=crashpad:12 R=rsesek@chromium.org, scottmg@chromium.org Review URL: https://codereview.chromium.org/992693003
56 lines
2.3 KiB
C
56 lines
2.3 KiB
C
// Copyright 2015 The Crashpad Authors. All rights reserved.
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
|
|
#ifndef CRASHPAD_UTIL_TEST_GTEST_DEATH_CHECK_H_
|
|
#define CRASHPAD_UTIL_TEST_GTEST_DEATH_CHECK_H_
|
|
|
|
#include "base/logging.h"
|
|
#include "gtest/gtest.h"
|
|
|
|
//! \file
|
|
|
|
#if !(!defined(MINI_CHROMIUM_BASE_LOGGING_H_) && \
|
|
defined(OFFICIAL_BUILD) && \
|
|
defined(NDEBUG)) || \
|
|
DOXYGEN
|
|
|
|
//! \brief Wraps the gtest `ASSERT_DEATH()` macro to make assertions about death
|
|
//! caused by `CHECK()` failures.
|
|
//!
|
|
//! In an in-Chromium build in the official configuration in Release mode,
|
|
//! `CHECK()` does not print its condition or streamed messages. In that case,
|
|
//! this macro uses an empty \a regex pattern when calling `ASSERT_DEATH()` to
|
|
//! avoid looking for any particular output on the standard error stream. In
|
|
//! other build configurations, the \a regex pattern is left intact.
|
|
#define ASSERT_DEATH_CHECK(statement, regex) ASSERT_DEATH(statement, regex)
|
|
|
|
//! \brief Wraps the gtest `EXPECT_DEATH()` macro to make assertions about death
|
|
//! caused by `CHECK()` failures.
|
|
//!
|
|
//! In an in-Chromium build in the official configuration in Release mode,
|
|
//! `CHECK()` does not print its condition or streamed messages. In that case,
|
|
//! this macro uses an empty \a regex pattern when calling `EXPECT_DEATH()` to
|
|
//! avoid looking for any particular output on the standard error stream. In
|
|
//! other build configurations, the \a regex pattern is left intact.
|
|
#define EXPECT_DEATH_CHECK(statement, regex) EXPECT_DEATH(statement, regex)
|
|
|
|
#else
|
|
|
|
#define ASSERT_DEATH_CHECK(statement, regex) ASSERT_DEATH(statement, "")
|
|
#define EXPECT_DEATH_CHECK(statement, regex) EXPECT_DEATH(statement, "")
|
|
|
|
#endif
|
|
|
|
#endif // CRASHPAD_UTIL_TEST_GTEST_DEATH_CHECK_H_
|