diff options
author | Mattes D <github@xoft.cz> | 2016-03-13 18:59:42 +0100 |
---|---|---|
committer | Mattes D <github@xoft.cz> | 2016-06-18 13:12:07 +0200 |
commit | ab6f68b42cac83e4f8fdc93e9654eb536f7f2e32 (patch) | |
tree | 73f5b6e80bbadf15e8815846ba7e4e7b0a19ca66 /tests/ByteBuffer/ByteBufferTest.cpp | |
parent | SelfTests: Organized into solution folders. (diff) | |
download | cuberite-ab6f68b42cac83e4f8fdc93e9654eb536f7f2e32.tar cuberite-ab6f68b42cac83e4f8fdc93e9654eb536f7f2e32.tar.gz cuberite-ab6f68b42cac83e4f8fdc93e9654eb536f7f2e32.tar.bz2 cuberite-ab6f68b42cac83e4f8fdc93e9654eb536f7f2e32.tar.lz cuberite-ab6f68b42cac83e4f8fdc93e9654eb536f7f2e32.tar.xz cuberite-ab6f68b42cac83e4f8fdc93e9654eb536f7f2e32.tar.zst cuberite-ab6f68b42cac83e4f8fdc93e9654eb536f7f2e32.zip |
Diffstat (limited to '')
-rw-r--r-- | tests/ByteBuffer/ByteBufferTest.cpp | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/tests/ByteBuffer/ByteBufferTest.cpp b/tests/ByteBuffer/ByteBufferTest.cpp new file mode 100644 index 000000000..98a802554 --- /dev/null +++ b/tests/ByteBuffer/ByteBufferTest.cpp @@ -0,0 +1,80 @@ + +// ByteBufferTest.cpp + +// Implements the main app entrypoint for the cByteBuffer class test + +#include "Globals.h" +#include "ByteBuffer.h" + + + + + +static void TestRead(void) +{ + cByteBuffer buf(50); + buf.Write("\x05\xac\x02\x00", 4); + UInt32 v1; + assert_test(buf.ReadVarInt(v1) && (v1 == 5)); + UInt32 v2; + assert_test(buf.ReadVarInt(v2) && (v2 == 300)); + UInt32 v3; + assert_test(buf.ReadVarInt(v3) && (v3 == 0)); +} + + + + + +static void TestWrite(void) +{ + cByteBuffer buf(50); + buf.WriteVarInt32(5); + buf.WriteVarInt32(300); + buf.WriteVarInt32(0); + AString All; + buf.ReadAll(All); + assert_test(All.size() == 4); + assert_test(memcmp(All.data(), "\x05\xac\x02\x00", All.size()) == 0); +} + + + + + +static void TestWrap(void) +{ + cByteBuffer buf(3); + for (int i = 0; i < 1000; i++) + { + size_t FreeSpace = buf.GetFreeSpace(); + assert_test(buf.GetReadableSpace() == 0); + assert_test(FreeSpace > 0); + assert_test(buf.Write("a", 1)); + assert_test(buf.CanReadBytes(1)); + assert_test(buf.GetReadableSpace() == 1); + UInt8 v = 0; + assert_test(buf.ReadBEUInt8(v)); + assert_test(v == 'a'); + assert_test(buf.GetReadableSpace() == 0); + buf.CommitRead(); + assert_test(buf.GetFreeSpace() == FreeSpace); // We're back to normal + } +} + + + + + +int main(int argc, char * argv[]) +{ + TestRead(); + TestWrite(); + TestWrap(); + LOG("ByteBuffer test finished."); +} + + + + + |