From 08776b09141acf2a1365152d1b3424dce43ae89d Mon Sep 17 00:00:00 2001 From: =?utf8?q?V=C3=A1clav=20Slav=C3=ADk?= Date: Sun, 11 Apr 2004 20:59:33 +0000 Subject: [PATCH 1/1] stream tests improvements (patch 924438) git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@26716 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- tests/streams/bstream.cpp | 2 +- tests/streams/bstream.h | 21 ++++++++++++--------- tests/streams/ffilestream.cpp | 2 +- tests/streams/filestream.cpp | 2 +- tests/streams/zlibstream.cpp | 15 +++++++++------ 5 files changed, 24 insertions(+), 18 deletions(-) diff --git a/tests/streams/bstream.cpp b/tests/streams/bstream.cpp index 6d17c74f36..00b8aa8c98 100644 --- a/tests/streams/bstream.cpp +++ b/tests/streams/bstream.cpp @@ -37,7 +37,7 @@ class StreamCase : public TestSuite { public: StreamCase() - :TestSuite("Streams") + :TestSuite(STREAM_TEST_NAME) { /* Nothing extra */ } static Test *suite(); }; diff --git a/tests/streams/bstream.h b/tests/streams/bstream.h index 7e8380ebb4..4d1029ac3f 100644 --- a/tests/streams/bstream.h +++ b/tests/streams/bstream.h @@ -14,17 +14,19 @@ using namespace CppUnit; /////////////////////////////////////////////////////////////////////////////// -// Some macros preventing use from typing too much ;-) +// Some macros preventing us from typing too much ;-) // #define STREAM_TEST_NAME "Streams" +#define COMPOSE_TEST_NAME(Name) \ + STREAM_TEST_NAME "." #Name #define STREAM_REGISTER_SUB_SUITE(Name) \ extern Test* Get##Name##Suite(); \ suite->addTest(Get##Name##Suite()) #define STREAM_IMPLEMENT_SUB_REGISTRATION_ROUTINE(Name) \ Test* Get##Name##Suite() { return Name::suite(); } #define STREAM_TEST_SUBSUITE_NAMED_REGISTRATION(Name) \ - CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( Name, STREAM_TEST_NAME "." #Name ); \ + CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( Name, COMPOSE_TEST_NAME(Name) ); \ STREAM_IMPLEMENT_SUB_REGISTRATION_ROUTINE( Name ) @@ -57,6 +59,7 @@ public: BaseStreamTestCase() :m_bSimpleTellITest(false), m_bSimpleTellOTest(false), + m_bSeekInvalidBeyondEnd(true), m_pCurrentIn(NULL), m_pCurrentOut(NULL) { /* Nothing extra */ } @@ -176,7 +179,7 @@ protected: //CPPUNIT_ASSERT(stream_in.SeekI(-2, wxFromEnd) == (off_t)stream_in.GetSize()-2); CPPUNIT_ASSERT(stream_in.SeekI(-2, wxFromEnd) != wxInvalidOffset); // Go beyond the stream size. - CPPUNIT_ASSERT(stream_in.SeekI(10, wxFromCurrent) == wxInvalidOffset); + CPPUNIT_ASSERT((stream_in.SeekI(10, wxFromCurrent) == wxInvalidOffset) == m_bSeekInvalidBeyondEnd); } // Just try to perform a TellI() on the input stream. @@ -210,14 +213,12 @@ protected: TStreamIn &stream_in = CreateInStream(); // Test the full stream - while(!stream_in.Eof()) + while (stream_in.IsOk()) { - if (!stream_in.IsOk()) - break; - char peekChar = stream_in.Peek(); char getChar = stream_in.GetC(); - CPPUNIT_ASSERT(peekChar == getChar); + if (stream_in.LastRead() == 1) + CPPUNIT_ASSERT(peekChar == getChar); } } @@ -313,7 +314,7 @@ protected: //CPPUNIT_ASSERT(stream_out.SeekO(-2, wxFromEnd) == (off_t)stream_in.GetSize()-2); CPPUNIT_ASSERT(stream_out.SeekO(-2, wxFromEnd) != wxInvalidOffset); // Go beyond the stream size. - CPPUNIT_ASSERT(stream_out.SeekO(10, wxFromCurrent) == wxInvalidOffset); + CPPUNIT_ASSERT((stream_out.SeekO(10, wxFromCurrent) == wxInvalidOffset) == m_bSeekInvalidBeyondEnd); } // Just try to perform a TellO() on the output stream. @@ -349,6 +350,8 @@ protected: // Default false. bool m_bSimpleTellOTest; // if true, no SeekO will be used by the TellI test. // Default false. + bool m_bSeekInvalidBeyondEnd; // if true a SeekI|O beyond the end of the stream should return wxInvalidOffset + // Default true. protected: TStreamIn &CreateInStream() diff --git a/tests/streams/ffilestream.cpp b/tests/streams/ffilestream.cpp index 27108f4210..66a4cd73c7 100644 --- a/tests/streams/ffilestream.cpp +++ b/tests/streams/ffilestream.cpp @@ -84,7 +84,7 @@ private: ffileStream::ffileStream() { - /* Nothing extra */ + m_bSeekInvalidBeyondEnd = false; } ffileStream::~ffileStream() diff --git a/tests/streams/filestream.cpp b/tests/streams/filestream.cpp index a5cd6ac5c0..90f05f7af1 100644 --- a/tests/streams/filestream.cpp +++ b/tests/streams/filestream.cpp @@ -84,7 +84,7 @@ private: fileStream::fileStream() { - /* Nothing extra */ + m_bSeekInvalidBeyondEnd = false; } fileStream::~fileStream() diff --git a/tests/streams/zlibstream.cpp b/tests/streams/zlibstream.cpp index e437323c1c..fa5779354b 100644 --- a/tests/streams/zlibstream.cpp +++ b/tests/streams/zlibstream.cpp @@ -34,6 +34,9 @@ using namespace std; using namespace CppUnit; +#define WXTEST_WITH_GZIP_CONDITION(testMethod) \ + WXTEST_WITH_CONDITION( COMPOSE_TEST_NAME(zlibStream), wxZlibInputStream::CanHandleGZip() && wxZlibOutputStream::CanHandleGZip(), testMethod ) + #define DATABUFFER_SIZE 1024 static const wxString FILENAME_GZ = _T("zlibtest.gz"); @@ -41,7 +44,7 @@ static const wxString FILENAME_GZ = _T("zlibtest.gz"); /////////////////////////////////////////////////////////////////////////////// // The test case // -// Try to fully test wxZlibInputStream and wxFileOutputStream +// Try to fully test wxZlibInputStream and wxZlibOutputStream class zlibStream : public BaseStreamTestCase { @@ -76,11 +79,11 @@ public: CPPUNIT_TEST(TestStream_ZLib_NoComp); CPPUNIT_TEST(TestStream_ZLib_SpeedComp); CPPUNIT_TEST(TestStream_ZLib_BestComp); - CPPUNIT_TEST(TestStream_GZip_Default); - CPPUNIT_TEST(TestStream_GZip_NoComp); - CPPUNIT_TEST(TestStream_GZip_SpeedComp); - CPPUNIT_TEST(TestStream_GZip_BestComp); - CPPUNIT_TEST(TestStream_ZLibGZip); + WXTEST_WITH_GZIP_CONDITION(TestStream_GZip_Default); + WXTEST_WITH_GZIP_CONDITION(TestStream_GZip_NoComp); + WXTEST_WITH_GZIP_CONDITION(TestStream_GZip_SpeedComp); + WXTEST_WITH_GZIP_CONDITION(TestStream_GZip_BestComp); + WXTEST_WITH_GZIP_CONDITION(TestStream_ZLibGZip); CPPUNIT_TEST(Decompress_BadData); CPPUNIT_TEST(Decompress_wx24Data); CPPUNIT_TEST_SUITE_END(); -- 2.45.2