From 2ed110ed2d0ef093ba6cc14771b6387eff70c866 Mon Sep 17 00:00:00 2001 From: Claudius 'keldu' Holeksa Date: Thu, 1 Aug 2024 17:51:07 +0200 Subject: Broken implementation of chain array_buffer done --- modules/core/tests/array_buffer.cpp | 65 +++++++++++++++++++++++++++++++ modules/core/tests/chain_array_buffer.cpp | 10 +++++ 2 files changed, 75 insertions(+) create mode 100644 modules/core/tests/array_buffer.cpp create mode 100644 modules/core/tests/chain_array_buffer.cpp (limited to 'modules/core/tests') 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; +} +} -- cgit v1.2.3