Hi, I finally mostly finished first long promised revision for Boost.Test.
Here is the list of major features/updates: * Major update for documentation I still think that docs need a lot of work. They incomplete and there are several pages missing. Also some tutorial material needs to be extended. I reworked documentation structure. All suggestions and comment in this regard are welcome. * BOOST_CHECK_EXCEPTION New tool allows not only check that desired exception has thrown, but also validate a predicate with an exception as an argument. * Test cases/suites dependency support Now one should be able to say: "do not run this test case/suite unless that test case passed" Syntax: test_case_1->depend_on( test_case_2 ); * zero arity function template based test case. This is the case met several times in boost libraries tests: run some function several times with different template parameter as an template argument. Unfortunately due to some C++ limitation I did not find a solution with out extra out of function support. Here is the syntax: template<typename T> void my_foo( ) // add parameter T* =0 if you want it to work under MSVC 6.5 { ... } BOOST_META_FUNC_TEST_CASE( my_foo ); ... test->add( BOOST_FUNC_TEMPLATE_TEST_CASE( my_foo, types_list ) ); Above statement will make the framework to run the function my_foo<type>(), instantiated with all types in provided as a second argument type list. * Smart predicates support In some cases users want to be able to perform complex check and in combination with result to return error message with explanation I moved extended_predicate_value into public interface. Now used could return instance if this class that could hold boolean value and error message from a predicate. The framework will use the supplied error message for error logging * Support for non-printable types In some cases users forced to use less descriptive tools because more descriptive would require presence of the output operator<<() For example: std::list<int> my_list, expected_list; ... BOOST_CHECK_EQUAL( my_list, expected_list ); Now this does not work cause std::list<int> does not have an operator<<() defined. To address this I added extra decision point which function to use to print the value. One could overwrite this function to use custom print mechanism. Also helper macro BOOST_TEST_DONT_PRINT_LOG_VALUE( type_name ) introduced, that automatically prevent compilation error in above case. Use it outside of test function definition BOOST_TEST_DONT_PRINT_LOG_VALUE( std::list<int> ) .... BOOST_CHECK_EQUAL( my_list, expected_list ); // Now works BOOST_CHECK_EQUAL( my_list, expected_list ); * many bug fixes and minor enhancements Update is available in cvs. Let me know about any issues. Regards, Gennadiy. _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost