From 4f3a4323cea31bc1999fdf47394dfe91a82f882a Mon Sep 17 00:00:00 2001 From: Darryl Pogue Date: Sun, 2 Jun 2024 14:42:11 -0700 Subject: [PATCH] Cleanups to the hsRAMStream test Co-Authored-By: Adam Johnson --- Sources/Tests/CoreTests/test_RAMStream.cpp | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/Sources/Tests/CoreTests/test_RAMStream.cpp b/Sources/Tests/CoreTests/test_RAMStream.cpp index 7a44102ea9..15ba51bac6 100644 --- a/Sources/Tests/CoreTests/test_RAMStream.cpp +++ b/Sources/Tests/CoreTests/test_RAMStream.cpp @@ -41,21 +41,30 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com *==LICENSE==*/ #include +#include #include "hsStream.h" +/** + * This tests that the hsRAMStream buffer is properly initialized and resized + * upon initial writing, ensuring that we don't hit any assertions around + * mempy'ing to a null buffer. + */ TEST(hsRAMStream, initializeBufferOnFirstWrite) { - const char* str = "hsRAMStream initializeBufferOnFirstWrite"; + constexpr std::string_view str = "hsRAMStream initializeBufferOnFirstWrite"; hsRAMStream s; + // Initial write to the buffer should initialize and resize it s.WriteSafeString(str); - EXPECT_EQ(s.GetPosition(), strlen(str) + 2); + EXPECT_EQ(s.GetPosition(), str.size() + 2); + // Writing more should cause it to resize further s.WriteLE32(1); - EXPECT_EQ(s.GetPosition(), strlen(str) + 2 + 4); + EXPECT_EQ(s.GetPosition(), str.size() + 2 + 4); + // Going back and rewriting over existing data should memcpy without resize s.Skip(-4); s.WriteLE32(5); - EXPECT_EQ(s.GetPosition(), strlen(str) + 2 + 4); + EXPECT_EQ(s.GetPosition(), str.size() + 2 + 4); }