X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/6fc905e0e141a49cf4738d5fc6c598a46e504263..44c87b7d15d5c1f5926beffa4cd5c9d1d2045e04:/include/wx/cppunit.h diff --git a/include/wx/cppunit.h b/include/wx/cppunit.h index d362155e73..59f79b831d 100644 --- a/include/wx/cppunit.h +++ b/include/wx/cppunit.h @@ -105,47 +105,36 @@ assertEquals(const wchar_t *expected, assertEquals(wxString(expected), actual, sourceLine, message); } +#define WX_CPPUNIT_ASSERT_EQUALS(T1, T2) \ + inline void \ + assertEquals(T1 expected, \ + T2 actual, \ + CppUnit::SourceLine sourceLine, \ + const std::string& message) \ + { \ + if ( !assertion_traits::equal(expected,actual) ) \ + { \ + Asserter::failNotEqual( assertion_traits::toString(expected), \ + assertion_traits::toString(actual), \ + sourceLine, \ + message ); \ + } \ + } + // and another to be able to specify (usually literal) ints as expected values -// for functions returning any of unsigned {int,long} or size_t -inline void -assertEquals(int expected, - unsigned actual, - CppUnit::SourceLine sourceLine, - const std::string& message) -{ - assertEquals(unsigned(expected), actual, sourceLine, message); -} +// for functions returning size_t +WX_CPPUNIT_ASSERT_EQUALS(int, size_t) -inline void -assertEquals(int expected, - unsigned long actual, - CppUnit::SourceLine sourceLine, - const std::string& message) -{ - assertEquals((unsigned long)expected, actual, sourceLine, message); -} +// special section with VC6 workarounds: due to incorrect resolution of +// overloaded/template functions in this compiler (it basically doesn't use the +// template version at all if any overloaded function matches partially even if +// none of them matches fully) we also need +#ifdef __VISUALC6__ -// we also need this one to resolve ambiguity in the tests comparing unsigned -// short (e.g. wxDateTime_t returned by several wxDateTime methods) with -// literal integer constants -inline void -assertEquals(int expected, - unsigned short actual, - CppUnit::SourceLine sourceLine, - const std::string& message) -{ - assertEquals((unsigned short)expected, actual, sourceLine, message); -} +WX_CPPUNIT_ASSERT_EQUALS(int, int) +WX_CPPUNIT_ASSERT_EQUALS(size_t, size_t) -// this one is useful for wxTextCtrl functions which return longs -inline void -assertEquals(int expected, - long actual, - CppUnit::SourceLine sourceLine, - const std::string& message) -{ - assertEquals((long)expected, actual, sourceLine, message); -} +#endif // VC6 CPPUNIT_NS_END @@ -171,6 +160,10 @@ CPPUNIT_NS_END #define WX_ASSERT_MESSAGE(msg, cond) \ CPPUNIT_ASSERT_MESSAGE(std::string(wxString::Format msg .mb_str()), (cond)) +#define WX_ASSERT_EQUAL_MESSAGE(msg, expected, actual) \ + CPPUNIT_ASSERT_EQUAL_MESSAGE(std::string(wxString::Format msg .mb_str()), \ + (expected), (actual)) + /////////////////////////////////////////////////////////////////////////////// // define stream inserter for wxString if it's not defined in the main library, // we need it to output the test failures involving wxString @@ -189,6 +182,8 @@ inline std::ostream& operator<<(std::ostream& o, const wxString& s) #endif } +#endif // !wxUSE_STD_IOSTREAM + // VC6 doesn't provide overloads for operator<<(__int64) in its stream classes // so do it ourselves #if defined(__VISUALC6__) && defined(wxLongLong_t) @@ -211,8 +206,6 @@ inline std::ostream& operator<<(std::ostream& ostr, unsigned wxLongLong_t llu) #endif // VC6 && wxLongLong_t -#endif // !wxUSE_STD_IOSTREAM - /////////////////////////////////////////////////////////////////////////////// // Some more compiler warning tweaking and auto linking. //