From 65bae7e26435154c1455b1d7cc87d0153fd1ba14 Mon Sep 17 00:00:00 2001 From: Roland Reichwein Date: Tue, 27 May 2025 10:02:00 +0200 Subject: [PATCH] Add unit tests for bit_stream (#1108) * Add unit tests for bit_stream * Include issue number in test name * Included issue number in test name --------- Co-authored-by: John Wellbelove --- test/test_bit_stream_writer_big_endian.cpp | 21 +++++++++++++++++++ test/test_bit_stream_writer_little_endian.cpp | 21 +++++++++++++++++++ 2 files changed, 42 insertions(+) diff --git a/test/test_bit_stream_writer_big_endian.cpp b/test/test_bit_stream_writer_big_endian.cpp index 675edbbb..429d1754 100644 --- a/test/test_bit_stream_writer_big_endian.cpp +++ b/test/test_bit_stream_writer_big_endian.cpp @@ -793,6 +793,27 @@ namespace CHECK_EQUAL((int)expected[10], (int)storage[10]); CHECK_EQUAL((int)expected[11], (int)storage[11]); } + + //************************************************************************* + TEST(test_full_empty_issue_1095_bit_stream_writer_empty_compares_the_wrong_values_to_determine_empty) + { + std::array storage; + + etl::bit_stream_writer bit_stream(storage.data(), storage.size(), etl::endian::big); + + CHECK_EQUAL(bit_stream.empty(), true); + CHECK_EQUAL(bit_stream.full(), false); + + bit_stream.write(int8_t(1)); + + CHECK_EQUAL(bit_stream.empty(), false); + CHECK_EQUAL(bit_stream.full(), false); + + bit_stream.write(int8_t(2)); + + CHECK_EQUAL(bit_stream.empty(), false); + CHECK_EQUAL(bit_stream.full(), true); + } }; } diff --git a/test/test_bit_stream_writer_little_endian.cpp b/test/test_bit_stream_writer_little_endian.cpp index 3051bc7f..56e47287 100644 --- a/test/test_bit_stream_writer_little_endian.cpp +++ b/test/test_bit_stream_writer_little_endian.cpp @@ -881,6 +881,27 @@ namespace CHECK_EQUAL((int)expected[10], (int)storage[10]); CHECK_EQUAL((int)expected[11], (int)storage[11]); } + + //************************************************************************* + TEST(test_full_empty_issue_1095_bit_stream_writer_empty_compares_the_wrong_values_to_determine_empty) + { + std::array storage; + + etl::bit_stream_writer bit_stream(storage.data(), storage.size(), etl::endian::little); + + CHECK_EQUAL(bit_stream.empty(), true); + CHECK_EQUAL(bit_stream.full(), false); + + bit_stream.write(int8_t(1)); + + CHECK_EQUAL(bit_stream.empty(), false); + CHECK_EQUAL(bit_stream.full(), false); + + bit_stream.write(int8_t(2)); + + CHECK_EQUAL(bit_stream.empty(), false); + CHECK_EQUAL(bit_stream.full(), true); + } }; }