fixed test failures under wxMSW when using our wxVsnprintf implementation (remains 1 bug introduced by the wx29 string changes)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58962 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -177,6 +177,9 @@ CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( VsnprintfTestCase, "VsnprintfTestCase" );
|
|||||||
|
|
||||||
VsnprintfTestCase::VsnprintfTestCase()
|
VsnprintfTestCase::VsnprintfTestCase()
|
||||||
{
|
{
|
||||||
|
// this call is required to avoid check failures when running on machines
|
||||||
|
// with a locale where the decimal point is not '.'
|
||||||
|
wxSetlocale(LC_NUMERIC, "English");
|
||||||
}
|
}
|
||||||
|
|
||||||
void VsnprintfTestCase::C()
|
void VsnprintfTestCase::C()
|
||||||
@@ -423,9 +426,12 @@ void VsnprintfTestCase::Misc(T *buffer, int size)
|
|||||||
r = wxUnsafeSnprintf(buffer, size,
|
r = wxUnsafeSnprintf(buffer, size,
|
||||||
_T("unicode string: %ls %lc - ansi string: %hs %hc\n\n"),
|
_T("unicode string: %ls %lc - ansi string: %hs %hc\n\n"),
|
||||||
L"unicode!!", L'W', "ansi!!", 'w');
|
L"unicode!!", L'W', "ansi!!", 'w');
|
||||||
|
wxString expected =
|
||||||
|
wxString(wxT("unicode string: unicode!! W - ansi string: ansi!! w\n\n")).Left(size - 1);
|
||||||
|
|
||||||
CPPUNIT_ASSERT( r != -1 );
|
CPPUNIT_ASSERT( r != -1 );
|
||||||
CPPUNIT_ASSERT_EQUAL(
|
CPPUNIT_ASSERT_EQUAL(
|
||||||
wxString(wxT("unicode string: unicode!! W - ansi string: ansi!! w\n\n")).Left(size - 1),
|
expected,
|
||||||
wxString(buffer)
|
wxString(buffer)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -442,8 +448,9 @@ void VsnprintfTestCase::WrongFormatStrings()
|
|||||||
{
|
{
|
||||||
// test how wxVsnprintf() behaves with wrong format string:
|
// test how wxVsnprintf() behaves with wrong format string:
|
||||||
|
|
||||||
// NB: the next 2 tests currently return an error but they shouldn't,
|
#if 0
|
||||||
// according to POSIX reusing the parameters is allowed
|
// NB: the next 2 tests currently return an error but it would be nice
|
||||||
|
// if they didn't (see ticket #9367)
|
||||||
|
|
||||||
// two positionals with the same index:
|
// two positionals with the same index:
|
||||||
r = wxSnprintf(buf, MAX_TEST_LEN, wxT("%1$s %1$s"), "hello");
|
r = wxSnprintf(buf, MAX_TEST_LEN, wxT("%1$s %1$s"), "hello");
|
||||||
@@ -452,6 +459,7 @@ void VsnprintfTestCase::WrongFormatStrings()
|
|||||||
// three positionals with the same index mixed with other pos args:
|
// three positionals with the same index mixed with other pos args:
|
||||||
r = wxSnprintf(buf, MAX_TEST_LEN, wxT("%4$d %2$f %1$s %2$s %3$d"), "hello", "world", 3, 4);
|
r = wxSnprintf(buf, MAX_TEST_LEN, wxT("%4$d %2$f %1$s %2$s %3$d"), "hello", "world", 3, 4);
|
||||||
CPPUNIT_ASSERT(r != -1);
|
CPPUNIT_ASSERT(r != -1);
|
||||||
|
#endif
|
||||||
|
|
||||||
// a missing positional arg: this should result in an error but not all
|
// a missing positional arg: this should result in an error but not all
|
||||||
// implementations detect it (e.g. glibc doesn't)
|
// implementations detect it (e.g. glibc doesn't)
|
||||||
|
Reference in New Issue
Block a user