summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRemko Tronçon <git@el-tramo.be>2009-06-01 08:48:42 (GMT)
committerRemko Tronçon <git@el-tramo.be>2009-06-01 09:24:28 (GMT)
commit2812bddd81f8a1b804c7460f4e14cd0aa393d129 (patch)
treed46294f35150c4f0f43deaf2d31fceaf945ae715 /3rdParty/CppUnit/src/TextTestRunner.cpp
downloadswift-2812bddd81f8a1b804c7460f4e14cd0aa393d129.zip
swift-2812bddd81f8a1b804c7460f4e14cd0aa393d129.tar.bz2
Import.
Diffstat (limited to '3rdParty/CppUnit/src/TextTestRunner.cpp')
-rw-r--r--3rdParty/CppUnit/src/TextTestRunner.cpp144
1 files changed, 144 insertions, 0 deletions
diff --git a/3rdParty/CppUnit/src/TextTestRunner.cpp b/3rdParty/CppUnit/src/TextTestRunner.cpp
new file mode 100644
index 0000000..1534ec0
--- /dev/null
+++ b/3rdParty/CppUnit/src/TextTestRunner.cpp
@@ -0,0 +1,144 @@
+// ==> Implementation of cppunit/ui/text/TestRunner.h
+
+#include <cppunit/config/SourcePrefix.h>
+#include <cppunit/TestSuite.h>
+#include <cppunit/TextTestResult.h>
+#include <cppunit/TextOutputter.h>
+#include <cppunit/TextTestProgressListener.h>
+#include <cppunit/TestResult.h>
+#include <cppunit/ui/text/TextTestRunner.h>
+#include <cppunit/portability/Stream.h>
+#include <stdexcept>
+
+
+CPPUNIT_NS_BEGIN
+
+
+/*! Constructs a new text runner.
+ * \param outputter used to print text result. Owned by the runner.
+ */
+TextTestRunner::TextTestRunner( Outputter *outputter )
+ : m_result( new TestResultCollector() )
+ , m_eventManager( new TestResult() )
+ , m_outputter( outputter )
+{
+ if ( !m_outputter )
+ m_outputter = new TextOutputter( m_result, stdCOut() );
+ m_eventManager->addListener( m_result );
+}
+
+
+TextTestRunner::~TextTestRunner()
+{
+ delete m_eventManager;
+ delete m_outputter;
+ delete m_result;
+}
+
+
+/*! Runs the named test case.
+ *
+ * \param testName Name of the test case to run. If an empty is given, then
+ * all added tests are run. The name can be the name of any
+ * test in the hierarchy.
+ * \param doWait if \c true then the user must press the RETURN key
+ * before the run() method exit.
+ * \param doPrintResult if \c true (default) then the test result are printed
+ * on the standard output.
+ * \param doPrintProgress if \c true (default) then TextTestProgressListener is
+ * used to show the progress.
+ * \return \c true is the test was successful, \c false if the test
+ * failed or was not found.
+ */
+bool
+TextTestRunner::run( std::string testName,
+ bool doWait,
+ bool doPrintResult,
+ bool doPrintProgress )
+{
+ TextTestProgressListener progress;
+ if ( doPrintProgress )
+ m_eventManager->addListener( &progress );
+
+ TestRunner *pThis = this;
+ pThis->run( *m_eventManager, testName );
+
+ if ( doPrintProgress )
+ m_eventManager->removeListener( &progress );
+
+ printResult( doPrintResult );
+ wait( doWait );
+
+ return m_result->wasSuccessful();
+}
+
+
+void
+TextTestRunner::wait( bool doWait )
+{
+#if !defined( CPPUNIT_NO_STREAM )
+ if ( doWait )
+ {
+ stdCOut() << "<RETURN> to continue\n";
+ stdCOut().flush();
+ std::cin.get ();
+ }
+#endif
+}
+
+
+void
+TextTestRunner::printResult( bool doPrintResult )
+{
+ stdCOut() << "\n";
+ if ( doPrintResult )
+ m_outputter->write();
+}
+
+
+/*! Returns the result of the test run.
+ * Use this after calling run() to access the result of the test run.
+ */
+TestResultCollector &
+TextTestRunner::result() const
+{
+ return *m_result;
+}
+
+
+/*! Returns the event manager.
+ * The instance of TestResult results returned is the one that is used to run the
+ * test. Use this to register additional TestListener before running the tests.
+ */
+TestResult &
+TextTestRunner::eventManager() const
+{
+ return *m_eventManager;
+}
+
+
+/*! Specifies an alternate outputter.
+ *
+ * Notes that the outputter will be use after the test run only if \a printResult was
+ * \c true.
+ * \param outputter New outputter to use. The previous outputter is destroyed.
+ * The TextTestRunner assumes ownership of the outputter.
+ * \see CompilerOutputter, XmlOutputter, TextOutputter.
+ */
+void
+TextTestRunner::setOutputter( Outputter *outputter )
+{
+ delete m_outputter;
+ m_outputter = outputter;
+}
+
+
+void
+TextTestRunner::run( TestResult &controller,
+ const std::string &testPath )
+{
+ TestRunner::run( controller, testPath );
+}
+
+
+CPPUNIT_NS_END