Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

lightweight_test

Boost , Chapter 1. Boost.Core , Chapter 1. Boost.Core

Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

PrevUpHomeNext

Authors

  • Петр Димов
  • Беман Доуз

Заголовок<<boost/core/lightweight_test.hpp>>является легкой тестовой структурой. Он полезен для написания регрессионных тестов Boost для компонентов, которые являются зависимостями Boost. Тест.

При использовании<lightweight_test.hpp>,не забывайтедо<return boost::report_errors()>из<main>.

#define BOOST_TEST(expression) /*unspecified*/
#define BOOST_ERROR(message) /*unspecified*/
#define BOOST_TEST_EQ(expr1, expr2) /*unspecified*/
#define BOOST_TEST_NE(expr1, expr2) /*unspecified*/
#define BOOST_TEST_THROWS(expr, excep) /*unspecified*/
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)) /*unspecified*/
#define BOOST_TEST_TRAIT_FALSE((Trait)) /*unspecified*/
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();
}

PrevUpHomeNext

Статья lightweight_test раздела Chapter 1. Boost.Core Chapter 1. Boost.Core может быть полезна для разработчиков на c++ и boost.




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Chapter 1. Boost.Core ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-05-19 23:33:50/0.016104936599731/0