123456789101112131415161718192021222324252627282930313233343536373839 |
- // Formatting library for C++ - test version of FMT_ASSERT
- //
- // Copyright (c) 2012 - present, Victor Zverovich
- // All rights reserved.
- //
- // For the license information refer to format.h.
- #ifndef FMT_TEST_ASSERT_H_
- #define FMT_TEST_ASSERT_H_
- #include <stdexcept>
- void throw_assertion_failure(const char* message);
- #define FMT_ASSERT(condition, message) \
- if (!(condition)) throw_assertion_failure(message);
- #include "gtest/gtest.h"
- class assertion_failure : public std::logic_error {
- public:
- explicit assertion_failure(const char* message) : std::logic_error(message) {}
- private:
- virtual void avoid_weak_vtable();
- };
- void assertion_failure::avoid_weak_vtable() {}
- // We use a separate function (rather than throw directly from FMT_ASSERT) to
- // avoid GCC's -Wterminate warning when FMT_ASSERT is used in a destructor.
- inline void throw_assertion_failure(const char* message) {
- throw assertion_failure(message);
- }
- // Expects an assertion failure.
- #define EXPECT_ASSERT(stmt, message) \
- FMT_TEST_THROW_(stmt, assertion_failure, message, GTEST_NONFATAL_FAILURE_)
- #endif // FMT_TEST_ASSERT_H_
|