summaryrefslogtreecommitdiffstats
path: root/document/src/tests/testbytebuffer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'document/src/tests/testbytebuffer.cpp')
-rw-r--r--document/src/tests/testbytebuffer.cpp264
1 files changed, 10 insertions, 254 deletions
diff --git a/document/src/tests/testbytebuffer.cpp b/document/src/tests/testbytebuffer.cpp
index b90db980683..b4ad558b4ad 100644
--- a/document/src/tests/testbytebuffer.cpp
+++ b/document/src/tests/testbytebuffer.cpp
@@ -3,12 +3,14 @@
#include <vespa/document/util/stringutil.h>
#include <vespa/document/util/bytebuffer.h>
#include <vespa/document/fieldvalue/serializablearray.h>
-#include <iostream>
-#include <vespa/vespalib/util/macro.h>
#include <vespa/document/util/bufferexceptions.h>
+#include <vespa/vespalib/util/macro.h>
+#include <vespa/vespalib/util/growablebytebuffer.h>
#include <gtest/gtest.h>
+
using namespace document;
+using vespalib::GrowableByteBuffer;
namespace {
@@ -29,9 +31,10 @@ TEST(ByteBuffer_Test, test_constructors)
TEST(ByteBuffer_Test, test_copy_constructor)
{
try {
- ByteBuffer b1(100);
- b1.putInt(1);
- b1.putInt(2);
+ GrowableByteBuffer gb(100);
+ gb.putInt(1);
+ gb.putInt(2);
+ ByteBuffer b1(gb.getBuffer(), gb.position());
ByteBuffer b2(b1);
@@ -40,10 +43,9 @@ TEST(ByteBuffer_Test, test_copy_constructor)
EXPECT_EQ(b1.getRemaining(),b2.getRemaining());
int test = 0;
- b2.flip();
- b2.getInt(test);
+ b2.getIntNetwork(test);
EXPECT_EQ(1,test);
- b2.getInt(test);
+ b2.getIntNetwork(test);
EXPECT_EQ(2,test);
} catch (std::exception &e) {
@@ -51,252 +53,6 @@ TEST(ByteBuffer_Test, test_copy_constructor)
}
}
-TEST(ByteBuffer_Test, test_putGetFlip)
-{
- ByteBuffer newBuf(100);
-
- try {
- newBuf.putInt(10);
- int test;
- newBuf.flip();
-
- newBuf.getInt(test);
- EXPECT_EQ(test, 10);
-
- newBuf.clear();
- newBuf.putDouble(3.35);
- newBuf.flip();
- EXPECT_EQ(newBuf.getRemaining(), 100);
- double test2;
- newBuf.getDouble(test2);
- EXPECT_TRUE(test2==3.35);
-
- newBuf.clear();
- newBuf.putBytes("heisann",8);
- newBuf.putInt(4);
- EXPECT_EQ(newBuf.getPos(), 12);
- EXPECT_EQ(newBuf.getLength(), 100);
- newBuf.flip();
- EXPECT_EQ(newBuf.getRemaining(), 100);
-
- char testStr[12];
- newBuf.getBytes(testStr, 8);
- EXPECT_TRUE(strcmp(testStr,"heisann")==0);
- newBuf.getInt(test);
- EXPECT_TRUE(test==4);
- } catch (std::exception &e) {
- FAIL() << "Unexpected exception at " << VESPA_STRLOC << ": \"" << e.what() << "\"";
- }
-}
-
-
-TEST(ByteBuffer_Test, test_NumberEncodings)
-{
- ByteBuffer buf(1024);
-
- // Check 0
- buf.putInt1_2_4Bytes(124);
- buf.putInt2_4_8Bytes(124);
- buf.putInt1_4Bytes(124);
- // Check 1
- buf.putInt1_2_4Bytes(127);
- buf.putInt2_4_8Bytes(127);
- buf.putInt1_4Bytes(127);
- // Check 2
- buf.putInt1_2_4Bytes(128);
- buf.putInt2_4_8Bytes(128);
- buf.putInt1_4Bytes(128);
- // Check 3
- buf.putInt1_2_4Bytes(255);
- buf.putInt2_4_8Bytes(255);
- buf.putInt1_4Bytes(255);
- // Check 4
- buf.putInt1_2_4Bytes(256);
- buf.putInt2_4_8Bytes(256);
- buf.putInt1_4Bytes(256);
- // Check 5
- buf.putInt1_2_4Bytes(0);
- buf.putInt2_4_8Bytes(0);
- buf.putInt1_4Bytes(0);
- // Check 6
- buf.putInt1_2_4Bytes(1);
- buf.putInt2_4_8Bytes(1);
- buf.putInt1_4Bytes(1);
-
- // Check 7
- try {
- buf.putInt1_2_4Bytes(0x7FFFFFFF);
- FAIL() << "Expected input out of range exception";
- } catch (InputOutOfRangeException& e) { }
- buf.putInt2_4_8Bytes(0x7FFFFFFFll);
- buf.putInt1_4Bytes(0x7FFFFFFF);
-
- try {
- buf.putInt2_4_8Bytes(0x7FFFFFFFFFFFFFFFll);
- FAIL() << "Expected input out of range exception";
- } catch (InputOutOfRangeException& e) { }
-
- buf.putInt1_2_4Bytes(0x7FFF);
- // Check 8
- buf.putInt2_4_8Bytes(0x7FFFll);
- buf.putInt1_4Bytes(0x7FFF);
- buf.putInt1_2_4Bytes(0x7F);
- // Check 9
- buf.putInt2_4_8Bytes(0x7Fll);
- buf.putInt1_4Bytes(0x7F);
-
- try {
- buf.putInt1_2_4Bytes(-1);
- FAIL() << "Expected input out of range exception";
- } catch (InputOutOfRangeException& e) { }
- try {
- buf.putInt2_4_8Bytes(-1);
- FAIL() << "Expected input out of range exception";
- } catch (InputOutOfRangeException& e) { }
- try {
- buf.putInt1_4Bytes(-1);
- FAIL() << "Expected input out of range exception";
- } catch (InputOutOfRangeException& e) { }
-
- try {
- buf.putInt1_2_4Bytes(-0x7FFFFFFF);
- FAIL() << "Expected input out of range exception";
- } catch (InputOutOfRangeException& e) { }
- try {
- buf.putInt2_4_8Bytes(-0x7FFFFFFF);
- FAIL() << "Expected input out of range exception";
- } catch (InputOutOfRangeException& e) { }
- try {
- buf.putInt1_4Bytes(-0x7FFFFFFF);
- FAIL() << "Expected input out of range exception";
- } catch (InputOutOfRangeException& e) { }
-
- try {
- buf.putInt2_4_8Bytes(-0x7FFFFFFFFFFFFFFFll);
- FAIL() << "Expected input out of range exception";
- } catch (InputOutOfRangeException& e) { }
-
- uint32_t endWritePos = buf.getPos();
- buf.setPos(0);
-
- int32_t tmp32;
- int64_t tmp64;
-
- // Check 0
- buf.getInt1_2_4Bytes(tmp32);
- EXPECT_EQ(124, tmp32);
- buf.getInt2_4_8Bytes(tmp64);
- EXPECT_EQ((int64_t)124, tmp64);
- buf.getInt1_4Bytes(tmp32);
- EXPECT_EQ(124, tmp32);
- // Check 1
- buf.getInt1_2_4Bytes(tmp32);
- EXPECT_EQ(127, tmp32);
- buf.getInt2_4_8Bytes(tmp64);
- EXPECT_EQ((int64_t)127, tmp64);
- buf.getInt1_4Bytes(tmp32);
- EXPECT_EQ(127, tmp32);
- // Check 2
- buf.getInt1_2_4Bytes(tmp32);
- EXPECT_EQ(128, tmp32);
- buf.getInt2_4_8Bytes(tmp64);
- EXPECT_EQ((int64_t)128, tmp64);
- buf.getInt1_4Bytes(tmp32);
- EXPECT_EQ(128, tmp32);
- // Check 3
- buf.getInt1_2_4Bytes(tmp32);
- EXPECT_EQ(255, tmp32);
- buf.getInt2_4_8Bytes(tmp64);
- EXPECT_EQ((int64_t)255, tmp64);
- buf.getInt1_4Bytes(tmp32);
- EXPECT_EQ(255, tmp32);
- // Check 4
- buf.getInt1_2_4Bytes(tmp32);
- EXPECT_EQ(256, tmp32);
- buf.getInt2_4_8Bytes(tmp64);
- EXPECT_EQ((int64_t)256, tmp64);
- buf.getInt1_4Bytes(tmp32);
- EXPECT_EQ(256, tmp32);
- // Check 5
- buf.getInt1_2_4Bytes(tmp32);
- EXPECT_EQ(0, tmp32);
- buf.getInt2_4_8Bytes(tmp64);
- EXPECT_EQ((int64_t)0, tmp64);
- buf.getInt1_4Bytes(tmp32);
- EXPECT_EQ(0, tmp32);
- // Check 6
- buf.getInt1_2_4Bytes(tmp32);
- EXPECT_EQ(1, tmp32);
- buf.getInt2_4_8Bytes(tmp64);
- EXPECT_EQ((int64_t)1, tmp64);
- buf.getInt1_4Bytes(tmp32);
- EXPECT_EQ(1, tmp32);
- // Check 7
- buf.getInt2_4_8Bytes(tmp64);
- EXPECT_EQ((int64_t)0x7FFFFFFF, tmp64);
- buf.getInt1_4Bytes(tmp32);
- EXPECT_EQ(0x7FFFFFFF, tmp32);
- buf.getInt1_2_4Bytes(tmp32);
- EXPECT_EQ(0x7FFF, tmp32);
- // Check 8
- buf.getInt2_4_8Bytes(tmp64);
- EXPECT_EQ((int64_t)0x7FFF, tmp64);
- buf.getInt1_4Bytes(tmp32);
- EXPECT_EQ(0x7FFF, tmp32);
- buf.getInt1_2_4Bytes(tmp32);
- EXPECT_EQ(0x7F, tmp32);
- // Check 9
- buf.getInt2_4_8Bytes(tmp64);
- EXPECT_EQ((int64_t)0x7F, tmp64);
- buf.getInt1_4Bytes(tmp32);
- EXPECT_EQ(0x7F, tmp32);
-
- uint32_t endReadPos = buf.getPos();
- EXPECT_EQ(endWritePos, endReadPos);
-
-}
-
-TEST(ByteBuffer_Test, test_NumberLengths)
-{
- EXPECT_EQ((size_t) 1, ByteBuffer::getSerializedSize1_4Bytes(0));
- EXPECT_EQ((size_t) 1, ByteBuffer::getSerializedSize1_4Bytes(1));
- EXPECT_EQ((size_t) 1, ByteBuffer::getSerializedSize1_4Bytes(4));
- EXPECT_EQ((size_t) 1, ByteBuffer::getSerializedSize1_4Bytes(31));
- EXPECT_EQ((size_t) 1, ByteBuffer::getSerializedSize1_4Bytes(126));
- EXPECT_EQ((size_t) 1, ByteBuffer::getSerializedSize1_4Bytes(127));
- EXPECT_EQ((size_t) 4, ByteBuffer::getSerializedSize1_4Bytes(128));
- EXPECT_EQ((size_t) 4, ByteBuffer::getSerializedSize1_4Bytes(129));
- EXPECT_EQ((size_t) 4, ByteBuffer::getSerializedSize1_4Bytes(255));
- EXPECT_EQ((size_t) 4, ByteBuffer::getSerializedSize1_4Bytes(256));
- EXPECT_EQ((size_t) 4, ByteBuffer::getSerializedSize1_4Bytes(0x7FFFFFFF));
-
- EXPECT_EQ((size_t) 2, ByteBuffer::getSerializedSize2_4_8Bytes(0));
- EXPECT_EQ((size_t) 2, ByteBuffer::getSerializedSize2_4_8Bytes(1));
- EXPECT_EQ((size_t) 2, ByteBuffer::getSerializedSize2_4_8Bytes(4));
- EXPECT_EQ((size_t) 2, ByteBuffer::getSerializedSize2_4_8Bytes(31));
- EXPECT_EQ((size_t) 2, ByteBuffer::getSerializedSize2_4_8Bytes(126));
- EXPECT_EQ((size_t) 2, ByteBuffer::getSerializedSize2_4_8Bytes(127));
- EXPECT_EQ((size_t) 2, ByteBuffer::getSerializedSize2_4_8Bytes(128));
- EXPECT_EQ((size_t) 2, ByteBuffer::getSerializedSize2_4_8Bytes(32767));
- EXPECT_EQ((size_t) 4, ByteBuffer::getSerializedSize2_4_8Bytes(32768));
- EXPECT_EQ((size_t) 4, ByteBuffer::getSerializedSize2_4_8Bytes(32769));
- EXPECT_EQ((size_t) 4, ByteBuffer::getSerializedSize2_4_8Bytes(1030493));
- EXPECT_EQ((size_t) 4, ByteBuffer::getSerializedSize2_4_8Bytes(0x3FFFFFFF));
- EXPECT_EQ((size_t) 8, ByteBuffer::getSerializedSize2_4_8Bytes(0x40000000));
- EXPECT_EQ((size_t) 8, ByteBuffer::getSerializedSize2_4_8Bytes(0x40000001));
-
- EXPECT_EQ((size_t) 1, ByteBuffer::getSerializedSize1_2_4Bytes(0));
- EXPECT_EQ((size_t) 1, ByteBuffer::getSerializedSize1_2_4Bytes(1));
- EXPECT_EQ((size_t) 1, ByteBuffer::getSerializedSize1_2_4Bytes(4));
- EXPECT_EQ((size_t) 1, ByteBuffer::getSerializedSize1_2_4Bytes(31));
- EXPECT_EQ((size_t) 1, ByteBuffer::getSerializedSize1_2_4Bytes(126));
- EXPECT_EQ((size_t) 1, ByteBuffer::getSerializedSize1_2_4Bytes(127));
- EXPECT_EQ((size_t) 2, ByteBuffer::getSerializedSize1_2_4Bytes(128));
- EXPECT_EQ((size_t) 2, ByteBuffer::getSerializedSize1_2_4Bytes(16383));
- EXPECT_EQ((size_t) 4, ByteBuffer::getSerializedSize1_2_4Bytes(16384));
- EXPECT_EQ((size_t) 4, ByteBuffer::getSerializedSize1_2_4Bytes(16385));
-}
-
TEST(ByteBuffer_Test, test_SerializableArray)
{
SerializableArray array;