Boost logo

Boost Users :

Subject: [Boost-users] unit tests: auto tests, missing main, redef'ed init_unit_test_suite
From: Hicham Mouline (hicham_at_[hidden])
Date: 2009-06-04 09:02:48


g++3.4 - boost1.37

 

Hello,

 

I have n translation units .cpp and m auto test suites spread over the n
files.

 

For e.g.

 

file ni.cpp--------------------

#include <boost/test/unit_test.hpp>

BOOST_AUTO_TEST_SUITE(suite1)

BOOST_AUTO_TEST_CASE(case1)

BOOST_AUTO_TEST_SUITE_END()

 

file nj.cpp--------------------

#include <boost/test/unit_test.hpp>

BOOST_AUTO_TEST_SUITE(suite1)

BOOST_AUTO_TEST_CASE(case2)

BOOST_AUTO_TEST_CASE(case3)

BOOST_AUTO_TEST_SUITE_END()

 

file nk.cpp--------------------

#include <boost/test/unit_test.hpp>

BOOST_AUTO_TEST_SUITE(suite2)

BOOST_AUTO_TEST_CASE(case1)

BOOST_AUTO_TEST_CASE(case2)

BOOST_AUTO_TEST_SUITE_END()

 

The .cpp files are compiled with -DBOOST_TEST_MAIN=

 

AFAIU, I am then not required to provide the "init_unit_test" function nor
the "main" function.

 

I then try to link an executable:

g++ -m64 -Wall -Wextra -Wsign-compare -Werror -Wno-unused -std=c++98
-pedantic -Wno-long-long -pipe -g
-lboost_unit_test_framework-gcc34-mt-d-1_37 -o executable *.o

 

but i get this:

 

nk.o: In function `init_unit_test_suite(int, char**)':

...boost/test/unit_test_suite.hpp:188: multiple definition of
`init_unit_test_suite(int, char**)'

ni.o: ...boost/test/unit_test_suite.hpp:188: first defined here

for each object file

 

and

 

/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../lib64/crt1.o(.text+0x21):
In function `_start':

: undefined reference to `main'

 

Regards,



Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net