Re: [Boost-users] unit tests: auto tests, missing main, redef'ed init_unit_test_suite

From: Hicham Mouline [mailto:hicham@mouline.org] Sent: 04 June 2009 14:03 To: 'boost-users@lists.boost.org' 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,
participants (1)
-
Hicham Mouline