]> git.saurik.com Git - wxWidgets.git/commitdiff
Fix FileTestCase to really test strings with embedded NULs.
authorVadim Zeitlin <vadim@wxwidgets.org>
Sat, 16 Oct 2010 23:05:26 +0000 (23:05 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Sat, 16 Oct 2010 23:05:26 +0000 (23:05 +0000)
The test was intended to verify that round trip via wxFile::Write/Read()
worked even for the strings with embedded NULs but as the string wasn't
constructed correctly it didn't actually contain any NULs but was ended by the
first of them.

Fix this by using explicit length of the string as usual when dealing with
strings with embedded NULs. Also fix the conversion back to Unicode to use the
correct length.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65835 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

tests/file/filetest.cpp

index 446a59fa8da560e2130b304a2197034140cda958..4ee972b8b70ce1805ef7d68330d1f10bbb9e47bf 100644 (file)
@@ -71,7 +71,8 @@ void FileTestCase::DoRoundTripTest(const wxMBConv& conv)
 {
     TestFile tf;
 
-    const wxString data = "Hello\0UTF";
+    // Explicit length is needed because of the embedded NUL.
+    const wxString data("Hello\0UTF!", 10);
 
     {
         wxFile fout(tf.GetName(), wxFile::write);
@@ -88,8 +89,8 @@ void FileTestCase::DoRoundTripTest(const wxMBConv& conv)
         wxCharBuffer buf(len);
         CPPUNIT_ASSERT_EQUAL( len, fin.Read(buf.data(), len) );
 
-        wxWCharBuffer wbuf(conv.cMB2WC(buf));
-        CPPUNIT_ASSERT_EQUAL( data, wbuf );
+        wxString dataReadBack(buf, conv, len);
+        CPPUNIT_ASSERT_EQUAL( data, dataReadBack );
     }
 }