
BUG=120480 TEST=Not tested. Review URL: https://chromiumcodereview.appspot.com/10642009 TBR=zysxqn@google.com Review URL: https://chromiumcodereview.appspot.com/10659022 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@144074 0039d316-1c4b-4281-b951-d872f2087c98
54 lines
1.1 KiB
C++
54 lines
1.1 KiB
C++
// Copyright (c) 2012 The Chromium Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
//
|
|
// Macros specific to the RLZ library.
|
|
|
|
#ifndef RLZ_LIB_ASSERT_H_
|
|
#define RLZ_LIB_ASSERT_H_
|
|
|
|
#include <string>
|
|
#include "base/logging.h"
|
|
|
|
// An assertion macro.
|
|
// Can mute expected assertions in debug mode.
|
|
|
|
#ifndef ASSERT_STRING
|
|
#ifndef MUTE_EXPECTED_ASSERTS
|
|
#define ASSERT_STRING(expr) LOG_IF(FATAL, false) << (expr)
|
|
#else
|
|
#define ASSERT_STRING(expr) \
|
|
do { \
|
|
std::string expr_string(expr); \
|
|
if (rlz_lib::expected_assertion_ != expr_string) { \
|
|
LOG_IF(FATAL, false) << (expr); \
|
|
} \
|
|
} while (0)
|
|
#endif
|
|
#endif
|
|
|
|
|
|
#ifndef VERIFY
|
|
#ifdef _DEBUG
|
|
#define VERIFY(expr) LOG_IF(FATAL, !(expr)) << #expr
|
|
#else
|
|
#define VERIFY(expr) (void)(expr)
|
|
#endif
|
|
#endif
|
|
|
|
namespace rlz_lib {
|
|
|
|
#ifdef MUTE_EXPECTED_ASSERTS
|
|
extern std::string expected_assertion_;
|
|
#endif
|
|
|
|
inline void SetExpectedAssertion(const char* s) {
|
|
#ifdef MUTE_EXPECTED_ASSERTS
|
|
expected_assertion_ = s;
|
|
#endif
|
|
}
|
|
|
|
} // rlz_lib
|
|
|
|
#endif // RLZ_LIB_ASSERT_H_
|