From a23125b5c15685e962ee4d2f63ca108ead2aa2eb Mon Sep 17 00:00:00 2001 From: Felix Morgner Date: Thu, 1 Oct 2026 14:14:41 +0200 Subject: kstd: ring_buffer: add write-through tests --- libs/kstd/kstd/ring_buffer.tests.cpp | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) 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; -- cgit v1.2.3