From 6c864832f111c085d28cd30ae96039670ef44c59 Mon Sep 17 00:00:00 2001 From: Felix Morgner Date: Mon, 5 Oct 2026 16:25:07 +0200 Subject: kstd: ring_buffer: add more zero-capacity tests --- libs/kstd/kstd/ring_buffer.tests.cpp | 47 ++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/libs/kstd/kstd/ring_buffer.tests.cpp b/libs/kstd/kstd/ring_buffer.tests.cpp index 2517ff7b..54120b99 100644 --- a/libs/kstd/kstd/ring_buffer.tests.cpp +++ b/libs/kstd/kstd/ring_buffer.tests.cpp @@ -2434,6 +2434,53 @@ SCENARIO("Ring Buffer zero capacity", "[kstd][ring_buffer]") } } + WHEN("constructing by input-iterator-pair constructor with an empty range") + { + auto first = kstd::tests::test_input_iterator{}; + auto last = kstd::tests::test_input_iterator{}; + auto buffer = kstd::ring_buffer{first, last}; + + THEN("the buffer is empty") + { + REQUIRE(buffer.empty()); + } + } + + WHEN("constructing by input-iterator-pair constructor with a range containing 1 element") + { + THEN("the constructor panics") + { + std::array source{1}; + auto first = kstd::tests::test_input_iterator{source.data(), source.size()}; + auto last = kstd::tests::test_input_iterator{}; + REQUIRE_THROWS_MATCHES( + (kstd::ring_buffer{first, last}), kstd::tests::os_panic, + Catch::Matchers::Message("[KSTD] Tried to construct a ring buffer with more elements than it can support.")); + } + } + + WHEN("constructing by forward-iterator-pair constructor with an empty range") + { + auto source = std::forward_list{}; + auto buffer = kstd::ring_buffer{source.begin(), source.end()}; + + THEN("the buffer is empty") + { + REQUIRE(buffer.empty()); + } + } + + WHEN("constructing by forward-iterator-pair constructor with a range containing 1 element") + { + THEN("the constructor panics") + { + auto source = std::forward_list{1}; + REQUIRE_THROWS_MATCHES( + (kstd::ring_buffer{source.begin(), source.end()}), kstd::tests::os_panic, + Catch::Matchers::Message("[KSTD] Tried to construct a ring buffer with more elements than it can support.")); + } + } + GIVEN("A zero-capacity buffer of static operation trackers") { auto buffer = kstd::ring_buffer{}; -- cgit v1.2.3