Hello, I'm trying to just do the basic example of boost.test unit testing.
I'm getting compilation errors when I include the headers.
=============== test.cpp ====================
#define BOOST_TEST_MODULE MyTest
#include
/*
#include
#include
*/
int add( int i, int j ) { return i+j; }
/* commented out
BOOST_AUTO_TEST_CASE( my_test ) {
// seven ways to detect and report the same error:
BOOST_CHECK( add( 2,2 ) == 4 ); // #1 continues on error
BOOST_REQUIRE( add( 2,2 ) == 4 ); // #2 throws on error
if( add( 2,2 ) != 4 )
BOOST_ERROR( "Ouch..." ); // #3 continues on error
if( add( 2,2 ) != 4 )
BOOST_FAIL( "Ouch..." ); // #4 throws on error
if( add( 2,2 ) != 4 ) throw "Ouch..."; // #5 throws on error
BOOST_CHECK_MESSAGE( add( 2,2 ) == 4, // #6 continues on error
"add(..) result: " << add( 2,2 ) );
BOOST_CHECK_EQUAL( add( 2,2 ), 4 ); // #7 continues on error
}
*/
int main() { return 0; };
=============== test.cpp ====================
To compile I'm doing (I have to add the location of boost to the
include path with -I):
g++ -I/Users/zara/Programming/polyneuron/lib/boost_1_35_0/ test.cpp
The only output is:
Undefined symbols:
"vtable for boost::unit_test::unit_test_log_t", referenced from:
__ZTVN5boost9unit_test15unit_test_log_tE$non_lazy_ptr in ccDfKOkF.o
"boost::unit_test::framework::master_test_suite()", referenced from:
init_unit_test_suite(int, char**)in ccDfKOkF.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
Which is a virtual function issue ... but why should I be having this
in a library I'm using?
I shouldn't have to touch the lib code ... what's up?
Do I need to implement some virtual function/class?
With the code uncommented I get many more errors - and this is the example code
given in the docs ...
Help is much appreciated.
- trevor