Заголовок<<boost/core/lightweight_test.hpp>>является легкой тестовой структурой. Он полезен для написания регрессионных тестов Boost для компонентов, которые являются зависимостями Boost. Тест.
При использовании<lightweight_test.hpp>,не забывайтедо<return
       boost::report_errors()>из<main>.
#define BOOST_TEST(expression) 
#define BOOST_ERROR(message) 
#define BOOST_TEST_EQ(expr1, expr2) 
#define BOOST_TEST_NE(expr1, expr2) 
#define BOOST_TEST_THROWS(expr, excep) 
namespace boost
{
    int report_errors();
}
 
BOOST_TEST(expression)
Если выражение ложное, то увеличивается количество ошибок и выводится сообщение, содержащее<expression>.
 
BOOST_ERROR(message)
Увеличивает количество ошибок и выводит сообщение, содержащее<message>.
 
BOOST_TEST_EQ(expr1, expr2)
Если<expr1!=
         expr2>увеличивает количество ошибок и выводит сообщение, содержащее оба выражения.
 
BOOST_TEST_NE(expr1, expr2)
Если<expr1==
         expr2>увеличивает количество ошибок и выводит сообщение, содержащее оба выражения.
 
BOOST_TEST_THROWS(expr, excep)
Если<BOOST_NO_EXCEPTIONS>неопределено и если<expr>не бросает исключение типа<excep>, увеличивает количество ошибок и выводит сообщение, содержащее выражение.
Если<BOOST_NO_EXCEPTIONS>определено, этот макрос ни к чему не расширяется и<expr>не оценивается.
 
int boost::report_errors()
Возвращаем ошибку<main>.
 
#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();
}
 
 
Заголовок<<boost/core/lightweight_test_trait.hpp>>определяет пару дополнительных макросов для тестирования признаков времени компиляции, которые возвращают значение булева.
#define BOOST_TEST_TRAIT_TRUE((Trait)) 
#define BOOST_TEST_TRAIT_FALSE((Trait)) 
 
BOOST_TEST_TRAIT_TRUE((Trait))
Если<Trait::value!=true>увеличивает количество ошибок и выводит сообщение, содержащее<Trait>. Обратите внимание на двойной набор скобок; они позволяют<Trait>содержать запятую, которая является общей для шаблонов.
 
BOOST_TEST_TRAIT_FALSE((Trait))
Если<Trait::value!=false>увеличивает количество ошибок и выводит сообщение, содержащее<Trait>. Обратите внимание на двойной набор скобок.
 
#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();
}