summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRemko Tronçon <git@el-tramo.be>2010-03-28 15:46:49 (GMT)
committerRemko Tronçon <git@el-tramo.be>2010-03-28 15:46:49 (GMT)
commitf53a1ef582494458301b97bf6e546be52d7ff7e8 (patch)
tree7571b5cbcbd8a8f1dd1c966c9045b6cb69f0e295 /3rdParty/CppUnit/src/src/cppunit/TestRunner.cpp
parent638345680d72ca6acaf123f2c8c1c391f696e371 (diff)
downloadswift-contrib-f53a1ef582494458301b97bf6e546be52d7ff7e8.zip
swift-contrib-f53a1ef582494458301b97bf6e546be52d7ff7e8.tar.bz2
Moving submodule contents back.
Diffstat (limited to '3rdParty/CppUnit/src/src/cppunit/TestRunner.cpp')
-rw-r--r--3rdParty/CppUnit/src/src/cppunit/TestRunner.cpp101
1 files changed, 101 insertions, 0 deletions
diff --git a/3rdParty/CppUnit/src/src/cppunit/TestRunner.cpp b/3rdParty/CppUnit/src/src/cppunit/TestRunner.cpp
new file mode 100644
index 0000000..8d95a63
--- /dev/null
+++ b/3rdParty/CppUnit/src/src/cppunit/TestRunner.cpp
@@ -0,0 +1,101 @@
+#include <cppunit/config/SourcePrefix.h>
+#include <cppunit/TestRunner.h>
+#include <cppunit/TestPath.h>
+#include <cppunit/TestResult.h>
+
+
+CPPUNIT_NS_BEGIN
+
+
+TestRunner::WrappingSuite::WrappingSuite( const std::string &name )
+ : TestSuite( name )
+{
+}
+
+
+int
+TestRunner::WrappingSuite::getChildTestCount() const
+{
+ if ( hasOnlyOneTest() )
+ return getUniqueChildTest()->getChildTestCount();
+ return TestSuite::getChildTestCount();
+}
+
+
+std::string
+TestRunner::WrappingSuite::getName() const
+{
+ if ( hasOnlyOneTest() )
+ return getUniqueChildTest()->getName();
+ return TestSuite::getName();
+}
+
+
+Test *
+TestRunner::WrappingSuite::doGetChildTestAt( int index ) const
+{
+ if ( hasOnlyOneTest() )
+ return getUniqueChildTest()->getChildTestAt( index );
+ return TestSuite::doGetChildTestAt( index );
+}
+
+
+void
+TestRunner::WrappingSuite::run( TestResult *result )
+{
+ if ( hasOnlyOneTest() )
+ getUniqueChildTest()->run( result );
+ else
+ TestSuite::run( result );
+}
+
+
+bool
+TestRunner::WrappingSuite::hasOnlyOneTest() const
+{
+ return TestSuite::getChildTestCount() == 1;
+}
+
+
+Test *
+TestRunner::WrappingSuite::getUniqueChildTest() const
+{
+ return TestSuite::doGetChildTestAt( 0 );
+}
+
+
+
+
+
+TestRunner::TestRunner()
+ : m_suite( new WrappingSuite() )
+{
+}
+
+
+TestRunner::~TestRunner()
+{
+ delete m_suite;
+}
+
+
+void
+TestRunner::addTest( Test *test )
+{
+ m_suite->addTest( test );
+}
+
+
+void
+TestRunner::run( TestResult &controller,
+ const std::string &testPath )
+{
+ TestPath path = m_suite->resolveTestPath( testPath );
+ Test *testToRun = path.getChildTest();
+
+ controller.runTest( testToRun );
+}
+
+
+CPPUNIT_NS_END
+