]> git.saurik.com Git - wxWidgets.git/commitdiff
more printf() tests (slightly modified patch 1581936)
authorVadim Zeitlin <vadim@wxwidgets.org>
Sun, 22 Oct 2006 11:41:44 +0000 (11:41 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Sun, 22 Oct 2006 11:41:44 +0000 (11:41 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@42232 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

tests/strings/vsnprintf.cpp

index d8e96f28115655c14fdc28c30a5ebe85bbed119a..6170ac99d738ce3268ee27b9c43c05fedca7124d 100644 (file)
@@ -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