CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( Name, COMPOSE_TEST_NAME(Name) ); \
STREAM_IMPLEMENT_SUB_REGISTRATION_ROUTINE( Name )
+// under 64 bit platforms wxFileOffset is the same as long and we already have
+// WX_CPPUNIT_ALLOW_EQUALS_TO_INT(long) in wx/cppunit.h
+#if SIZEOF_LONG != 8
+WX_CPPUNIT_ALLOW_EQUALS_TO_INT(wxFileOffset)
+#endif
///////////////////////////////////////////////////////////////////////////////
// Template class that implements a test for all base stream functions.
// Travel to the end of the stream.
while(!stream_in.Eof())
{
+ CPPUNIT_ASSERT_MESSAGE( "unexpected non-EOF stream error",
+ stream_in.IsOk() );
+
// Read, we move one byte along.
(void)stream_in.GetC();
#if 0
char buf[5];
(void)stream_in.Read(buf, 5);
- CPPUNIT_ASSERT(stream_in.LastRead() == 5);
+ CPPUNIT_ASSERT_EQUAL(5, stream_in.LastRead());
(void)stream_in.GetC();
- CPPUNIT_ASSERT(stream_in.LastRead() == 1);
+ CPPUNIT_ASSERT_EQUAL(1, stream_in.LastRead());
}
void Input_CanRead()
{
CleanupHelper cleanup(this);
TStreamIn &stream_in = CreateInStream();
+
+ CPPUNIT_ASSERT( stream_in.IsSeekable() );
CPPUNIT_ASSERT(!stream_in.Eof());
// Try to Seek in the stream...
// Note: streams not supporting this should register this test
// with CPPUNIT_TEST_FAIL instead of CPPUNIT_TEST.
- CPPUNIT_ASSERT(stream_in.SeekI(2, wxFromStart) == 2);
- CPPUNIT_ASSERT(stream_in.SeekI(2, wxFromCurrent) == 4);
+ CPPUNIT_ASSERT_EQUAL(2, stream_in.SeekI(2, wxFromStart));
+ CPPUNIT_ASSERT_EQUAL(4, stream_in.SeekI(2, wxFromCurrent));
// Not sure the following line is correct, so test it differently.
- //CPPUNIT_ASSERT(stream_in.SeekI(-2, wxFromEnd) == (off_t)stream_in.GetSize()-2);
+ //CPPUNIT_ASSERT_EQUAL(stream_in.GetSize()-2, stream_in.SeekI(-2, wxFromEnd));
CPPUNIT_ASSERT(stream_in.SeekI(-2, wxFromEnd) != wxInvalidOffset);
// Go beyond the stream size.
CPPUNIT_ASSERT((stream_in.SeekI(10, wxFromCurrent) == wxInvalidOffset) == m_bSeekInvalidBeyondEnd);
{
CleanupHelper cleanup(this);
TStreamIn &stream_in = CreateInStream();
+
+ // this test shouldn't be used at all if the stream isn't seekable
+ CPPUNIT_ASSERT( stream_in.IsSeekable() );
+
CPPUNIT_ASSERT(!stream_in.Eof());
// Try to Get the location in the stream...
- CPPUNIT_ASSERT(stream_in.TellI() == 0);
+ CPPUNIT_ASSERT_EQUAL(0, stream_in.TellI());
(void)stream_in.GetC();
- CPPUNIT_ASSERT(stream_in.TellI() == 1);
+ CPPUNIT_ASSERT_EQUAL(1, stream_in.TellI());
if (!m_bSimpleTellITest)
{
wxFileOffset pos = stream_in.SeekI(5, wxFromStart);
- CPPUNIT_ASSERT(stream_in.TellI() == pos);
+ CPPUNIT_ASSERT_EQUAL(pos, stream_in.TellI());
(void)stream_in.GetC();
- CPPUNIT_ASSERT(stream_in.TellI() == 6);
+ CPPUNIT_ASSERT_EQUAL(6, stream_in.TellI());
pos = stream_in.SeekI(2, wxFromCurrent);
- CPPUNIT_ASSERT(stream_in.TellI() == pos);
+ CPPUNIT_ASSERT_EQUAL(pos, stream_in.TellI());
pos = stream_in.SeekI(5, wxFromStart);
- CPPUNIT_ASSERT(stream_in.TellI() == pos);
+ CPPUNIT_ASSERT_EQUAL(pos, stream_in.TellI());
}
}
char peekChar = stream_in.Peek();
char getChar = stream_in.GetC();
if (stream_in.LastRead() == 1)
- CPPUNIT_ASSERT(peekChar == getChar);
+ CPPUNIT_ASSERT_EQUAL(getChar, peekChar);
}
}
size_t ungetsize = stream_in.Ungetch(ungetstr, strlen(ungetstr) + 1);
if (ungetsize != 0)
{
- CPPUNIT_ASSERT(ungetsize == strlen(ungetstr) + 1);
+ CPPUNIT_ASSERT_EQUAL(strlen(ungetstr) + 1, ungetsize);
char buf[10];
(void)stream_in.Read(buf, ungetsize);
CPPUNIT_ASSERT(strcmp(buf, ungetstr) == 0);
if (stream_in.Ungetch('a'))
{
- CPPUNIT_ASSERT(stream_in.GetC() == 'a');
+ CPPUNIT_ASSERT_EQUAL(int('a'), stream_in.GetC());
}
}
CleanupHelper cleanup(this);
TStreamOut &stream_out = CreateOutStream();
- char *buf = "Some text";
- int i;
- int len = strlen(buf);
- for (i = 0; i < len; i++)
+ const char *buf = "Some text";
+ const wxFileOffset len = strlen(buf);
+ for ( int i = 0; i < len; i++ )
stream_out.PutC(buf[i]);
- CPPUNIT_ASSERT(i == stream_out.TellO());
+ if ( stream_out.IsSeekable() )
+ CPPUNIT_ASSERT_EQUAL(len, stream_out.TellO());
}
// Just try to perform a Write() on the output stream.
TStreamOut &stream_out = CreateOutStream();
// Do the buffer version.
- char *buf = "Some text";
- int len = strlen(buf);
+ const char *buf = "Some text";
+ const wxFileOffset len = strlen(buf);
(void)stream_out.Write(buf, len);
- CPPUNIT_ASSERT(stream_out.TellO() == len);
+ if ( stream_out.IsSeekable() )
+ CPPUNIT_ASSERT_EQUAL( len, stream_out.TellO() );
// Do the Stream version.
TStreamIn &stream_in = CreateInStream();
(void)stream_out.Write(stream_in);
- CPPUNIT_ASSERT(stream_out.TellO() > len);
+
+ if ( stream_out.IsSeekable() )
+ CPPUNIT_ASSERT(stream_out.TellO() > len);
}
// Just try to perform a LastWrite() on the output stream.
CleanupHelper cleanup(this);
TStreamOut &stream_out = CreateOutStream();
- char *buf = "12345";
+ const char *buf = "12345";
(void)stream_out.Write(buf, 5);
- CPPUNIT_ASSERT(stream_out.LastWrite() == 5);
+ CPPUNIT_ASSERT_EQUAL(5, stream_out.LastWrite());
(void)stream_out.PutC('1');
- CPPUNIT_ASSERT(stream_out.LastWrite() == 1);
+ CPPUNIT_ASSERT_EQUAL(1, stream_out.LastWrite());
}
// Just try to perform a SeekO() on the output stream.
CleanupHelper cleanup(this);
TStreamOut &stream_out = CreateOutStream();
+ CPPUNIT_ASSERT( stream_out.IsSeekable() );
+
// First put some data in the stream, so it is not empty.
- char *buf = "1234567890";
+ const char *buf = "1234567890";
(void)stream_out.Write(buf, 10);
// Try to Seek in the stream...
// Note: streams not supporting this should register this test
// with CPPUNIT_TEST_FAIL instead of CPPUNIT_TEST.
- CPPUNIT_ASSERT(stream_out.SeekO(2, wxFromStart) == 2);
- CPPUNIT_ASSERT(stream_out.SeekO(2, wxFromCurrent) == 4);
+ CPPUNIT_ASSERT_EQUAL(2, stream_out.SeekO(2, wxFromStart));
+ CPPUNIT_ASSERT_EQUAL(4, stream_out.SeekO(2, wxFromCurrent));
// Not sure the following line is correct, so test it differently.
- //CPPUNIT_ASSERT(stream_out.SeekO(-2, wxFromEnd) == (off_t)stream_in.GetSize()-2);
+ //CPPUNIT_ASSERT_EQUAL(stream_in.GetSize()-2, stream_out.SeekO(-2, wxFromEnd));
CPPUNIT_ASSERT(stream_out.SeekO(-2, wxFromEnd) != wxInvalidOffset);
// Go beyond the stream size.
CPPUNIT_ASSERT((stream_out.SeekO(10, wxFromCurrent) == wxInvalidOffset) == m_bSeekInvalidBeyondEnd);
CleanupHelper cleanup(this);
TStreamOut &stream_out = CreateOutStream();
+ // If this test is used, the stream must be seekable
+ CPPUNIT_ASSERT( stream_out.IsSeekable() );
+
// Try to Get the location in the stream...
- CPPUNIT_ASSERT(stream_out.TellO() == 0);
+ CPPUNIT_ASSERT_EQUAL(0, stream_out.TellO());
(void)stream_out.PutC('1');
- CPPUNIT_ASSERT(stream_out.TellO() == 1);
+ CPPUNIT_ASSERT_EQUAL(1, stream_out.TellO());
if (!m_bSimpleTellOTest)
{
// First put some extra data in the stream, so it's not empty.
- char *buf = "1234567890";
+ const char *buf = "1234567890";
(void)stream_out.Write(buf, 10);
- off_t pos = stream_out.SeekO(5, wxFromStart);
- CPPUNIT_ASSERT(stream_out.TellO() == pos);
+ wxFileOffset pos = stream_out.SeekO(5, wxFromStart);
+ CPPUNIT_ASSERT_EQUAL(pos, stream_out.TellO());
(void)stream_out.PutC('1');
- CPPUNIT_ASSERT(stream_out.TellO() == 6);
+ CPPUNIT_ASSERT_EQUAL(6, stream_out.TellO());
pos = stream_out.SeekO(2, wxFromCurrent);
- CPPUNIT_ASSERT(stream_out.TellO() == pos);
+ CPPUNIT_ASSERT_EQUAL(pos, stream_out.TellO());
pos = stream_out.SeekO(5, wxFromStart);
- CPPUNIT_ASSERT(stream_out.TellO() == pos);
+ CPPUNIT_ASSERT_EQUAL(pos, stream_out.TellO());
}
}