/* dyntest - fiddle with boost UTF init_unit_test_suite CPATH=../libboost-1.55.inst/include/ g++ -c -o dyntest.o dyntest.cpp -DYYTEXT_POINTER=1 -fPIC -g -O0 -W -Wall -Wextra -Wnon-virtual-dtor -ansi -std=c++98 -pipe -Wno-empty-body -Wno-missing-field-initializers -Wwrite-strings -Wno-deprecated -Wno-unused -Wno-non-virtual-dtor -Wno-variadic-macros -ftemplate-depth-128 -fno-merge-constants LIBRARY_PATH=../libboost-1.55.inst/lib/ g++ -o dyntest dyntest.o -lboost_unit_test_framework LD_LIBRARY_PATH=../libboost-1.55.inst/lib/ dyntest --log_level=all "--run_test=a/1" ab 12 */ #ifndef BOOST_TEST_DYN_LINK #define BOOST_TEST_DYN_LINK #endif #include #include using namespace boost::unit_test; //____________________________________________________________________________// void free_test_function( int i, int j ) { std::cerr << boost::unit_test::framework::current_test_case().p_name << std::endl; BOOST_CHECK_EQUAL( i, j ); } //____________________________________________________________________________// bool init_function() { framework::master_test_suite().p_name.value = "top"; int argc = boost::unit_test::framework::master_test_suite().argc; char** argv = boost::unit_test::framework::master_test_suite().argv; if (argc < 3) { std::cerr << "usage, e.g. " << argv[0] << " ab 12\n"; return false; } for (const char* major = argv[1]; *major; ++major) { test_suite* ts = BOOST_TEST_SUITE(std::string(major, 1)); framework::master_test_suite().add(ts); for (const char* minor = argv[2]; *minor; ++minor) // ts->add( BOOST_TEST_CASE( boost::bind( &free_test_function, 1, 2 ) ) ); ts->add(boost::unit_test::make_test_case (boost::unit_test::callback0<> (boost::bind( &free_test_function, 1, 2)), boost::unit_test::const_string( minor, 1))); } return true; } //____________________________________________________________________________// int main( int argc, char* argv[] ) { return ::boost::unit_test::unit_test_main( &init_function, argc, argv ); } //____________________________________________________________________________//