diff options
author | Jon Bratseth <bratseth@yahoo-inc.com> | 2016-06-15 23:09:44 +0200 |
---|---|---|
committer | Jon Bratseth <bratseth@yahoo-inc.com> | 2016-06-15 23:09:44 +0200 |
commit | 72231250ed81e10d66bfe70701e64fa5fe50f712 (patch) | |
tree | 2728bba1131a6f6e5bdf95afec7d7ff9358dac50 /vsm/src/tests/charbuffer |
Publish
Diffstat (limited to 'vsm/src/tests/charbuffer')
-rw-r--r-- | vsm/src/tests/charbuffer/.gitignore | 4 | ||||
-rw-r--r-- | vsm/src/tests/charbuffer/CMakeLists.txt | 8 | ||||
-rw-r--r-- | vsm/src/tests/charbuffer/DESC | 1 | ||||
-rw-r--r-- | vsm/src/tests/charbuffer/FILES | 1 | ||||
-rw-r--r-- | vsm/src/tests/charbuffer/charbuffer.cpp | 83 |
5 files changed, 97 insertions, 0 deletions
diff --git a/vsm/src/tests/charbuffer/.gitignore b/vsm/src/tests/charbuffer/.gitignore new file mode 100644 index 00000000000..2c980038fb5 --- /dev/null +++ b/vsm/src/tests/charbuffer/.gitignore @@ -0,0 +1,4 @@ +.depend +Makefile +charbuffer_test +vsm_charbuffer_test_app diff --git a/vsm/src/tests/charbuffer/CMakeLists.txt b/vsm/src/tests/charbuffer/CMakeLists.txt new file mode 100644 index 00000000000..38d1f519714 --- /dev/null +++ b/vsm/src/tests/charbuffer/CMakeLists.txt @@ -0,0 +1,8 @@ +# Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +vespa_add_executable(vsm_charbuffer_test_app + SOURCES + charbuffer.cpp + DEPENDS + vsm +) +vespa_add_test(NAME vsm_charbuffer_test_app COMMAND vsm_charbuffer_test_app) diff --git a/vsm/src/tests/charbuffer/DESC b/vsm/src/tests/charbuffer/DESC new file mode 100644 index 00000000000..2f1758f837e --- /dev/null +++ b/vsm/src/tests/charbuffer/DESC @@ -0,0 +1 @@ +charbuffer test. Take a look at charbuffer.cpp for details. diff --git a/vsm/src/tests/charbuffer/FILES b/vsm/src/tests/charbuffer/FILES new file mode 100644 index 00000000000..ef12614a361 --- /dev/null +++ b/vsm/src/tests/charbuffer/FILES @@ -0,0 +1 @@ +charbuffer.cpp diff --git a/vsm/src/tests/charbuffer/charbuffer.cpp b/vsm/src/tests/charbuffer/charbuffer.cpp new file mode 100644 index 00000000000..b285005de42 --- /dev/null +++ b/vsm/src/tests/charbuffer/charbuffer.cpp @@ -0,0 +1,83 @@ +// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +#include <vespa/fastos/fastos.h> +#include <vespa/log/log.h> +LOG_SETUP("charbuffer_test"); +#include <vespa/vespalib/testkit/testapp.h> + +#include <vespa/vsm/common/charbuffer.h> + +namespace vsm { + +class CharBufferTest : public vespalib::TestApp +{ +private: + void test(); +public: + int Main(); +}; + +void +CharBufferTest::test() +{ + { // empty + CharBuffer buf; + EXPECT_EQUAL(buf.getLength(), 0u); + EXPECT_EQUAL(buf.getPos(), 0u); + EXPECT_EQUAL(buf.getRemaining(), 0u); + } + { // explicit length + CharBuffer buf(8); + EXPECT_EQUAL(buf.getLength(), 8u); + EXPECT_EQUAL(buf.getPos(), 0u); + EXPECT_EQUAL(buf.getRemaining(), 8u); + } + { // resize + CharBuffer buf(8); + EXPECT_EQUAL(buf.getLength(), 8u); + buf.resize(16); + EXPECT_EQUAL(buf.getLength(), 16u); + buf.resize(8); + EXPECT_EQUAL(buf.getLength(), 16u); + } + { // put with triggered resize + CharBuffer buf(8); + buf.put("123456", 6); + EXPECT_EQUAL(buf.getLength(), 8u); + EXPECT_EQUAL(buf.getPos(), 6u); + EXPECT_EQUAL(buf.getRemaining(), 2u); + EXPECT_EQUAL(std::string(buf.getBuffer(), buf.getPos()), "123456"); + buf.put("789", 3); + EXPECT_EQUAL(buf.getLength(), 12u); + EXPECT_EQUAL(buf.getPos(), 9u); + EXPECT_EQUAL(buf.getRemaining(), 3u); + EXPECT_EQUAL(std::string(buf.getBuffer(), buf.getPos()), "123456789"); + buf.put('a'); + EXPECT_EQUAL(buf.getLength(), 12u); + EXPECT_EQUAL(buf.getPos(), 10u); + EXPECT_EQUAL(buf.getRemaining(), 2u); + EXPECT_EQUAL(std::string(buf.getBuffer(), buf.getPos()), "123456789a"); + buf.reset(); + EXPECT_EQUAL(buf.getLength(), 12u); + EXPECT_EQUAL(buf.getPos(), 0u); + EXPECT_EQUAL(buf.getRemaining(), 12u); + buf.put("bcd", 3); + EXPECT_EQUAL(buf.getLength(), 12u); + EXPECT_EQUAL(buf.getPos(), 3u); + EXPECT_EQUAL(buf.getRemaining(), 9u); + EXPECT_EQUAL(std::string(buf.getBuffer(), buf.getPos()), "bcd"); + } +} + +int +CharBufferTest::Main() +{ + TEST_INIT("charbuffer_test"); + + test(); + + TEST_DONE(); +} + +} + +TEST_APPHOOK(vsm::CharBufferTest); |