I like the auto test feature of Boost.test because it's quick and simple to
use. Unfortunately, when BOOST_AUTO_TEST_MAIN is #define'd, the auto suite
name is hardcoded. Changing auto_unit_test.hpp so user can, *if desired*,
change it, can be done with following patch:
$ diff -u ~/downloads/boost_1_32_0/boost/test/auto_unit_test.hpp
/c/Boost/inclu
de/boost-1_32/boost/test/auto_unit_test.hpp
--- boost_1_32_0/boost/test/auto_unit_test.hpp Mon Jul 19 09:12:40 2004
+++ /c/Boost/include/boost-1_32/boost/test/auto_unit_test.hpp Wed Apr 6
12:46:07 2005
@@ -19,6 +19,10 @@
// Boost.Test
#include
+#ifndef BOOST_AUTO_TEST_SUITE_NAME
+#define BOOST_AUTO_TEST_SUITE_NAME "Auto Unit Test"
+#endif
+
//
**************************************************************************
//
// ************** auto_unit_test_registrar
************** //
//
**************************************************************************
//
@@ -27,10 +31,17 @@
namespace unit_test {
namespace ut_detail {
+inline const char*
+suiteName(const char* name = NULL)
+{
+ return name ? name : BOOST_AUTO_TEST_SUITE_NAME;
+}
+
inline boost::unit_test::test_suite*
auto_unit_test_suite()
{
- static boost::unit_test::test_suite* inst = BOOST_TEST_SUITE( "Auto
Unit Test" );
+ static boost::unit_test::test_suite* inst
+ = BOOST_TEST_SUITE( suiteName(BOOST_AUTO_TEST_MAIN) );
return inst;
}
This allows you to do any of:
1) Like current (default suite name is "Auto Unit Test"):
#define BOOST_AUTO_TEST_MAIN
2) Change from default suite name to what you want:
#define BOOST_AUTO_TEST_MAIN "Your suite name"
3) Same, but doesn't "overload" the BOOST_AUTO_TEST_MAIN:
#define BOOST_AUTO_TEST_MAIN
#define BOOST_AUTO_TEST_SUITE_NAME "Your suite name"
This enhancement maintains backward compatibility but allows automated test
suites to be distinguishable.
Oliver