Skip to content

Commit

Permalink
Merge pull request #1592 from dpogue/ramstream-testfixes
Browse files Browse the repository at this point in the history
Cleanups to the hsRAMStream test
  • Loading branch information
dpogue authored Jun 2, 2024
2 parents a89e627 + 4f3a432 commit f85fd87
Showing 1 changed file with 13 additions and 4 deletions.
17 changes: 13 additions & 4 deletions Sources/Tests/CoreTests/test_RAMStream.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -41,21 +41,30 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
*==LICENSE==*/

#include <gtest/gtest.h>
#include <string_view>

#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);
}

0 comments on commit f85fd87

Please sign in to comment.