diff options
| author | Amlal El Mahrouss <amlal@nekernel.org> | 2025-07-23 09:48:45 +0100 |
|---|---|---|
| committer | Amlal El Mahrouss <amlal@nekernel.org> | 2025-07-23 09:48:45 +0100 |
| commit | 01565adb9cf5ef991196f56c7f5f7b6161daa005 (patch) | |
| tree | ee368e2a33fbd53d54af5413401e91c49c85a505 | |
| parent | 9c692ebc9cf9fda989be3abd6a3b286262559f4f (diff) | |
feat: add tracked_ptr test using 'gtest'
Signed-off-by: Amlal El Mahrouss <amlal@nekernel.org>
| -rw-r--r-- | .gitignore | 2 | ||||
| -rw-r--r-- | tests/tracked_ptr/CMakeLists.txt | 23 | ||||
| -rw-r--r-- | tests/tracked_ptr/tracked_ptr_test.cc | 26 |
3 files changed, 51 insertions, 0 deletions
@@ -10,6 +10,8 @@ docs/html docs/latex +build/ + .idea # Precompiled Headers diff --git a/tests/tracked_ptr/CMakeLists.txt b/tests/tracked_ptr/CMakeLists.txt new file mode 100644 index 0000000..d7e119f --- /dev/null +++ b/tests/tracked_ptr/CMakeLists.txt @@ -0,0 +1,23 @@ +cmake_minimum_required(VERSION 3.10) +project(TrackedPtrTests) + +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(TrackedPtrTest tracked_ptr_test.cc) +target_link_libraries(TrackedPtrTest gtest_main) + +set_property(TARGET TrackedPtrTest PROPERTY CXX_STANDARD 20) +target_include_directories(TrackedPtrTest PUBLIC ../../) + +include(GoogleTest) +gtest_discover_tests(TrackedPtrTest) diff --git a/tests/tracked_ptr/tracked_ptr_test.cc b/tests/tracked_ptr/tracked_ptr_test.cc new file mode 100644 index 0000000..82d77f8 --- /dev/null +++ b/tests/tracked_ptr/tracked_ptr_test.cc @@ -0,0 +1,26 @@ +/* + * File: tests/tracked_ptr_test.cc + * Purpose: Custom smart pointer unit tests in C++ + * Author: Amlal El Mahrouss (founder@snu.systems) + * Copyright 2025, Amlal El Mahrouss and SNU Systems Corp all rights reserved. + */ + +#include <lib/memory/tracked_ptr.hpp> +#include <gtest/gtest.h> + +TEST(TrackedPtrTest, BasicTrackedPtrUsage) { + snu::memory::tracked_ptr<int> ptr = snu::memory::make_tracked<int>(42); + + ASSERT_TRUE(ptr); + EXPECT_EQ(*ptr, 42); + + snu::memory::tracked_ptr<int> ptr2 = std::move(ptr); + + ASSERT_FALSE(ptr); + ASSERT_TRUE(ptr2); + + EXPECT_EQ(*ptr2, 42); + + ptr2.reset(); + ASSERT_FALSE(ptr2); +}
\ No newline at end of file |
