more printf() tests (slightly modified patch 1581936)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@42232 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -76,6 +76,11 @@ public:
|
||||
|
||||
private:
|
||||
CPPUNIT_TEST_SUITE( VsnprintfTestCase );
|
||||
CPPUNIT_TEST( D );
|
||||
CPPUNIT_TEST( X );
|
||||
CPPUNIT_TEST( O );
|
||||
CPPUNIT_TEST( P );
|
||||
CPPUNIT_TEST( N );
|
||||
CPPUNIT_TEST( E );
|
||||
CPPUNIT_TEST( F );
|
||||
CPPUNIT_TEST( G );
|
||||
@@ -87,6 +92,11 @@ private:
|
||||
CPPUNIT_TEST( BigToSmallBuffer );
|
||||
CPPUNIT_TEST_SUITE_END();
|
||||
|
||||
void D();
|
||||
void X();
|
||||
void O();
|
||||
void P();
|
||||
void N();
|
||||
void E();
|
||||
void F();
|
||||
void G();
|
||||
@@ -112,6 +122,58 @@ VsnprintfTestCase::VsnprintfTestCase()
|
||||
{
|
||||
}
|
||||
|
||||
void VsnprintfTestCase::D()
|
||||
{
|
||||
CMP3("+123456", "%+d", 123456);
|
||||
CMP3("-123456", "%d", -123456);
|
||||
CMP3(" 123456", "% d", 123456);
|
||||
CMP3(" 123456", "%10d", 123456);
|
||||
CMP3("0000123456", "%010d", 123456);
|
||||
CMP3("-123456 ", "%-10d", -123456);
|
||||
}
|
||||
|
||||
void VsnprintfTestCase::X()
|
||||
{
|
||||
CMP3("ABCD", "%X", 0xABCD);
|
||||
CMP3("0XABCD", "%#X", 0xABCD);
|
||||
CMP3("0xabcd", "%#x", 0xABCD);
|
||||
}
|
||||
|
||||
void VsnprintfTestCase::O()
|
||||
{
|
||||
CMP3("1234567", "%o", 01234567);
|
||||
CMP3("01234567", "%#o", 01234567);
|
||||
}
|
||||
|
||||
void VsnprintfTestCase::P()
|
||||
{
|
||||
// WARNING: printing of pointers is not fully standard.
|
||||
// GNU prints them as %#x except for NULL pointers which are
|
||||
// printed as '(nil)'.
|
||||
// MSVC always print them as %8X on 32 bit systems and as %16X
|
||||
// on 64 bit systems
|
||||
#ifdef __VISUALC__
|
||||
#if SIZEOF_VOID_P == 4
|
||||
CMP3("00ABCDEF", "%p", (void*)0xABCDEF);
|
||||
CMP3("00000000", "%p", (void*)NULL);
|
||||
#elif SIZEOF_VOID_P == 8
|
||||
CMP3("0000ABCDEFABCDEF", "%p", (void*)0xABCDEFABCDEF);
|
||||
CMP3("0000000000000000", "%p", (void*)NULL);
|
||||
#endif
|
||||
#elif defined(__GNUG__)
|
||||
CMP3("0xabcdef", "%p", (void*)0xABCDEF);
|
||||
CMP3("(nil)", "%p", (void*)NULL);
|
||||
#endif
|
||||
}
|
||||
|
||||
void VsnprintfTestCase::N()
|
||||
{
|
||||
int nchar;
|
||||
|
||||
wxSnprintf(buf, MAX_TEST_LEN, "%d %s%n\n", 3, "bears", &nchar);
|
||||
CPPUNIT_ASSERT_EQUAL( 7, nchar );
|
||||
}
|
||||
|
||||
void VsnprintfTestCase::E()
|
||||
{
|
||||
// NB: there are no standards about the minimum exponent width
|
||||
|
Reference in New Issue
Block a user