テストしたい
やっとインターネットが繋がったので各種環境の更新をしててboostの更新とかも行ったのですが、その時にどうやらboost::testが使えなくなっていたのでどういうことなのか調べました...。
テストの例として、Let's boostにあったテストのコード(下記)を実行してみました。
#include <vector> #include <boost/test/included/unit_test.hpp> using namespace std; // // STLのvectorクラステンプレートのテストコードを書いてみました。 // BOOST_AUTO_TEST_CASE( push_back_test ) { vector<int> v; BOOST_CHECK( v.empty() ); BOOST_CHECK_EQUAL( v.size(), 0 ); v.push_back( 1 ); v.push_back( 2 ); BOOST_CHECK( !v.empty() ); BOOST_CHECK_EQUAL( v.size(), 2 ); BOOST_CHECK_EQUAL( v.front(), 1 ); BOOST_CHECK_EQUAL( v.back(), 2 ); } BOOST_AUTO_TEST_CASE( at_test ) { vector<char> vi( 100, 'a' ); BOOST_CHECK_THROW( vi.at(100), std::exception ); } BOOST_AUTO_TEST_CASE( construct_test ) { vector<int> vi( 100, 3 ); BOOST_CHECK_EQUAL( vi.size(), 100 ); BOOST_CHECK_EQUAL( vi[10], 3 ); vector<double> vd( vi.begin(), vi.end() ); BOOST_CHECK_EQUAL( vd.size(), 100 ); BOOST_CHECK_EQUAL( vd[99], 3.0 ); }
実行結果
[sakura@sakura-no-macbook.local] $ g++ test.cc -lboost_unit_test_framework Undefined symbols: "_main", referenced from: start in crt1.10.6.o ld: symbol(s) not found
えー。以前はこれで動作したのに.....。