
On 7/9/06, Marc Mutz <marc@klaralvdalens-datakonsult.se> wrote:
On Friday 07 July 2006 04:40, Joe Van Dyk wrote:
I'm trying to get something like the following to work:
test_case1.cpp and test_cast2.cpp are compiled into a static library (libtest.a). They use BOOST_AUTO_TEST_CASE for test cases.
test_main.cpp contains: #define BOOST_AUTO_TEST_MAIN #include <boost/test/auto_unit_test.hpp>
However, when I compile test_main.cpp and link libtest.a into it, none of the test cases run.
The test cases do run if test_main.cpp #includes test_case1.cpp and test_case2.cpp, but I'd rather not do that if it's not necessary.
Any ideas? <snip>
I'm guessing here :) Registration of tests with the runner is done using file-static instances of some generic factory or other registration mechanism. If none of the symbols of given object file is referenced outside itself, the linker does not include the code from the object file in the final executable. Use dynamic libs, or link the object files instead of the archives.
Hm, I'll try that. I don't think that fits as nicely into our build system, but I'll have to check on Monday. Can anyone else chime in on this? Thanks for the information, Joe