Boost logo

Boost Users :

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


From: Hicham Mouline [mailto:hicham_at_[hidden]]
Sent: 04 June 2009 14:03
To: 'boost-users_at_[hidden]'
Subject: unit tests: auto tests, missing main, redef'ed init_unit_test_suite

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,
------------------------------------------------------------------------

After rereading, I defined -DBOOST_TEST_MAIN= for only 1 of the source
files. The objects compile ok.
But linking fails with the same error.

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