| [/ |
| Copyright 2010, 2011 Beman Dawes |
| Copyright 2013 Ion Gaztanaga |
| Copyright 2014, 2017 Peter Dimov |
| Copyright 2017 Kohei Takahashi |
| |
| Distributed under the Boost Software License, Version 1.0. |
| |
| See accompanying file LICENSE_1_0.txt |
| or copy at http://boost.org/LICENSE_1_0.txt |
| ] |
| |
| [section:lightweight_test lightweight_test] |
| |
| [simplesect Authors] |
| |
| * Peter Dimov |
| * Beman Dawes |
| |
| [endsimplesect] |
| |
| [section Header <boost/core/lightweight_test.hpp>] |
| |
| The header `<boost/core/lightweight_test.hpp>` is a |
| lightweight test framework. It's useful for writing |
| Boost regression tests for components that are dependencies |
| of Boost.Test. |
| |
| When using `lightweight_test.hpp`, *do not forget* to |
| `return boost::report_errors()` from `main`. |
| |
| [section Synopsis] |
| |
| `` |
| #define BOOST_TEST(expression) /*unspecified*/ |
| #define BOOST_TEST_NOT(expression) /*unspecified*/ |
| #define BOOST_ERROR(message) /*unspecified*/ |
| #define BOOST_TEST_EQ(expr1, expr2) /*unspecified*/ |
| #define BOOST_TEST_NE(expr1, expr2) /*unspecified*/ |
| #define BOOST_TEST_LT(expr1, expr2) /*unspecified*/ |
| #define BOOST_TEST_LE(expr1, expr2) /*unspecified*/ |
| #define BOOST_TEST_GT(expr1, expr2) /*unspecified*/ |
| #define BOOST_TEST_GE(expr1, expr2) /*unspecified*/ |
| #define BOOST_TEST_CSTR_EQ(expr1, expr2) /*unspecified*/ |
| #define BOOST_TEST_CSTR_NE(expr1, expr2) /*unspecified*/ |
| #define BOOST_TEST_ALL_EQ(begin1, end1, begin2, end2) /* unspecified */ |
| #define BOOST_TEST_ALL_WITH(begin1, end1, begin2, end2, predicate) /* unspecified */ |
| #define BOOST_TEST_THROWS(expr, excep) /*unspecified*/ |
| |
| namespace boost |
| { |
| int report_errors(); |
| } |
| `` |
| |
| [endsect] |
| |
| [section BOOST_TEST] |
| |
| `` |
| BOOST_TEST(expression) |
| `` |
| |
| If expression is false increases the error count and outputs a |
| message containing `expression`. |
| |
| [endsect] |
| |
| [section BOOST_TEST_NOT] |
| |
| `` |
| BOOST_TEST_NOT(expression) |
| `` |
| |
| If expression is true increases the error count and outputs a |
| message containing `!(expression)`. |
| |
| [endsect] |
| |
| [section BOOST_ERROR] |
| |
| `` |
| BOOST_ERROR(message) |
| `` |
| |
| Increases error count and outputs a message containing |
| `message`. |
| |
| [endsect] |
| |
| [section BOOST_TEST_EQ] |
| |
| `` |
| BOOST_TEST_EQ(expr1, expr2) |
| `` |
| |
| If `expr1 == expr2` is not true increases the error count and outputs a |
| message containing both expressions. |
| |
| [endsect] |
| |
| [section BOOST_TEST_NE] |
| |
| `` |
| BOOST_TEST_NE(expr1, expr2) |
| `` |
| |
| If `expr1 != expr2` is not true increases the error count and outputs a |
| message containing both expressions. |
| |
| [endsect] |
| |
| [section BOOST_TEST_LT] |
| |
| `` |
| BOOST_TEST_LT(expr1, expr2) |
| `` |
| |
| If `expr1 < expr2` is not true increases the error count and outputs a |
| message containing both expressions. |
| |
| [endsect] |
| |
| [section BOOST_TEST_LE] |
| |
| `` |
| BOOST_TEST_LE(expr1, expr2) |
| `` |
| |
| If `expr1 <= expr2` is not true increases the error count and outputs a |
| message containing both expressions. |
| |
| [endsect] |
| |
| [section BOOST_TEST_GT] |
| |
| `` |
| BOOST_TEST_GT(expr1, expr2) |
| `` |
| |
| If `expr1 > expr2` is not true increases the error count and outputs a |
| message containing both expressions. |
| |
| [endsect] |
| |
| [section BOOST_TEST_GE] |
| |
| `` |
| BOOST_TEST_GE(expr1, expr2) |
| `` |
| |
| If `expr1 >= expr2` is not true increases the error count and outputs a |
| message containing both expressions. |
| |
| [endsect] |
| |
| [section BOOST_TEST_CSTR_EQ] |
| |
| `` |
| BOOST_TEST_CSTR_EQ(expr1, expr2) |
| `` |
| |
| Specialization of `BOOST_TEST_EQ` which interprets `expr1` and `expr2` as pointers to null-terminated byte strings (C strings). If `std::strcmp(expr1, expr2) != 0`, increase the error count and output a message containing both expressions. |
| |
| [endsect] |
| |
| [section BOOST_TEST_CSTR_NE] |
| |
| `` |
| BOOST_TEST_CSTR_NE(expr1, expr2) |
| `` |
| |
| Specialization of `BOOST_TEST_NE` which interprets `expr1` and `expr2` as pointers to null-terminated byte strings (C strings). If `std::strcmp(expr1, expr2) == 0`, increase the error count and output a message containing both expressions. |
| |
| [endsect] |
| |
| [section BOOST_TEST_ALL_EQ] |
| |
| `` |
| BOOST_TEST_ALL_EQ(begin1, end1, begin2, end2) |
| `` |
| |
| Compares the content of two sequences. If they have different sizes, or if any pairwise element differs, increases the error count and outputs a message containing at most 8 differing elements. |
| |
| [endsect] |
| |
| [section BOOST_TEST_ALL_WITH] |
| |
| `` |
| BOOST_TEST_ALL_WITH(begin1, end1, begin2, end2, predicate) |
| `` |
| |
| Compares the content of two sequences. If they have different sizes, or if any pairwise element do not fulfill the binary predicate, increases the error count and outputs a message containing at most 8 differing elements. |
| |
| [endsect] |
| |
| [section BOOST_TEST_THROWS] |
| |
| `` |
| BOOST_TEST_THROWS(expr, excep) |
| `` |
| |
| If `BOOST_NO_EXCEPTIONS` is *not* defined and if `expr` does not |
| throw an exception of type `excep`, increases the error count |
| and outputs a message containing the expression. |
| |
| If `BOOST_NO_EXCEPTIONS` is defined, this macro expands to |
| nothing and `expr` is not evaluated. |
| |
| [endsect] |
| |
| [section report_errors] |
| |
| `` |
| int boost::report_errors() |
| `` |
| |
| Return the error count from `main`. |
| |
| [endsect] |
| |
| [section Example] |
| |
| `` |
| #include <boost/core/lightweight_test.hpp> |
| |
| int sqr( int x ) |
| { |
| return x * x; |
| } |
| |
| int main() |
| { |
| BOOST_TEST( sqr(2) == 4 ); |
| BOOST_TEST_EQ( sqr(-3), 9 ); |
| |
| return boost::report_errors(); |
| } |
| `` |
| |
| [endsect] |
| |
| [endsect] |
| |
| [section Header <boost/core/lightweight_test_trait.hpp>] |
| |
| The header `<boost/core/lightweight_test_trait.hpp>` defines |
| a couple of extra macros for testing compile-time traits that |
| return a boolean value. |
| |
| [section Synopsis] |
| |
| `` |
| #define BOOST_TEST_TRAIT_TRUE((Trait)) /*unspecified*/ |
| #define BOOST_TEST_TRAIT_FALSE((Trait)) /*unspecified*/ |
| `` |
| |
| [endsect] |
| |
| [section BOOST_TEST_TRAIT_TRUE] |
| |
| `` |
| BOOST_TEST_TRAIT_TRUE((Trait)) |
| `` |
| |
| If `Trait::value != true` increases the error count and outputs a |
| message containing `Trait`. Note the double set of parentheses; these |
| enable `Trait` to contain a comma, which is common for templates. |
| |
| [endsect] |
| |
| [section BOOST_TEST_TRAIT_FALSE] |
| |
| `` |
| BOOST_TEST_TRAIT_FALSE((Trait)) |
| `` |
| |
| If `Trait::value != false` increases the error count and outputs a |
| message containing `Trait`. Note the double set of parentheses. |
| |
| [endsect] |
| |
| [section Example] |
| |
| `` |
| #include <boost/core/lightweight_test_trait.hpp> |
| #include <boost/core/is_same.hpp> |
| |
| template<class T, class U> struct X |
| { |
| typedef T type; |
| }; |
| |
| using boost::core::is_same; |
| |
| int main() |
| { |
| BOOST_TEST_TRAIT_TRUE(( is_same<X<int, long>::type, int> )); |
| |
| return boost::report_errors(); |
| } |
| `` |
| |
| [endsect] |
| |
| [endsect] |
| |
| [endsect] |