summaryrefslogtreecommitdiffstats
path: root/streamingvisitors/src/tests/charbuffer
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2022-05-14 22:34:14 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2022-05-14 22:37:28 +0000
commit1d91705a855508c6369b7fd6792eb93386d9bc92 (patch)
tree912b02e614bc9889ea3543893cbeb699971e8156 /streamingvisitors/src/tests/charbuffer
parent5914c04edb130b689cf3d6c18fb606a63f90974b (diff)
Collapse vsm into streamingvisitors
Diffstat (limited to 'streamingvisitors/src/tests/charbuffer')
-rw-r--r--streamingvisitors/src/tests/charbuffer/.gitignore4
-rw-r--r--streamingvisitors/src/tests/charbuffer/CMakeLists.txt8
-rw-r--r--streamingvisitors/src/tests/charbuffer/charbuffer.cpp80
3 files changed, 92 insertions, 0 deletions
diff --git a/streamingvisitors/src/tests/charbuffer/.gitignore b/streamingvisitors/src/tests/charbuffer/.gitignore
new file mode 100644
index 00000000000..2c980038fb5
--- /dev/null
+++ b/streamingvisitors/src/tests/charbuffer/.gitignore
@@ -0,0 +1,4 @@
+.depend
+Makefile
+charbuffer_test
+vsm_charbuffer_test_app
diff --git a/streamingvisitors/src/tests/charbuffer/CMakeLists.txt b/streamingvisitors/src/tests/charbuffer/CMakeLists.txt
new file mode 100644
index 00000000000..5d0c0068d37
--- /dev/null
+++ b/streamingvisitors/src/tests/charbuffer/CMakeLists.txt
@@ -0,0 +1,8 @@
+# Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+vespa_add_executable(vsm_charbuffer_test_app TEST
+ SOURCES
+ charbuffer.cpp
+ DEPENDS
+ streamingvisitors
+)
+vespa_add_test(NAME vsm_charbuffer_test_app COMMAND vsm_charbuffer_test_app)
diff --git a/streamingvisitors/src/tests/charbuffer/charbuffer.cpp b/streamingvisitors/src/tests/charbuffer/charbuffer.cpp
new file mode 100644
index 00000000000..736d35459cb
--- /dev/null
+++ b/streamingvisitors/src/tests/charbuffer/charbuffer.cpp
@@ -0,0 +1,80 @@
+// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+#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() override;
+};
+
+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);