summaryrefslogtreecommitdiff
path: root/src/cppunit/TestResult.cpp
diff options
context:
space:
mode:
authorBaptiste Lepilleur <gaiacrtn@free.fr>2002-07-16 21:59:22 +0000
committerBaptiste Lepilleur <gaiacrtn@free.fr>2002-07-16 21:59:22 +0000
commit2a31073734be6e44e477079699578820282b7345 (patch)
tree70b18c3fc851173fe5fd69a7d844640ab6b780d2 /src/cppunit/TestResult.cpp
parent251c1ff8aecaa608ef9e6041c2691d369430bf7b (diff)
downloadcppunit-2a31073734be6e44e477079699578820282b7345.tar.gz
Include/cppunit/Protector.
include/cppunit/Protector.h: * src/cppunit/Protector.cpp: added. Base class for protectors. * src/cppunit/DefaultProtector.h: * src/cppunit/DefaultProtector.cpp: added. Implementation of the default protector used to catch std::exception and any other exception. * src/cppunit/ProtectorChain.h: * src/cppunit/ProtectorChain.cpp: added. Implementation of a chain of protector, allowing catching custom exception and implementation of expected exception. * src/cppunit/TestCase.cpp: * src/cppunit/TestResult.cpp: updated to use protector.
Diffstat (limited to 'src/cppunit/TestResult.cpp')
-rw-r--r--src/cppunit/TestResult.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/cppunit/TestResult.cpp b/src/cppunit/TestResult.cpp
index 2b20e4c..cf03dd4 100644
--- a/src/cppunit/TestResult.cpp
+++ b/src/cppunit/TestResult.cpp
@@ -3,6 +3,9 @@
#include <cppunit/TestListener.h>
#include <cppunit/TestResult.h>
#include <algorithm>
+#include "DefaultProtector.h"
+#include "ProtectorChain.h"
+#include "ProtectorContext.h"
CPPUNIT_NS_BEGIN
@@ -10,7 +13,9 @@ CPPUNIT_NS_BEGIN
/// Construct a TestResult
TestResult::TestResult( SynchronizationObject *syncObject )
: SynchronizedObject( syncObject )
+ , m_protectorChain( new ProtectorChain() )
{
+ m_protectorChain->push( new DefaultProtector() );
reset();
}
@@ -18,6 +23,7 @@ TestResult::TestResult( SynchronizationObject *syncObject )
/// Destroys a test result
TestResult::~TestResult()
{
+ delete m_protectorChain;
}
@@ -184,4 +190,14 @@ TestResult::endTestRun( Test *test )
}
+bool
+TestResult::protect( const Functor &functor,
+ Test *test,
+ const std::string &shortDescription )
+{
+ ProtectorContext context( test, this, shortDescription );
+ return m_protectorChain->protect( functor, context );
+}
+
+
CPPUNIT_NS_END