Mercurial > fife-parpg
diff ext/UnitTest++/src/tests/TestMemoryOutStream.cpp @ 37:0d325e9d5953
added unittest++ files into ext. Not hooked into build scripts yet
author | jasoka@33b003aa-7bff-0310-803a-e67f0ece8222 |
---|---|
date | Sat, 12 Jul 2008 12:00:57 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ext/UnitTest++/src/tests/TestMemoryOutStream.cpp Sat Jul 12 12:00:57 2008 +0000 @@ -0,0 +1,150 @@ +#include "../UnitTest++.h" + +#include "../MemoryOutStream.h" +#include <cstring> + +using namespace UnitTest; + +namespace { + +TEST (DefaultIsEmptyString) +{ + MemoryOutStream const stream; + CHECK (stream.GetText() != 0); + CHECK_EQUAL ("", stream.GetText()); +} + +TEST (StreamingTextCopiesCharacters) +{ + MemoryOutStream stream; + stream << "Lalala"; + CHECK_EQUAL ("Lalala", stream.GetText()); +} + +TEST (StreamingMultipleTimesConcatenatesResult) +{ + MemoryOutStream stream; + stream << "Bork" << "Foo" << "Bar"; + CHECK_EQUAL ("BorkFooBar", stream.GetText()); +} + +TEST (StreamingIntWritesCorrectCharacters) +{ + MemoryOutStream stream; + stream << (int)123; + CHECK_EQUAL ("123", stream.GetText()); +} + +TEST (StreamingUnsignedIntWritesCorrectCharacters) +{ + MemoryOutStream stream; + stream << (unsigned int)123; + CHECK_EQUAL ("123", stream.GetText()); +} + +TEST (StreamingLongWritesCorrectCharacters) +{ + MemoryOutStream stream; + stream << (long)(-123); + CHECK_EQUAL ("-123", stream.GetText()); +} + +TEST (StreamingUnsignedLongWritesCorrectCharacters) +{ + MemoryOutStream stream; + stream << (unsigned long)123; + CHECK_EQUAL ("123", stream.GetText()); +} + +TEST (StreamingFloatWritesCorrectCharacters) +{ + MemoryOutStream stream; + stream << 3.1415f; + CHECK (std::strstr(stream.GetText(), "3.1415")); +} + +TEST (StreamingDoubleWritesCorrectCharacters) +{ + MemoryOutStream stream; + stream << 3.1415; + CHECK (std::strstr(stream.GetText(), "3.1415")); +} + +TEST (StreamingPointerWritesCorrectCharacters) +{ + MemoryOutStream stream; + int* p = (int*)0x1234; + stream << p; + CHECK (std::strstr(stream.GetText(), "1234")); +} + +TEST (StreamingSizeTWritesCorrectCharacters) +{ + MemoryOutStream stream; + size_t const s = 53124; + stream << s; + CHECK_EQUAL ("53124", stream.GetText()); +} + +#ifdef UNITTEST_USE_CUSTOM_STREAMS + +TEST (StreamInitialCapacityIsCorrect) +{ + MemoryOutStream stream(MemoryOutStream::GROW_CHUNK_SIZE); + CHECK_EQUAL ((int)MemoryOutStream::GROW_CHUNK_SIZE, stream.GetCapacity()); +} + +TEST (StreamInitialCapacityIsMultipleOfGrowChunkSize) +{ + MemoryOutStream stream(MemoryOutStream::GROW_CHUNK_SIZE + 1); + CHECK_EQUAL ((int)MemoryOutStream::GROW_CHUNK_SIZE * 2, stream.GetCapacity()); +} + + +TEST (ExceedingCapacityGrowsBuffer) +{ + MemoryOutStream stream(MemoryOutStream::GROW_CHUNK_SIZE); + stream << "012345678901234567890123456789"; + char const* const oldBuffer = stream.GetText(); + stream << "0123456789"; + CHECK (oldBuffer != stream.GetText()); +} + +TEST (ExceedingCapacityGrowsBufferByGrowChunk) +{ + MemoryOutStream stream(MemoryOutStream::GROW_CHUNK_SIZE); + stream << "0123456789012345678901234567890123456789"; + CHECK_EQUAL (MemoryOutStream::GROW_CHUNK_SIZE * 2, stream.GetCapacity()); +} + +TEST (WritingStringLongerThanCapacityFitsInNewBuffer) +{ + MemoryOutStream stream(8); + stream << "0123456789ABCDEF"; + CHECK_EQUAL ("0123456789ABCDEF", stream.GetText()); +} + +TEST (WritingIntLongerThanCapacityFitsInNewBuffer) +{ + MemoryOutStream stream(8); + stream << "aaaa" << 123456;; + CHECK_EQUAL ("aaaa123456", stream.GetText()); +} + +TEST (WritingFloatLongerThanCapacityFitsInNewBuffer) +{ + MemoryOutStream stream(8); + stream << "aaaa" << 123456.0f;; + CHECK_EQUAL ("aaaa123456.000000f", stream.GetText()); +} + +TEST (WritingSizeTLongerThanCapacityFitsInNewBuffer) +{ + MemoryOutStream stream(8); + stream << "aaaa" << size_t(32145); + CHECK_EQUAL ("aaaa32145", stream.GetText()); +} + +#endif + +}