Add custom soft pointer "object_ptr" and tests for this

This commit is contained in:
Jiga228
2025-10-17 21:11:09 +07:00
parent 938b76ac07
commit 136235749a
4 changed files with 195 additions and 0 deletions
+2
View File
@@ -12,8 +12,10 @@ enable_testing()
file(GLOB SRC
"SaveMapTest.cpp"
"ObjectPtrTest.cpp"
"${PROJECT_SOURCE_DIR}/Core/Game/SaveMap/SaveMap.cpp"
"${PROJECT_SOURCE_DIR}/Core/Types/object_ptr.cpp"
)
add_executable(Tests ${SRC})
+26
View File
@@ -0,0 +1,26 @@
#include <gtest/gtest.h>
#include "Types/object_ptr.hpp"
TEST(object_ptr_test, base_test)
{
int* test = new int(123);
UType::object_ptr<int> ptr(test);
EXPECT_EQ(*ptr.get(), 123);
UType::object_ptr<int> ptr2(ptr);
EXPECT_EQ(*ptr2.get(), 123);
EXPECT_EQ(ptr2.get(), ptr.get());
ptr.destroy();
EXPECT_EQ(ptr.get(), nullptr);
EXPECT_EQ(ptr2.get(), nullptr);
}
TEST(object_ptr_test, check_destry)
{
UType::object_ptr<int> ptr(new int(123)), ptr2(ptr);
ptr.destroy();
EXPECT_EQ(ptr.get(), nullptr);
EXPECT_EQ(ptr2.get(), nullptr);
}