From c52dbf5513ae7f106634967162da5cfb01dc5af3 Mon Sep 17 00:00:00 2001 From: Amlal El Mahrouss Date: Sat, 26 Jul 2025 01:47:32 +0100 Subject: feat: SOCL v1.0.2, changelog soon! Signed-off-by: Amlal El Mahrouss --- dev/tests/tracked_ptr_basic/CMakeLists.txt | 23 +++++++++++++++++++++++ dev/tests/tracked_ptr_basic/tracked_ptr_test.cc | 25 +++++++++++++++++++++++++ 2 files changed, 48 insertions(+) create mode 100644 dev/tests/tracked_ptr_basic/CMakeLists.txt create mode 100644 dev/tests/tracked_ptr_basic/tracked_ptr_test.cc (limited to 'dev/tests/tracked_ptr_basic') diff --git a/dev/tests/tracked_ptr_basic/CMakeLists.txt b/dev/tests/tracked_ptr_basic/CMakeLists.txt new file mode 100644 index 0000000..97f7204 --- /dev/null +++ b/dev/tests/tracked_ptr_basic/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(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(GoogleTest) +gtest_discover_tests(TrackedPtrTestBasic) diff --git a/dev/tests/tracked_ptr_basic/tracked_ptr_test.cc b/dev/tests/tracked_ptr_basic/tracked_ptr_test.cc new file mode 100644 index 0000000..462ec5f --- /dev/null +++ b/dev/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 (founder@snu.systems) + * Copyright 2025, Amlal El Mahrouss and SNU Systems Corp all rights reserved. + */ + +#include +#include + +TEST(TrackedPtrTest, BasicTrackedPtrUsage) +{ + snu::memory::tracked_ptr ptr = snu::memory::make_tracked(42); + + ASSERT_TRUE(ptr); + EXPECT_EQ(*ptr, 42); + + snu::memory::tracked_ptr ptr2; + + snu::memory::swap(ptr, ptr2); + + ptr2.reset(); + + EXPECT_EQ(snu::memory::tracked_ptr::manager().allocator().allocated_count_, 1); +} \ No newline at end of file -- cgit v1.2.3