X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b7c746d017c42dfc5c44adff78b57b18aee90fbc..c39d2e0a3822e695efdfb2ead77a09defd6ed8c1:/include/wx/cppunit.h diff --git a/include/wx/cppunit.h b/include/wx/cppunit.h index 9ccc2a93c3..3b4281cfa1 100644 --- a/include/wx/cppunit.h +++ b/include/wx/cppunit.h @@ -87,6 +87,26 @@ // Use this macro to compare a size_t with a literal integer #define WX_ASSERT_SIZET_EQUAL(n, m) CPPUNIT_ASSERT_EQUAL(((size_t)n), m) +// Use this macro to compare a wxArrayString with the pipe-separated elements +// of the given string +// +// NB: it's a macro and not a function to have the correct line numbers in the +// test failure messages +#define WX_ASSERT_STRARRAY_EQUAL(s, a) \ + { \ + wxArrayString expected(wxSplit(s, '|', '\0')); \ + \ + CPPUNIT_ASSERT_EQUAL( expected.size(), a.size() ); \ + \ + for ( size_t n = 0; n < a.size(); n++ ) \ + { \ + CPPUNIT_ASSERT_EQUAL( expected[n], a[n] ); \ + } \ + } + +// Use this macro to compare the expected time_t value with the result of not +// necessarily time_t type +#define WX_ASSERT_TIME_T_EQUAL(t, n) CPPUNIT_ASSERT_EQUAL((t), (time_t)(n)) // Use this macro to assert with the given formatted message (it should contain // the format string and arguments in a separate pair of parentheses) @@ -100,6 +120,8 @@ #include "wx/string.h" +#include + inline std::ostream& operator<<(std::ostream& o, const wxString& s) { #if wxUSE_UNICODE @@ -109,6 +131,28 @@ inline std::ostream& operator<<(std::ostream& o, const wxString& s) #endif } +// VC6 doesn't provide overloads for operator<<(__int64) in its stream classes +// so do it ourselves +#if defined(__VISUALC6__) && defined(wxLongLong_t) + +#include "wx/longlong.h" + +inline std::ostream& operator<<(std::ostream& ostr, wxLongLong_t ll) +{ + ostr << wxLongLong(ll).ToString(); + + return ostr; +} + +inline std::ostream& operator<<(std::ostream& ostr, unsigned wxLongLong_t llu) +{ + ostr << wxULongLong(llu).ToString(); + + return ostr; +} + +#endif // VC6 && wxLongLong_t + #endif // !wxUSE_STD_IOSTREAM ///////////////////////////////////////////////////////////////////////////////