summaryrefslogtreecommitdiffhomepage
path: root/dev/tests
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal@nekernel.org>2025-07-26 01:47:32 +0100
committerAmlal El Mahrouss <amlal@nekernel.org>2025-07-26 01:47:32 +0100
commitc52dbf5513ae7f106634967162da5cfb01dc5af3 (patch)
treeb6715d0fdacebd48491b9b05cf85f1d92028f84b /dev/tests
parent01565adb9cf5ef991196f56c7f5f7b6161daa005 (diff)
feat: SOCL v1.0.2, changelog soon!v1.0.2
Signed-off-by: Amlal El Mahrouss <amlal@nekernel.org>
Diffstat (limited to 'dev/tests')
-rw-r--r--dev/tests/.gitkeep0
-rw-r--r--dev/tests/fix_basic/CMakeLists.txt23
-rw-r--r--dev/tests/fix_basic/fix_test.cc18
-rw-r--r--dev/tests/tracked_ptr_basic/CMakeLists.txt23
-rw-r--r--dev/tests/tracked_ptr_basic/tracked_ptr_test.cc25
-rw-r--r--dev/tests/tracked_ptr_leak/CMakeLists.txt23
-rw-r--r--dev/tests/tracked_ptr_leak/tracked_ptr_test.cc19
7 files changed, 131 insertions, 0 deletions
diff --git a/dev/tests/.gitkeep b/dev/tests/.gitkeep
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/dev/tests/.gitkeep
diff --git a/dev/tests/fix_basic/CMakeLists.txt b/dev/tests/fix_basic/CMakeLists.txt
new file mode 100644
index 0000000..3a2542d
--- /dev/null
+++ b/dev/tests/fix_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(FIXTestBasic fix_test.cc)
+target_link_libraries(FIXTestBasic gtest_main)
+
+set_property(TARGET FIXTestBasic PROPERTY CXX_STANDARD 20)
+target_include_directories(FIXTestBasic PUBLIC ../../)
+
+include(GoogleTest)
+gtest_discover_tests(FIXTestBasic)
diff --git a/dev/tests/fix_basic/fix_test.cc b/dev/tests/fix_basic/fix_test.cc
new file mode 100644
index 0000000..c9ae0b2
--- /dev/null
+++ b/dev/tests/fix_basic/fix_test.cc
@@ -0,0 +1,18 @@
+/*
+ * 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/fix/parser.hpp>
+#include <gtest/gtest.h>
+
+TEST(FIXTest, BasicFIXUsage)
+{
+ snu::fix::visitor<char> visitor;
+ snu::fix::range_data<char> fix = visitor.visit("8=FIX.4.2|9=65|35=A|49=SERVER|56=CLIENT|34=177|52=20090107-18:15:16|98=0|108=30|10=062|");
+
+ EXPECT_EQ(fix.msg_magic_, "FIX.4.2");
+ EXPECT_TRUE(fix.is_valid());
+} \ No newline at end of file
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 <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;
+
+ snu::memory::swap(ptr, ptr2);
+
+ ptr2.reset();
+
+ EXPECT_EQ(snu::memory::tracked_ptr<int>::manager().allocator().allocated_count_, 1);
+} \ No newline at end of file
diff --git a/dev/tests/tracked_ptr_leak/CMakeLists.txt b/dev/tests/tracked_ptr_leak/CMakeLists.txt
new file mode 100644
index 0000000..17df8f1
--- /dev/null
+++ b/dev/tests/tracked_ptr_leak/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(TrackedPtrTestLeak tracked_ptr_test.cc)
+target_link_libraries(TrackedPtrTestLeak gtest_main)
+
+set_property(TARGET TrackedPtrTestLeak PROPERTY CXX_STANDARD 20)
+target_include_directories(TrackedPtrTestLeak PUBLIC ../../)
+
+include(GoogleTest)
+gtest_discover_tests(TrackedPtrTestLeak)
diff --git a/dev/tests/tracked_ptr_leak/tracked_ptr_test.cc b/dev/tests/tracked_ptr_leak/tracked_ptr_test.cc
new file mode 100644
index 0000000..f583938
--- /dev/null
+++ b/dev/tests/tracked_ptr_leak/tracked_ptr_test.cc
@@ -0,0 +1,19 @@
+/*
+ * 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, LeakTrackedPtrUsage)
+{
+ snu::memory::tracked_ptr<int>* ptr = new snu::memory::tracked_ptr<int>(42);
+ snu::memory::tracked_ptr<int>* ptr2 = new snu::memory::tracked_ptr<int>(42);
+ snu::memory::tracked_ptr<int>* ptr3 = new snu::memory::tracked_ptr<int>(42);
+
+ EXPECT_EQ(snu::memory::tracked_ptr<int>::manager().allocator().allocated_count_, 3);
+ ASSERT_TRUE(snu::memory::tracked_ptr<int>::manager().allocator().deallocated_count_ == 0);
+} \ No newline at end of file