BOOST_AUTO_TEST_CASE не регистрирует тестовый пример при компиляции с icc

Может кто-нибудь объяснить, почему это использование BOOST_AUTO_TEST_CASE не регистрируется при компиляции с помощью icc / icpc? Когда я компилирую с g ++, он регистрируется & пробеги.

#define BOOST_TEST_MODULE boosttestunitfailure
#include <boost/test/unit_test.hpp>

BOOST_AUTO_TEST_CASE( helloworld )
{
BOOST_CHECK( true );
}

Вот как я компилирую с ICC — обратите внимание, что когда я запускаю, exe говорит «тестовое дерево пусто»:

plxv1142: atevet/BoostTestUnitFailure (master)> icpc --version
icpc (ICC) 14.0.4 20140805
Copyright (C) 1985-2014 Intel Corporation.  All rights reserved.
plxv1142: atevet/BoostTestUnitFailure (master)> icpc -std=c++11 -Wall -fPIC -DBOOST_TEST_DYN_LINK -I/usr/pkgs/boost/1.53.0/include  -O0 -o boostunittestcasefailure test.cpp -Wl,-rpath=/usr/pkgs/boost/1.53.0/lib64 /usr/pkgs/boost/1.53.0/lib64/libboost_unit_test_framework.so
plxv1142: atevet/BoostTestUnitFailure (master)> ./boostunittestcasefailure
Test setup error: test tree is empty

А вот g ++ — обратите внимание, что при компиляции с g ++ тест регистрируется в фреймворке и запускается:

plxv1142: atevet/BoostTestUnitFailure (master)> g++ --version
g++ (GCC) 4.7.2
Copyright (C) 2012 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
plxv1142: atevet/BoostTestUnitFailure (master)> g++ -std=c++11 -Wall -fPIC -DBOOST_TEST_DYN_LINK -I/usr/pkgs/boost/1.53.0/include -O0 -o boostunittestcasefailure test.cpp -Wl,-rpath=/usr/pkgs/boost/1.53.0/lib64 /usr/pkgs/boost/1.53.0/lib64/libboost_unit_test_framework.so
plxv1142: atevet/BoostTestUnitFailure (master)> ./boostunittestcasefailure                                                                                                    Running 1 test case...

*** No errors detected

0

Решение

Если кому-то интересно, это происходило из-за того, как моя среда определила, какой g ++ использовать (корпоративная среда с обертками для разных версий инструментов). Когда я удалил дополнения корпоративной среды, проблема исчезла.

1

Другие решения


По вопросам рекламы ammmcru@yandex.ru
Adblock
detector