From 9b789956ff8013d21d6b4074de488f1eb5eb4625 Mon Sep 17 00:00:00 2001 From: Felix Morgner Date: Fri, 2 Oct 2026 14:41:59 +0200 Subject: kstd: ring_buffer: add more pop_front() tests --- libs/kstd/kstd/ring_buffer.tests.cpp | 43 ++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/libs/kstd/kstd/ring_buffer.tests.cpp b/libs/kstd/kstd/ring_buffer.tests.cpp index 479283ed..767e7422 100644 --- a/libs/kstd/kstd/ring_buffer.tests.cpp +++ b/libs/kstd/kstd/ring_buffer.tests.cpp @@ -1341,4 +1341,47 @@ SCENARIO("Ring Buffer modifiers", "[kstd][ring_buffer]") REQUIRE_FALSE(buffer.try_push_back(kstd::tests::static_copy_move_tracker{})); } } + + GIVEN("A ring buffer with a capacity of 3 that has wrapped around") + { + auto buffer = kstd::ring_buffer{}; + buffer.push_back(1); + buffer.push_back(2); + buffer.push_back(3); + buffer.push_back(4); + + WHEN("popping an element") + { + buffer.pop_front(); + + THEN("the size is 2") + { + REQUIRE(buffer.size() == 2); + } + + THEN("the remaining elements are the two newest, in order") + { + REQUIRE(buffer.at(0) == 3); + REQUIRE(buffer.at(1) == 4); + } + } + + WHEN("popping an element and then pushing a new one") + { + buffer.pop_front(); + buffer.push_back(5); + + THEN("the size is back to 3") + { + REQUIRE(buffer.size() == 3); + } + + THEN("the content reflects the pop and the push") + { + REQUIRE(buffer.at(0) == 3); + REQUIRE(buffer.at(1) == 4); + REQUIRE(buffer.at(2) == 5); + } + } + } } \ No newline at end of file -- cgit v1.2.3