summaryrefslogtreecommitdiff
path: root/examples/cppunittest
diff options
context:
space:
mode:
authorBaptiste Lepilleur <gaiacrtn@free.fr>2002-06-12 15:44:17 +0000
committerBaptiste Lepilleur <gaiacrtn@free.fr>2002-06-12 15:44:17 +0000
commit3702f4f7603f1e49b4d6747c49e795bad712eab7 (patch)
tree8988e8f3f0e4b7c64da58f41734bb1eb1acaf211 /examples/cppunittest
parent1fe54971424f393a2bb2566bc14af5e899e98ebb (diff)
downloadcppunit-3702f4f7603f1e49b4d6747c49e795bad712eab7.tar.gz
Install-unix: added some hints extracted from bug #544684 on how to compile for Solaris/Forte C++ compiler.
install-unix: added some hints extracted from bug #544684 on how to compile for Solaris/Forte C++ compiler. * TODO: cleaned-up and added new things. * include/cppunit/extensions/HelperMacros.h: CPPUNIT_TEST_SUITE now declares a class named ThisTestFixtureFactory which is a wrapper for the fixture factory. This removes the need to cast the fixture to the correct type when using the factory. Updated other macros implementation to use this new factory. Modified CPPUNIT_TEST_CUSTOM(S) macros to use this new factory class. Added macro CPPUNIT_TEST_ADD to help create new macros like CPPUNIT_TEST_xxx. * examples/cppunittest/HelperMacrosTest.h: * examples/cppunittest/HelperMacrosTest.cpp: added unit tests for CPPUNIT_TEST_CUSTOM, CPPUNIT_TEST_CUSTOMS and CPPUNIT_TEST_ADD.
Diffstat (limited to 'examples/cppunittest')
-rw-r--r--examples/cppunittest/CppUnitTestMain.dsp8
-rw-r--r--examples/cppunittest/HelperMacrosTest.cpp114
-rw-r--r--examples/cppunittest/HelperMacrosTest.h7
3 files changed, 113 insertions, 16 deletions
diff --git a/examples/cppunittest/CppUnitTestMain.dsp b/examples/cppunittest/CppUnitTestMain.dsp
index c2bf5ca..1b685f8 100644
--- a/examples/cppunittest/CppUnitTestMain.dsp
+++ b/examples/cppunittest/CppUnitTestMain.dsp
@@ -53,7 +53,7 @@ BSC32=bscmake.exe
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ../../lib/cppunit.lib /nologo /subsystem:console /machine:I386
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib cppunit.lib /nologo /subsystem:console /machine:I386 /libpath:"../../lib/"
# Begin Special Build Tool
TargetPath=.\Release\CppUnitTestMain.exe
SOURCE="$(InputPath)"
@@ -84,7 +84,7 @@ BSC32=bscmake.exe
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ../../lib/cppunitd.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib cppunitd.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"../../lib/"
# Begin Special Build Tool
TargetPath=.\Debug\CppUnitTestMain.exe
SOURCE="$(InputPath)"
@@ -117,7 +117,7 @@ BSC32=bscmake.exe
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ../../lib/cppunit.lib /nologo /subsystem:console /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ../../lib/cppunit_dll.lib cppunit_dll.lib /nologo /subsystem:console /machine:I386
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib cppunit_dll.lib /nologo /subsystem:console /machine:I386 /libpath:"../../lib/"
# Begin Special Build Tool
TargetPath=.\ReleaseDLL\CppUnitTestMain.exe
SOURCE="$(InputPath)"
@@ -150,7 +150,7 @@ BSC32=bscmake.exe
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ../../lib/cppunitd.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ../../lib/cppunitd_dll.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib cppunitd_dll.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"../../lib/"
# Begin Special Build Tool
TargetPath=.\DebugDLL\CppUnitTestMain.exe
SOURCE="$(InputPath)"
diff --git a/examples/cppunittest/HelperMacrosTest.cpp b/examples/cppunittest/HelperMacrosTest.cpp
index f6e7741..3674416 100644
--- a/examples/cppunittest/HelperMacrosTest.cpp
+++ b/examples/cppunittest/HelperMacrosTest.cpp
@@ -1,6 +1,7 @@
#include "FailureException.h"
#include "HelperMacrosTest.h"
#include "HelperSuite.h"
+#include "MockTestCase.h"
#include "SubclassedTestCase.h"
#include <cppunit/TestResult.h>
#include <memory>
@@ -9,9 +10,9 @@
- no unit test for CPPUNIT_TEST_SUITE_REGISTRATION...
*/
-class FailTestCase : public CppUnit::TestCase
+class FailTestFixture : public CppUnit::TestFixture
{
- CPPUNIT_TEST_SUITE( FailTestCase );
+ CPPUNIT_TEST_SUITE( FailTestFixture );
CPPUNIT_TEST_FAIL( testFail );
CPPUNIT_TEST_SUITE_END();
public:
@@ -22,9 +23,9 @@ public:
};
-class FailToFailTestCase : public CppUnit::TestCase
+class FailToFailTestFixture : public CppUnit::TestFixture
{
- CPPUNIT_TEST_SUITE( FailToFailTestCase );
+ CPPUNIT_TEST_SUITE( FailToFailTestFixture );
CPPUNIT_TEST_FAIL( testFailToFail );
CPPUNIT_TEST_SUITE_END();
public:
@@ -34,9 +35,9 @@ public:
};
-class ExceptionTestCase : public CppUnit::TestCase
+class ExceptionTestFixture : public CppUnit::TestFixture
{
- CPPUNIT_TEST_SUITE( ExceptionTestCase );
+ CPPUNIT_TEST_SUITE( ExceptionTestFixture );
CPPUNIT_TEST_EXCEPTION( testException, FailureException );
CPPUNIT_TEST_SUITE_END();
public:
@@ -47,9 +48,9 @@ public:
};
-class ExceptionNotCaughtTestCase : public CppUnit::TestCase
+class ExceptionNotCaughtTestFixture : public CppUnit::TestFixture
{
- CPPUNIT_TEST_SUITE( ExceptionNotCaughtTestCase );
+ CPPUNIT_TEST_SUITE( ExceptionNotCaughtTestFixture );
CPPUNIT_TEST_EXCEPTION( testExceptionNotCaught, FailureException );
CPPUNIT_TEST_SUITE_END();
public:
@@ -59,6 +60,59 @@ public:
};
+class CustomTestTestFixture : public CppUnit::TestFixture
+{
+ CPPUNIT_TEST_SUITE( CustomTestTestFixture );
+ CPPUNIT_TEST_CUSTOM( makeCustomTest );
+ CPPUNIT_TEST_SUITE_END();
+public:
+ static CppUnit::Test *makeCustomTest( const ThisTestFixtureFactory &factory,
+ const CppUnit::TestNamer &namer )
+ {
+ MockTestCase *test = new MockTestCase( namer.getTestNameFor( "myCustomTest" ) );
+ test->makeRunTestThrow();
+ return test;
+ }
+};
+
+
+class CustomsTestTestFixture : public CppUnit::TestFixture
+{
+ CPPUNIT_TEST_SUITE( CustomsTestTestFixture );
+ CPPUNIT_TEST_CUSTOMS( addCustomTests );
+ CPPUNIT_TEST_SUITE_END();
+public:
+ static void addCustomTests( CppUnit::TestSuite *suite,
+ const ThisTestFixtureFactory &factory,
+ const CppUnit::TestNamer &namer )
+ {
+ MockTestCase *test1 = new MockTestCase( namer.getTestNameFor( "myCustomTest1" ) );
+ test1->makeRunTestThrow();
+ MockTestCase *test2 = new MockTestCase( namer.getTestNameFor( "myCustomTest2" ) );
+ suite->addTest( test1 );
+ suite->addTest( test2 );
+ }
+};
+
+
+#undef TEST_ADD_N_MOCK
+#define TEST_ADD_N_MOCK( totalCount ) \
+ { \
+ for ( int count = (totalCount); count > 0; --count ) \
+ CPPUNIT_TEST_ADD( new MockTestCase( namer.getTestNameFor( "dummyName" ) ) ); \
+ }
+
+
+
+class AddTestTestFixture : public CppUnit::TestFixture
+{
+ CPPUNIT_TEST_SUITE( AddTestTestFixture );
+ TEST_ADD_N_MOCK( 7 );
+ CPPUNIT_TEST_SUITE_END();
+public:
+};
+
+
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( HelperMacrosTest,
CppUnitTest::helperSuiteName() );
@@ -120,7 +174,7 @@ HelperMacrosTest::testSubclassing()
void
HelperMacrosTest::testFail()
{
- std::auto_ptr<CppUnit::TestSuite> suite( FailTestCase::suite() );
+ std::auto_ptr<CppUnit::TestSuite> suite( FailTestFixture::suite() );
m_testListener->setExpectedStartTestCall( 1 );
m_testListener->setExpectNoFailure();
@@ -132,7 +186,7 @@ HelperMacrosTest::testFail()
void
HelperMacrosTest::testFailToFail()
{
- std::auto_ptr<CppUnit::TestSuite> suite( FailToFailTestCase::suite() );
+ std::auto_ptr<CppUnit::TestSuite> suite( FailToFailTestFixture::suite() );
m_testListener->setExpectedStartTestCall( 1 );
m_testListener->setExpectedAddFailureCall( 1 );
@@ -144,7 +198,7 @@ HelperMacrosTest::testFailToFail()
void
HelperMacrosTest::testException()
{
- std::auto_ptr<CppUnit::TestSuite> suite( ExceptionTestCase::suite() );
+ std::auto_ptr<CppUnit::TestSuite> suite( ExceptionTestFixture::suite() );
m_testListener->setExpectedStartTestCall( 1 );
m_testListener->setExpectNoFailure();
@@ -156,10 +210,46 @@ HelperMacrosTest::testException()
void
HelperMacrosTest::testExceptionNotCaught()
{
- std::auto_ptr<CppUnit::TestSuite> suite( ExceptionNotCaughtTestCase::suite() );
+ std::auto_ptr<CppUnit::TestSuite> suite( ExceptionNotCaughtTestFixture::suite() );
+ m_testListener->setExpectedStartTestCall( 1 );
+ m_testListener->setExpectedAddFailureCall( 1 );
+
+ suite->run( m_result );
+ m_testListener->verify();
+}
+
+
+void
+HelperMacrosTest::testCustomTest()
+{
+ std::auto_ptr<CppUnit::TestSuite> suite( CustomTestTestFixture::suite() );
m_testListener->setExpectedStartTestCall( 1 );
m_testListener->setExpectedAddFailureCall( 1 );
suite->run( m_result );
m_testListener->verify();
}
+
+
+void
+HelperMacrosTest::testCustomTests()
+{
+ std::auto_ptr<CppUnit::TestSuite> suite( CustomsTestTestFixture::suite() );
+ m_testListener->setExpectedStartTestCall( 2 );
+ m_testListener->setExpectedAddFailureCall( 1 );
+
+ suite->run( m_result );
+ m_testListener->verify();
+}
+
+
+void
+HelperMacrosTest::testAddTest()
+{
+ std::auto_ptr<CppUnit::TestSuite> suite( AddTestTestFixture::suite() );
+ m_testListener->setExpectedStartTestCall( 7 );
+ m_testListener->setExpectedAddFailureCall( 0 );
+
+ suite->run( m_result );
+ m_testListener->verify();
+}
diff --git a/examples/cppunittest/HelperMacrosTest.h b/examples/cppunittest/HelperMacrosTest.h
index ac9318a..bba8a22 100644
--- a/examples/cppunittest/HelperMacrosTest.h
+++ b/examples/cppunittest/HelperMacrosTest.h
@@ -14,6 +14,9 @@ class HelperMacrosTest : public CppUnit::TestFixture
CPPUNIT_TEST( testFailToFail );
CPPUNIT_TEST( testException );
CPPUNIT_TEST( testExceptionNotCaught );
+ CPPUNIT_TEST( testCustomTest );
+ CPPUNIT_TEST( testCustomTests );
+ CPPUNIT_TEST( testAddTest );
CPPUNIT_TEST_SUITE_END();
public:
@@ -33,6 +36,10 @@ public:
void testException();
void testExceptionNotCaught();
+ void testCustomTest();
+ void testCustomTests();
+ void testAddTest();
+
private:
HelperMacrosTest( const HelperMacrosTest &copy );
void operator =( const HelperMacrosTest &copy );