![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
Checkpoints for accurate failure locationBoost , Boost.Test , Tools supports for logging
|
Код |
---|
<#defineBOOST_TEST_MODULEexample #include<boost/test/included/unit_test.hpp> externvoidfoo(inti); BOOST_AUTO_TEST_CASE(test_external_interface) { for(inti=3;i>=0;i--){ BOOST_TEST_CHECKPOINT("Calling foo with i="<<i); foo(i); } } voidgoo(int) { } voidfoo(inti) { goo(2/(i-1)); }> |
выход |
---|
<>example Running1testcase... unknownlocation(0):fatalerrorin"test_external_interface":signal:integerdividebyzero;addressoffailinginstruction:0x00048090 test.cpp(9):lastcheckpoint:Callingfoowithi=1 ***1failuresisdetectedintestsuite"example"> |
Макро<BOOST_TEST_PASSPOINT
>предназначен для использования для введенияненазванногоположения контрольно-пропускного пункта. Макросигнатура выглядит следующим образом:
BOOST_TEST_PASSPOINT
();
В отличие от макроса<BOOST_TEST_CHECKPOINT
>этот макрос не требует какого-либо сообщения. Это простой маркер «было там», который записывает имя файла и код номера строки.
BOOST_TEST_PASSPOINT
usage
Код |
---|
<#defineBOOST_TEST_MODULEexample #include<boost/test/included/unit_test.hpp> voidfoo(int){} BOOST_AUTO_TEST_CASE(test_case) { int*p=0; BOOST_TEST_PASSPOINT(); ++p; BOOST_TEST_PASSPOINT(); ++p; BOOST_TEST_PASSPOINT(); foo(*p); }> |
выход |
---|
<>example Running1testcase... unknownlocation(0):fatalerrorin"test_case":memoryaccessviolationataddress:0x00000008:nomappingatfaultaddress test.cpp(16):lastcheckpoint ***1failuresisdetectedintestsuite"example"> |
Статья Checkpoints for accurate failure location раздела Boost.Test Tools supports for logging может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
:: Главная :: Tools supports for logging ::
реклама |