From c6d36593cd8493851c4d46bab8750ba3772a6863 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Sun, 11 May 2008 17:43:56 +0000 Subject: [PATCH] add a test for reading files >4KB git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@53556 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- tests/textfile/textfiletest.cpp | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/tests/textfile/textfiletest.cpp b/tests/textfile/textfiletest.cpp index 821cd76fef..8b5717082f 100644 --- a/tests/textfile/textfiletest.cpp +++ b/tests/textfile/textfiletest.cpp @@ -22,6 +22,7 @@ #ifndef WX_PRECOMP #endif // WX_PRECOMP +#include "wx/ffile.h" #include "wx/textfile.h" // ---------------------------------------------------------------------------- @@ -46,6 +47,7 @@ private: CPPUNIT_TEST( ReadUTF8 ); CPPUNIT_TEST( ReadUTF16 ); #endif // wxUSE_UNICODE + CPPUNIT_TEST( ReadBig ); CPPUNIT_TEST_SUITE_END(); void ReadEmpty(); @@ -57,6 +59,7 @@ private: void ReadUTF8(); void ReadUTF16(); #endif // wxUSE_UNICODE + void ReadBig(); // return the name of the test file we use static const char *GetTestFileName() { return "textfiletest.txt"; } @@ -199,6 +202,29 @@ void TextFileTestCase::ReadUTF16() #endif // wxHAVE_U_ESCAPE } +void TextFileTestCase::ReadBig() +{ + static const size_t NUM_LINES = 10000; + + { + wxFFile f(GetTestFileName(), "w"); + for ( size_t n = 0; n < NUM_LINES; n++ ) + { + fprintf(f.fp(), "Line %lu\n", (unsigned long)n + 1); + } + } + + wxTextFile f; + CPPUNIT_ASSERT( f.Open(GetTestFileName()) ); + + CPPUNIT_ASSERT_EQUAL( NUM_LINES, f.GetLineCount() ); + CPPUNIT_ASSERT_EQUAL( wxString("Line 1"), f[0] ); + CPPUNIT_ASSERT_EQUAL( wxString("Line 999"), f[998] ); + CPPUNIT_ASSERT_EQUAL( wxString("Line 1000"), f[999] ); + CPPUNIT_ASSERT_EQUAL( wxString::Format("Line %lu", (unsigned long)NUM_LINES), + f[NUM_LINES - 1] ); +} + #endif // wxUSE_UNICODE #endif // wxUSE_TEXTFILE -- 2.45.2