From 9c9bd93549a5bc4df34c26362490f22ec4c39763 Mon Sep 17 00:00:00 2001 From: John Wellbelove Date: Fri, 20 May 2022 12:36:11 +0100 Subject: [PATCH] Added write_byte_stream_iterative_output --- test/test_byte_stream.cpp | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/test/test_byte_stream.cpp b/test/test_byte_stream.cpp index 57b6439a..6688e786 100644 --- a/test/test_byte_stream.cpp +++ b/test/test_byte_stream.cpp @@ -34,6 +34,7 @@ SOFTWARE. #include #include +#include namespace { @@ -1281,5 +1282,32 @@ namespace CHECK_EQUAL(int32_t(0x5AA55AA5), get_data[2]); CHECK_EQUAL(int32_t(0xFFFFFFFF), get_data[3]); } + + //************************************************************************* + TEST(write_byte_stream_iterative_output) + { + std::array storage; + std::array put_data = { int32_t(0x00000001), int32_t(0xA55AA55A), int32_t(0x5AA55AA5), int32_t(0xFFFFFFFF) }; + std::vector expected = { char(0x00), char(0x00), char(0x00), char(0x01), + char(0xA5), char(0x5A), char(0xA5), char(0x5A), + char(0x5A), char(0xA5), char(0x5A), char(0xA5), + char(0xFF), char(0xFF), char(0xFF), char(0xFF) }; + std::vector result; + + etl::byte_stream_writer writer(storage.data(), storage.size(), etl::endian::big); + + for (auto i : put_data) + { + writer.write(i); + etl::span s = writer.used_data(); + std::copy(s.begin(), s.end(), std::back_inserter(result)); + writer.restart(); + } + + for (size_t i = 0U; i < (4U * sizeof(int32_t)); ++i) + { + CHECK_EQUAL(expected[i], result[i]); + } + } }; }