X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/657a8a359826e46a7fc458216403f54deca34989..9e1da4827a0ec18f9766d664b9af12c25e3f71fb:/tests/misc/misctests.cpp diff --git a/tests/misc/misctests.cpp b/tests/misc/misctests.cpp index 3ead0b38ec..d50f0a2460 100644 --- a/tests/misc/misctests.cpp +++ b/tests/misc/misctests.cpp @@ -20,6 +20,10 @@ #include "wx/defs.h" +// just some classes using wxRTTI for wxStaticCast() test +#include "wx/tarstrm.h" +#include "wx/zipstrm.h" + // ---------------------------------------------------------------------------- // test class // ---------------------------------------------------------------------------- @@ -33,10 +37,12 @@ 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) }; @@ -44,15 +50,17 @@ private: // register in the unnamed registry so that these tests are run by default CPPUNIT_TEST_SUITE_REGISTRATION( MiscTestCase ); -// also include in it's own registry so that these tests can be run alone +// also include in its own registry so that these tests can be run alone CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( MiscTestCase, "MiscTestCase" ); namespace { -void AssertIfOdd(int n) +bool AssertIfOdd(int n) { - wxASSERT_MSG( !(n % 2), "parameter must be even" ); + wxCHECK_MSG( !(n % 2), false, "parameter must be even" ); + + return true; } } // anonymous namespace @@ -93,3 +101,35 @@ void MiscTestCase::Delete() #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 +} +