- return m_list || runner.run("", false, true, !wxLog::GetVerbose()) ?
- EXIT_SUCCESS : EXIT_FAILURE;
+ // there is a bug
+ // (http://sf.net/tracker/index.php?func=detail&aid=1649369&group_id=11795&atid=111795)
+ // in some versions of cppunit: they write progress dots to cout (and not
+ // cerr) and don't flush it so all the dots appear at once at the end which
+ // is not very useful so unbuffer cout to work around this
+ cout.setf(ios::unitbuf);
+
+ // add detail listener if needed
+ DetailListener detailListener(m_timing);
+ if ( m_detail || m_timing )
+ runner.eventManager().addListener(&detailListener);
+
+ return runner.run("", false, true, !verbose) ? EXIT_SUCCESS : EXIT_FAILURE;
+}
+
+int TestApp::OnExit()
+{
+#if wxUSE_GUI
+ delete GetTopWindow();
+#endif // wxUSE_GUI
+
+ return 0;