summaryrefslogtreecommitdiff
path: root/modules/core/tests
diff options
context:
space:
mode:
Diffstat (limited to 'modules/core/tests')
-rw-r--r--modules/core/tests/array_buffer.cpp65
-rw-r--r--modules/core/tests/chain_array_buffer.cpp10
2 files changed, 75 insertions, 0 deletions
diff --git a/modules/core/tests/array_buffer.cpp b/modules/core/tests/array_buffer.cpp
new file mode 100644
index 0000000..bc9bffd
--- /dev/null
+++ b/modules/core/tests/array_buffer.cpp
@@ -0,0 +1,65 @@
+#include "../c++/test/suite.hpp"
+#include "../c++/buffer.hpp"
+
+namespace {
+void do_array_consistency_checks(const saw::array_buffer& buff){
+ SAW_EXPECT(buff.write_segment_length() == buff.write_composite_length(), "Unexpected segmented write size.");
+ SAW_EXPECT(buff.read_segment_length() == buff.read_composite_length(), "Unexpected segmented read size.");
+}
+
+SAW_TEST("Array Buffer Construct") {
+ using namespace saw;
+
+ uint64_t size = 1024u;
+ array_buffer buff{size};
+
+ SAW_EXPECT(buff.read_position() == 0u, "Unexpected read position");
+ SAW_EXPECT(buff.write_position() == 0u, "Unexpected write position");
+ SAW_EXPECT(buff.write_composite_length() == size, "Unexpected write size.");
+ SAW_EXPECT(buff.read_composite_length() == 0u, "Unexpected read size.");
+ do_array_consistency_checks(buff);
+}
+
+SAW_TEST("Array Buffer Write Advance") {
+ using namespace saw;
+
+ uint64_t size = 1024u;
+ array_buffer buff{size};
+
+ uint64_t advance = 256u;
+ buff.write_advance(advance);
+
+ SAW_EXPECT(buff.read_position() == 0u, "Unexpected read position");
+ SAW_EXPECT(buff.write_position() == advance, "Unexpected write position");
+ SAW_EXPECT(buff.read_composite_length() == advance, "Unexpected Read composite length.");
+ SAW_EXPECT(buff.write_composite_length() == (size-advance), "Unexpected Write composite length.");
+ do_array_consistency_checks(buff);
+}
+
+SAW_TEST("Array Buffer Write and Read Advance") {
+ using namespace saw;
+
+ uint64_t size = 1024u;
+ array_buffer buff{size};
+
+ uint64_t advance = 256u;
+ buff.write_advance(advance);
+
+ uint64_t read_advance = 128u;
+ buff.read_advance(read_advance);
+
+ SAW_EXPECT(buff.read_position() == read_advance, "Unexpected read position");
+ SAW_EXPECT(buff.write_position() == advance, "Unexpected write position");
+ SAW_EXPECT(buff.read_composite_length() == advance-read_advance, "Unexpected Read composite length.");
+ SAW_EXPECT(buff.write_composite_length() == (size-advance), "Unexpected Write composite length.");
+ do_array_consistency_checks(buff);
+
+ buff.read_advance(read_advance);
+
+ SAW_EXPECT(buff.read_position() == advance, "Unexpected read position");
+ SAW_EXPECT(buff.write_position() == advance, "Unexpected write position");
+ SAW_EXPECT(buff.read_composite_length() == 0u, "Unexpected Read composite length.");
+ SAW_EXPECT(buff.write_composite_length() == (size-advance), "Unexpected Write composite length.");
+ do_array_consistency_checks(buff);
+}
+}
diff --git a/modules/core/tests/chain_array_buffer.cpp b/modules/core/tests/chain_array_buffer.cpp
new file mode 100644
index 0000000..9e984d1
--- /dev/null
+++ b/modules/core/tests/chain_array_buffer.cpp
@@ -0,0 +1,10 @@
+#include "../c++/test/suite.hpp"
+#include "../c++/buffer.hpp"
+
+namespace {
+SAW_TEST("Chain Array Buffer Construct") {
+ using namespace saw;
+
+ chain_array_buffer buff;
+}
+}