Turi Create
4.0
test_macros.hpp
1
/* Copyright © 2017 Apple Inc. All rights reserved.
2
*
3
* Use of this source code is governed by a BSD-3-clause license that can
4
* be found in the LICENSE.txt file or at https://opensource.org/licenses/BSD-3-Clause
5
*/
6
#ifndef TEST_MACROS_HPP
7
#define TEST_MACROS_HPP
8
9
#include <mutex>
10
11
static
std::recursive_mutex __b_lock__;
12
#define _TS_ADD_LOCK_GUARD std::lock_guard<std::recursive_mutex> __guard_b__(__b_lock__)
13
14
#define TS_ASSERT(x) do { _TS_ADD_LOCK_GUARD; BOOST_CHECK(x); } while(0)
15
#define TS_ASSERT_EQUALS(x,y) do { _TS_ADD_LOCK_GUARD; BOOST_TEST((x) == (y)); } while(0)
16
#define TS_ASSERT_DIFFERS(x,y) do { _TS_ADD_LOCK_GUARD; BOOST_TEST((x) != (y)); } while(0)
17
#define TS_ASSERT_LESS_THAN_EQUALS(x,y) do { _TS_ADD_LOCK_GUARD; BOOST_TEST((x) <= (y)); } while(0)
18
#define TS_ASSERT_LESS_THAN(x,y) do { _TS_ADD_LOCK_GUARD; BOOST_TEST((x) < (y)); } while(0)
19
#define TS_ASSERT_DELTA(x,y,e) do { _TS_ADD_LOCK_GUARD; BOOST_TEST(static_cast<double>(x) == static_cast<double>(y), boost::test_tools::tolerance(static_cast<double>(e))); } while(0)
20
#define TS_ASSERT_THROWS_NOTHING(expr) do { _TS_ADD_LOCK_GUARD; BOOST_CHECK_NO_THROW(expr); } while(0)
21
#define TS_ASSERT_THROWS_ANYTHING(expr) \
22
do { \
23
_TS_ADD_LOCK_GUARD; \
24
bool threw=false; \
25
try { \
26
expr; \
27
} catch (...) {\
28
threw=true;\
29
} \
30
BOOST_TEST(threw==true);\
31
} while(0)
32
#define TS_ASSERT_THROWS(expr,type) do { _TS_ADD_LOCK_GUARD; BOOST_CHECK_THROW(expr,type); } while(0)
33
#define TS_FAIL(msg) do { _TS_ADD_LOCK_GUARD; BOOST_FAIL(msg); } while(0)
34
#define TS_WARN(msg) do { _TS_ADD_LOCK_GUARD; BOOST_TEST_MESSAGE(msg); } while(0)
35
#define TS_ASSERT_SAME_DATA(x,y,size) do { _TS_ADD_LOCK_GUARD; BOOST_CHECK_EQUAL_COLLECTIONS(x, x+size, y, y+size); } while(0)
36
37
#endif
core
util
test_macros.hpp
Generated by
1.8.13