| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134 | 
							- ///////////////////////////////////////////////////////////////////////////////
 
- // Name:        tests/misc/misctests.cpp
 
- // Purpose:     test miscellaneous stuff
 
- // Author:      Peter Most, Vadim Zeitlin
 
- // Created:     2008-07-10
 
- // Copyright:   (c) 2008 Peter Most
 
- //              (c) 2009 Vadim Zeitlin
 
- ///////////////////////////////////////////////////////////////////////////////
 
- // ----------------------------------------------------------------------------
 
- // headers
 
- // ----------------------------------------------------------------------------
 
- #include "testprec.h"
 
- #ifdef __BORLANDC__
 
-     #pragma hdrstop
 
- #endif
 
- #include "wx/defs.h"
 
- // just some classes using wxRTTI for wxStaticCast() test
 
- #include "wx/tarstrm.h"
 
- #include "wx/zipstrm.h"
 
- // ----------------------------------------------------------------------------
 
- // test class
 
- // ----------------------------------------------------------------------------
 
- class MiscTestCase : public CppUnit::TestCase
 
- {
 
- public:
 
-     MiscTestCase() { }
 
- private:
 
-     CPPUNIT_TEST_SUITE( MiscTestCase );
 
-         CPPUNIT_TEST( Assert );
 
-         CPPUNIT_TEST( Delete );
 
-         CPPUNIT_TEST( StaticCast );
 
-     CPPUNIT_TEST_SUITE_END();
 
-     void Assert();
 
-     void Delete();
 
-     void StaticCast();
 
-     DECLARE_NO_COPY_CLASS(MiscTestCase)
 
- };
 
- // register in the unnamed registry so that these tests are run by default
 
- CPPUNIT_TEST_SUITE_REGISTRATION( MiscTestCase );
 
- // also include in its own registry so that these tests can be run alone
 
- CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( MiscTestCase, "MiscTestCase" );
 
- namespace
 
- {
 
- bool AssertIfOdd(int n)
 
- {
 
-     wxCHECK_MSG( !(n % 2), false, "parameter must be even" );
 
-     return true;
 
- }
 
- } // anonymous namespace
 
- void MiscTestCase::Assert()
 
- {
 
-     AssertIfOdd(0);
 
-     WX_ASSERT_FAILS_WITH_ASSERT(AssertIfOdd(1));
 
-     // doesn't fail any more
 
-     wxAssertHandler_t oldHandler = wxSetAssertHandler(NULL);
 
-     AssertIfOdd(17);
 
-     wxSetAssertHandler(oldHandler);
 
- }
 
- void MiscTestCase::Delete()
 
- {
 
-     // Allocate some arbitrary memory to get a valid pointer:
 
-     long *pointer = new long;
 
-     CPPUNIT_ASSERT( pointer != NULL );
 
-     // Check that wxDELETE sets the pointer to NULL:
 
-     wxDELETE( pointer );
 
-     CPPUNIT_ASSERT( pointer == NULL );
 
-     // Allocate some arbitrary array to get a valid pointer:
 
-     long *array = new long[ 3 ];
 
-     CPPUNIT_ASSERT( array != NULL );
 
-     // Check that wxDELETEA sets the pointer to NULL:
 
-     wxDELETE( array );
 
-     CPPUNIT_ASSERT( array == NULL );
 
-     // this results in compilation error, as it should
 
- #if 0
 
-     struct SomeUnknownStruct *p = NULL;
 
-     wxDELETE(p);
 
- #endif
 
- }
 
- namespace
 
- {
 
- // helper function used just to avoid warnings about value computed not being
 
- // used in WX_ASSERT_FAILS_WITH_ASSERT() in StaticCast() below
 
- bool IsNull(void *p)
 
- {
 
-     return p == NULL;
 
- }
 
- } // anonymous namespace
 
- void MiscTestCase::StaticCast()
 
- {
 
- #if wxUSE_TARSTREAM
 
-     wxTarEntry tarEntry;
 
-     CPPUNIT_ASSERT( wxStaticCast(&tarEntry, wxArchiveEntry) );
 
-     wxArchiveEntry *entry = &tarEntry;
 
-     CPPUNIT_ASSERT( wxStaticCast(entry, wxTarEntry) );
 
- #if wxUSE_ZIPSTREAM
 
-     wxZipEntry zipEntry;
 
-     entry = &zipEntry;
 
-     CPPUNIT_ASSERT( wxStaticCast(entry, wxZipEntry) );
 
-     WX_ASSERT_FAILS_WITH_ASSERT( IsNull(wxStaticCast(&zipEntry, wxTarEntry)) );
 
- #endif // wxUSE_ZIPSTREAM
 
-     WX_ASSERT_FAILS_WITH_ASSERT( IsNull(wxStaticCast(entry, wxTarEntry)) );
 
- #endif // wxUSE_TARSTREAM
 
- }
 
 
  |