From a9f254dcea5cc73112ba4df96ceaf48a33fae216 Mon Sep 17 00:00:00 2001 From: Steven Le Rouzic Date: Thu, 2 Jan 2025 19:37:41 +0100 Subject: Implement copy move & assign for buffer --- asl/tests/buffer_tests.cpp | 61 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) (limited to 'asl/tests') diff --git a/asl/tests/buffer_tests.cpp b/asl/tests/buffer_tests.cpp index 1a08554..ad26c96 100644 --- a/asl/tests/buffer_tests.cpp +++ b/asl/tests/buffer_tests.cpp @@ -469,3 +469,64 @@ ASL_TEST(move_assign_from_inline_incompatible_allocator) ASL_TEST_EXPECT(d[4] == true); ASL_TEST_EXPECT(d[5] == true); } + +ASL_TEST(copy_construct_inline) +{ + asl::buffer buf; + buf.push(0); + buf.push(1); + buf.push(2); + + asl::buffer buf2{buf}; + + ASL_TEST_EXPECT(buf.size() == buf2.size()); + ASL_TEST_EXPECT(buf.size() == 3); + ASL_TEST_EXPECT(buf[0] == 0); + ASL_TEST_EXPECT(buf[1] == 1); + ASL_TEST_EXPECT(buf[2] == 2); + ASL_TEST_EXPECT(buf2[0] == 0); + ASL_TEST_EXPECT(buf2[1] == 1); + ASL_TEST_EXPECT(buf2[2] == 2); +} + +ASL_TEST(copy_assign_into_smaller) +{ + asl::buffer buf; + buf.push(0); + buf.push(1); + buf.push(2); + + asl::buffer buf2; + buf2.push(4); + + buf2 = buf; + + ASL_TEST_EXPECT(buf.size() == 3); + ASL_TEST_EXPECT(buf2.size() == 3); + + ASL_TEST_EXPECT(buf[0] == 0); + ASL_TEST_EXPECT(buf[1] == 1); + ASL_TEST_EXPECT(buf[2] == 2); + ASL_TEST_EXPECT(buf2[0] == 0); + ASL_TEST_EXPECT(buf2[1] == 1); + ASL_TEST_EXPECT(buf2[2] == 2); +} + +ASL_TEST(copy_assign_into_larger) +{ + asl::buffer buf; + buf.push(0); + buf.push(1); + buf.push(2); + + asl::buffer buf2; + buf2.push(4); + + buf = buf2; + + ASL_TEST_EXPECT(buf.size() == 1); + ASL_TEST_EXPECT(buf2.size() == 1); + + ASL_TEST_EXPECT(buf[0] == 4); + ASL_TEST_EXPECT(buf2[0] == 4); +} -- cgit