summaryrefslogtreecommitdiffhomepage
path: root/tests/tracked_ptr_basic
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal@nekernel.org>2025-11-23 20:16:02 -0500
committerGitHub <noreply@github.com>2025-11-23 20:16:02 -0500
commit85f89ee4bb137100cbeffcbc10168eb8ea52e6cc (patch)
treef6e2063319ceaaa02f523fb5c289e4f37411a2df /tests/tracked_ptr_basic
parent9a70f32ddaec0eef99efbf7ff5597c2adf08f45a (diff)
parent65a8349aa5526d071b18cd4d42586c46faaa3823 (diff)
Merge pull request #18 from amlel-el-mahrouss/developv1.0.48
OCL v1.0.48
Diffstat (limited to 'tests/tracked_ptr_basic')
-rw-r--r--tests/tracked_ptr_basic/CMakeLists.txt23
-rw-r--r--tests/tracked_ptr_basic/tracked_ptr_test.cc25
2 files changed, 48 insertions, 0 deletions
diff --git a/tests/tracked_ptr_basic/CMakeLists.txt b/tests/tracked_ptr_basic/CMakeLists.txt
new file mode 100644
index 0000000..7c3dac6
--- /dev/null
+++ b/tests/tracked_ptr_basic/CMakeLists.txt
@@ -0,0 +1,23 @@
+cmake_minimum_required(VERSION 3.10)
+project(TrackedPtrTestBasic)
+
+include(FetchContent)
+FetchContent_Declare(
+ googletest
+ URL https://github.com/google/googletest/archive/refs/tags/v1.14.0.zip
+)
+
+# For Windows: Prevent overriding the parent project's compiler/linker settings
+set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
+FetchContent_MakeAvailable(googletest)
+
+enable_testing()
+
+add_executable(TrackedPtrTestBasic tracked_ptr_test.cc)
+target_link_libraries(TrackedPtrTestBasic gtest_main)
+
+set_property(TARGET TrackedPtrTestBasic PROPERTY CXX_STANDARD 20)
+target_include_directories(TrackedPtrTestBasic PUBLIC ../../include/ocl)
+
+include(GoogleTest)
+gtest_discover_tests(TrackedPtrTestBasic)
diff --git a/tests/tracked_ptr_basic/tracked_ptr_test.cc b/tests/tracked_ptr_basic/tracked_ptr_test.cc
new file mode 100644
index 0000000..652974a
--- /dev/null
+++ b/tests/tracked_ptr_basic/tracked_ptr_test.cc
@@ -0,0 +1,25 @@
+/*
+ * File: tests/tracked_ptr_test.cc
+ * Purpose: Custom smart pointer unit tests in C++
+ * Author: Amlal El Mahrouss (amlal@nekernel.org)
+ * Copyright 2025, Amlal El Mahrouss, licensed under the Boost Software License.
+ */
+
+#include <memory/tracked_ptr.hpp>
+#include <tests/gtest.hpp>
+
+TEST(TrackedPtrTest, BasicTrackedPtrUsage)
+{
+ ocl::memory::tracked_ptr<int> ptr = ocl::memory::make_tracked<int>(42);
+
+ ASSERT_TRUE(ptr);
+ EXPECT_EQ(*ptr, 42);
+
+ ocl::memory::tracked_ptr<int> ptr2;
+
+ ocl::memory::swap(ptr, ptr2);
+
+ ptr2.reset();
+
+ EXPECT_EQ(ocl::memory::tracked_ptr<int>::manager().allocator().allocated_count_, 1);
+} \ No newline at end of file