aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libs/kstd/kstd/ring_buffer.tests.cpp32
1 files changed, 32 insertions, 0 deletions
diff --git a/libs/kstd/kstd/ring_buffer.tests.cpp b/libs/kstd/kstd/ring_buffer.tests.cpp
index 7f459734..2157b6c3 100644
--- a/libs/kstd/kstd/ring_buffer.tests.cpp
+++ b/libs/kstd/kstd/ring_buffer.tests.cpp
@@ -195,6 +195,22 @@ SCENARIO("Ring Buffer element access", "[kstd][ring_buffer]")
Catch::Matchers::Message("[KSTD] Index out-of-bounds in ring_buffer element access!"));
}
+ WHEN("writing through the return value of at()")
+ {
+ buffer.at(1) = 'b';
+
+ THEN("the written element is changed")
+ {
+ REQUIRE(buffer.at(1) == 'b');
+ }
+
+ THEN("the other elements are unchanged")
+ {
+ REQUIRE(buffer.at(0) == 'a');
+ REQUIRE(buffer.at(2) == 'a');
+ }
+ }
+
THEN("accessing the first 3 elements using operator[] returns 'a'")
{
REQUIRE(buffer[0] == 'a');
@@ -202,6 +218,22 @@ SCENARIO("Ring Buffer element access", "[kstd][ring_buffer]")
REQUIRE(buffer[2] == 'a');
}
+ WHEN("writing through the return value of operator[]")
+ {
+ buffer[1] = 'b';
+
+ THEN("the written element is changed")
+ {
+ REQUIRE(buffer.at(1) == 'b');
+ }
+
+ THEN("the other elements are unchanged")
+ {
+ REQUIRE(buffer.at(0) == 'a');
+ REQUIRE(buffer.at(2) == 'a');
+ }
+ }
+
WHEN("working through a const reference")
{
auto const & ref = buffer;