diff options
author | Mattes D <github@xoft.cz> | 2016-06-19 14:57:14 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-06-19 14:57:14 +0200 |
commit | 5ee6643804aa9cf5bc2a98b983ef7c453e78b8c7 (patch) | |
tree | 083bbf9029b971dbf7b74353c9c62c22de9c78c7 /tests/ByteBuffer/ByteBufferTest.cpp | |
parent | Merge pull request #3224 from QUSpilPrgm/master (diff) | |
parent | cNetwork: Fixed possible hang when terminating immediately after init. (diff) | |
download | cuberite-5ee6643804aa9cf5bc2a98b983ef7c453e78b8c7.tar cuberite-5ee6643804aa9cf5bc2a98b983ef7c453e78b8c7.tar.gz cuberite-5ee6643804aa9cf5bc2a98b983ef7c453e78b8c7.tar.bz2 cuberite-5ee6643804aa9cf5bc2a98b983ef7c453e78b8c7.tar.lz cuberite-5ee6643804aa9cf5bc2a98b983ef7c453e78b8c7.tar.xz cuberite-5ee6643804aa9cf5bc2a98b983ef7c453e78b8c7.tar.zst cuberite-5ee6643804aa9cf5bc2a98b983ef7c453e78b8c7.zip |
Diffstat (limited to 'tests/ByteBuffer/ByteBufferTest.cpp')
-rw-r--r-- | tests/ByteBuffer/ByteBufferTest.cpp | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/tests/ByteBuffer/ByteBufferTest.cpp b/tests/ByteBuffer/ByteBufferTest.cpp new file mode 100644 index 000000000..ddfe9e1d2 --- /dev/null +++ b/tests/ByteBuffer/ByteBufferTest.cpp @@ -0,0 +1,88 @@ + +// 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[]) +{ + LOGD("Test started"); + + LOGD("Testing reads"); + TestRead(); + + LOGD("Testing writes"); + TestWrite(); + + LOGD("Testing wraps"); + TestWrap(); + + LOG("ByteBuffer test finished."); +} + + + + + |