{
wxCHECK_MSG( str, false, wxS("Output string must be non-NULL") );
- size_t length = wx_truncate_cast(size_t, Length());
+ ssize_t length = Length();
wxCHECK_MSG( (wxFileOffset)length == Length(), false, wxT("huge file not supported") );
wxCharBuffer buf(length);
return false;
p += nread;
+ if ( length <= nread )
+ break;
+
+ length -= nread;
}
*p = 0;
private:
CPPUNIT_TEST_SUITE( FileTestCase );
+ CPPUNIT_TEST( ReadAll );
#if wxUSE_UNICODE
CPPUNIT_TEST( RoundTripUTF8 );
CPPUNIT_TEST( RoundTripUTF16 );
CPPUNIT_TEST( TempFile );
CPPUNIT_TEST_SUITE_END();
+ void ReadAll();
#if wxUSE_UNICODE
void RoundTripUTF8() { DoRoundTripTest(wxConvUTF8); }
void RoundTripUTF16() { DoRoundTripTest(wxMBConvUTF16()); }
// tests implementation
// ----------------------------------------------------------------------------
+void FileTestCase::ReadAll()
+{
+ TestFile tf;
+
+ const char* text = "Ream\nde";
+
+ {
+ wxFile fout(tf.GetName(), wxFile::write);
+ CPPUNIT_ASSERT( fout.IsOpened() );
+ fout.Write(text, strlen(text));
+ CPPUNIT_ASSERT( fout.Close() );
+ }
+
+ {
+ wxFile fin(tf.GetName(), wxFile::read);
+ CPPUNIT_ASSERT( fin.IsOpened() );
+
+ wxString s;
+ CPPUNIT_ASSERT( fin.ReadAll(&s) );
+ CPPUNIT_ASSERT_EQUAL( text, s );
+ }
+}
+
#if wxUSE_UNICODE
void FileTestCase::DoRoundTripTest(const wxMBConv& conv)