From f084a67b19a7660dad29b0d4e28707a12a54a7c1 Mon Sep 17 00:00:00 2001 From: Roland Conybeare Date: Tue, 6 Jan 2026 17:20:03 -0500 Subject: [PATCH] xo-arena: + utest for DArenaVector move ctor --- utest/DArenaVector.test.cpp | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/utest/DArenaVector.test.cpp b/utest/DArenaVector.test.cpp index a3d9667..c563a89 100644 --- a/utest/DArenaVector.test.cpp +++ b/utest/DArenaVector.test.cpp @@ -400,6 +400,34 @@ namespace xo { REQUIRE(cptr[1] == 99.0); REQUIRE(cptr[2] == 3.0); } + + TEST_CASE("DArenaVector-move-ctor", "[arena][DArenaVector]") + { + ArenaConfig cfg { .name_ = "testarena", + .size_ = 4096 }; + DArenaVector vec1 = DArenaVector::map(cfg); + + vec1.push_back(10.0); + vec1.push_back(20.0); + vec1.push_back(30.0); + + double * original_data = vec1.data(); + size_t original_size = vec1.size(); + + // move construct vec2 from vec1 + DArenaVector vec2(std::move(vec1)); + + // vec2 has the data + REQUIRE(vec2.size() == original_size); + REQUIRE(vec2.data() == original_data); + REQUIRE(vec2[0] == 10.0); + REQUIRE(vec2[1] == 20.0); + REQUIRE(vec2[2] == 30.0); + + // vec1 is in valid but moved-from state + REQUIRE(vec1.size() == 0); + REQUIRE(vec1.empty()); + } } }