+ CppUnit::TextTestRunner runner;
+
+ if ( m_registries.empty() )
+ {
+ // run or list all tests
+ AddTest(runner, TestFactoryRegistry::getRegistry().makeTest());
+ }
+ else // run only the selected tests
+ {
+ for (size_t i = 0; i < m_registries.size(); i++)
+ {
+ const wxString reg = m_registries[i];
+ Test *test = GetTestByName(reg);
+
+ if ( !test && !reg.EndsWith("TestCase") )
+ {
+ test = GetTestByName(reg + "TestCase");
+ }
+
+ if ( !test )
+ {
+ cerr << "No such test suite: " << string(reg.mb_str()) << endl;
+ return 2;
+ }
+
+ AddTest(runner, test);
+ }
+ }
+
+ if ( m_list )
+ return EXIT_SUCCESS;
+
+ runner.setOutputter(new CppUnit::CompilerOutputter(&runner.result(), cout));
+