X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/340da6aec02a5ec245cb6bd6018f3d46e27d8b76..bca6a3a5553884d5e210706b144dc3855798934d:/tests/streams/memstream.cpp diff --git a/tests/streams/memstream.cpp b/tests/streams/memstream.cpp index a785904bfe..6b5d2e6103 100644 --- a/tests/streams/memstream.cpp +++ b/tests/streams/memstream.cpp @@ -7,13 +7,9 @@ // Licence: wxWidgets licence /////////////////////////////////////////////////////////////////////////////// -#if defined(__GNUG__) && !defined(__APPLE__) - #pragma implementation - #pragma interface -#endif - // For compilers that support precompilation, includes "wx/wx.h". -#include "wx/wxprec.h" +// and "wx/cppunit.h" +#include "testprec.h" #ifdef __BORLANDC__ #pragma hdrstop @@ -24,14 +20,10 @@ #include "wx/wx.h" #endif -#include "wx/cppunit.h" #include "wx/mstream.h" #include "bstream.h" -using namespace std; -using namespace CppUnit; - #define DATABUFFER_SIZE 256 /////////////////////////////////////////////////////////////////////////////// @@ -64,17 +56,19 @@ public: CPPUNIT_TEST(Output_TellO); // Other test specific for Memory stream test case. + CPPUNIT_TEST(Ctor_InFromOut); CPPUNIT_TEST_SUITE_END(); protected: // Add own test here. + void Ctor_InFromOut(); private: const char *GetDataBuffer(); private: // Implement base class functions. - virtual wxMemoryInputStream *DoCreateInStream(); + virtual wxMemoryInputStream *DoCreateInStream(); virtual wxMemoryOutputStream *DoCreateOutStream(); private: @@ -98,19 +92,34 @@ const char *memStream::GetDataBuffer() return m_DataBuffer; } -wxMemoryInputStream *memStream::DoCreateInStream() -{ +wxMemoryInputStream *memStream::DoCreateInStream() +{ wxMemoryInputStream *pMemInStream = new wxMemoryInputStream(GetDataBuffer(), DATABUFFER_SIZE); CPPUNIT_ASSERT(pMemInStream->IsOk()); return pMemInStream; } wxMemoryOutputStream *memStream::DoCreateOutStream() -{ +{ wxMemoryOutputStream *pMemOutStream = new wxMemoryOutputStream(); CPPUNIT_ASSERT(pMemOutStream->IsOk()); return pMemOutStream; } +void memStream::Ctor_InFromOut() +{ + wxMemoryOutputStream *pMemOutStream = DoCreateOutStream(); + pMemOutStream->Write(GetDataBuffer(), DATABUFFER_SIZE); + wxMemoryInputStream *pMemInStream = new wxMemoryInputStream(*pMemOutStream); + CPPUNIT_ASSERT(pMemInStream->IsOk()); + CPPUNIT_ASSERT(pMemInStream->GetLength() == pMemOutStream->GetLength()); + int len = pMemInStream->GetLength(); + wxStreamBuffer *in = pMemInStream->GetInputStreamBuffer(); + wxStreamBuffer *out = pMemOutStream->GetOutputStreamBuffer(); + void *pIn = in->GetBufferStart(); + void *pOut = out->GetBufferStart(); + CPPUNIT_ASSERT(pIn != pOut); + CPPUNIT_ASSERT(memcmp(pIn, pOut, len) == 0); +} // Register the stream sub suite, by using some stream helper macro. // Note: Don't forget to connect it to the base suite (See: bstream.cpp => StreamCase::suite())