X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/eb6cb2079398cd74e98627c9065454e338cb1e6c..e0257cc50519539edabe524d44e9e1f6b3d36982:/tests/strings/vararg.cpp?ds=sidebyside diff --git a/tests/strings/vararg.cpp b/tests/strings/vararg.cpp index de259e3534..c65018c71f 100644 --- a/tests/strings/vararg.cpp +++ b/tests/strings/vararg.cpp @@ -36,6 +36,7 @@ public: private: CPPUNIT_TEST_SUITE( VarArgTestCase ); CPPUNIT_TEST( StringPrintf ); + CPPUNIT_TEST( CharPrintf ); #if wxUSE_STD_STRING CPPUNIT_TEST( StdString ); #endif @@ -43,6 +44,7 @@ private: CPPUNIT_TEST_SUITE_END(); void StringPrintf(); + void CharPrintf(); #if wxUSE_STD_STRING void StdString(); #endif @@ -91,7 +93,42 @@ void VarArgTestCase::StringPrintf() // literal: bool cond = true; s2.Printf(_T("foo %s"), !cond ? s.c_str() : _T("bar")); +} + +void VarArgTestCase::CharPrintf() +{ + wxString foo("foo"); + wxString s; + // test using wchar_t: + s.Printf("char=%c", L'c'); + WX_ASSERT_STR_EQUAL( "char=c", s ); + + // test wxUniCharRef: + s.Printf("string[1] is %c", foo[1]); + WX_ASSERT_STR_EQUAL( "string[1] is o", s ); + + // test char + char c = 'z'; + s.Printf("%c to %c", 'a', c); + WX_ASSERT_STR_EQUAL( "a to z", s ); + + // test char used as integer: + #ifdef _MSC_VER + #pragma warning(disable:4305) // truncation of constant value in VC6 + #pragma warning(disable:4309) // truncation of constant value + #endif + c = 240; + #ifdef _MSC_VER + #pragma warning(default:4305) // truncation of constant value in VC6 + #pragma warning(default:4309) + #endif + s.Printf("value is %i (int)", c); + WX_ASSERT_STR_EQUAL( wxString("value is -16 (int)"), s ); + + unsigned char u = 240; + s.Printf("value is %i (int)", u); + WX_ASSERT_STR_EQUAL( wxString("value is 240 (int)"), s ); } #if wxUSE_STD_STRING