summaryrefslogtreecommitdiffhomepage
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
parent01565adb9cf5ef991196f56c7f5f7b6161daa005 (diff)
feat: SOCL v1.0.2, changelog soon!v1.0.2
Signed-off-by: Amlal El Mahrouss <amlal@nekernel.org>
-rw-r--r--compile_flags.txt2
-rw-r--r--dev/examples/cgi/CMakeLists.txt (renamed from examples/cgi/CMakeLists.txt)0
-rw-r--r--dev/examples/cgi/cgi.cc (renamed from examples/cgi/cgi.cc)0
-rw-r--r--dev/examples/equiv/CMakeLists.txt (renamed from examples/equiv/CMakeLists.txt)0
-rw-r--r--dev/examples/equiv/equiv.cc (renamed from examples/equiv/equiv.cc)0
-rw-r--r--dev/examples/fix/CMakeLists.txt (renamed from examples/fix/CMakeLists.txt)0
-rw-r--r--dev/examples/fix/fix.cc (renamed from examples/fix/fix.cc)0
-rw-r--r--dev/examples/opt/CMakeLists.txt (renamed from examples/opt/CMakeLists.txt)0
-rw-r--r--dev/examples/opt/opt.cc (renamed from examples/opt/opt.cc)0
-rw-r--r--dev/examples/tracked_ptr/CMakeLists.txt (renamed from examples/tracked_ptr/CMakeLists.txt)0
-rw-r--r--dev/examples/tracked_ptr/tracked_ptr.cc (renamed from examples/tracked_ptr/tracked_ptr.cc)0
-rw-r--r--dev/lib/detail/error.hpp (renamed from lib/detail/error.hpp)0
-rw-r--r--dev/lib/fix/network.hpp (renamed from lib/fix/network.hpp)0
-rw-r--r--dev/lib/fix/parser.hpp (renamed from lib/fix/parser.hpp)19
-rw-r--r--dev/lib/io/print.hpp (renamed from lib/io/print.hpp)0
-rw-r--r--dev/lib/logic/equiv.hpp (renamed from lib/logic/equiv.hpp)0
-rw-r--r--dev/lib/logic/math.hpp (renamed from lib/logic/math.hpp)0
-rw-r--r--dev/lib/logic/opt.hpp (renamed from lib/logic/opt.hpp)0
-rw-r--r--dev/lib/memory/tracked_ptr.hpp (renamed from lib/memory/tracked_ptr.hpp)9
-rw-r--r--dev/lib/utility/cgi.hpp (renamed from lib/utility/cgi.hpp)0
-rw-r--r--dev/lib/utility/crc32.hpp (renamed from lib/utility/crc32.hpp)0
-rw-r--r--dev/lib/utility/embfs.hpp (renamed from lib/utility/embfs.hpp)4
-rw-r--r--dev/tests/.gitkeep0
-rw-r--r--dev/tests/fix_basic/CMakeLists.txt (renamed from tests/tracked_ptr/CMakeLists.txt)10
-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
-rw-r--r--tests/tracked_ptr/tracked_ptr_test.cc26
30 files changed, 139 insertions, 39 deletions
diff --git a/compile_flags.txt b/compile_flags.txt
index b804da6..b820259 100644
--- a/compile_flags.txt
+++ b/compile_flags.txt
@@ -1,4 +1,4 @@
--I./
+-Idev
-std=c++20
-DEMBFS_28BIT_LBA
-xc++ \ No newline at end of file
diff --git a/examples/cgi/CMakeLists.txt b/dev/examples/cgi/CMakeLists.txt
index 391899f..391899f 100644
--- a/examples/cgi/CMakeLists.txt
+++ b/dev/examples/cgi/CMakeLists.txt
diff --git a/examples/cgi/cgi.cc b/dev/examples/cgi/cgi.cc
index b4c0b34..b4c0b34 100644
--- a/examples/cgi/cgi.cc
+++ b/dev/examples/cgi/cgi.cc
diff --git a/examples/equiv/CMakeLists.txt b/dev/examples/equiv/CMakeLists.txt
index 8b29e23..8b29e23 100644
--- a/examples/equiv/CMakeLists.txt
+++ b/dev/examples/equiv/CMakeLists.txt
diff --git a/examples/equiv/equiv.cc b/dev/examples/equiv/equiv.cc
index 896637d..896637d 100644
--- a/examples/equiv/equiv.cc
+++ b/dev/examples/equiv/equiv.cc
diff --git a/examples/fix/CMakeLists.txt b/dev/examples/fix/CMakeLists.txt
index db8921b..db8921b 100644
--- a/examples/fix/CMakeLists.txt
+++ b/dev/examples/fix/CMakeLists.txt
diff --git a/examples/fix/fix.cc b/dev/examples/fix/fix.cc
index f67d8a0..f67d8a0 100644
--- a/examples/fix/fix.cc
+++ b/dev/examples/fix/fix.cc
diff --git a/examples/opt/CMakeLists.txt b/dev/examples/opt/CMakeLists.txt
index b63b1de..b63b1de 100644
--- a/examples/opt/CMakeLists.txt
+++ b/dev/examples/opt/CMakeLists.txt
diff --git a/examples/opt/opt.cc b/dev/examples/opt/opt.cc
index a914d8d..a914d8d 100644
--- a/examples/opt/opt.cc
+++ b/dev/examples/opt/opt.cc
diff --git a/examples/tracked_ptr/CMakeLists.txt b/dev/examples/tracked_ptr/CMakeLists.txt
index 9396506..9396506 100644
--- a/examples/tracked_ptr/CMakeLists.txt
+++ b/dev/examples/tracked_ptr/CMakeLists.txt
diff --git a/examples/tracked_ptr/tracked_ptr.cc b/dev/examples/tracked_ptr/tracked_ptr.cc
index c182494..c182494 100644
--- a/examples/tracked_ptr/tracked_ptr.cc
+++ b/dev/examples/tracked_ptr/tracked_ptr.cc
diff --git a/lib/detail/error.hpp b/dev/lib/detail/error.hpp
index 85a5e25..85a5e25 100644
--- a/lib/detail/error.hpp
+++ b/dev/lib/detail/error.hpp
diff --git a/lib/fix/network.hpp b/dev/lib/fix/network.hpp
index 0ca0920..0ca0920 100644
--- a/lib/fix/network.hpp
+++ b/dev/lib/fix/network.hpp
diff --git a/lib/fix/parser.hpp b/dev/lib/fix/parser.hpp
index 95d05e6..e432b6c 100644
--- a/lib/fix/parser.hpp
+++ b/dev/lib/fix/parser.hpp
@@ -57,7 +57,7 @@ namespace snu::fix
struct range final
{
char_type* bytes_;
- size_t length_;
+ size_t length_;
bool is_valid()
{
@@ -98,6 +98,23 @@ namespace snu::fix
range_data& operator=(const range_data&) = default;
range_data(const range_data&) = default;
+ std::basic_string<char_type> operator[](const std::basic_string<char_type>& key)
+ {
+ if (key.empty())
+ {
+ return std::basic_string<char_type>{};
+ }
+
+ for (const auto& pair : msg_body_)
+ {
+ if (pair.first == key)
+ {
+ return pair.second;
+ }
+ }
+ return std::basic_string<char_type>{};
+ }
+
bool is_valid()
{
return msg_magic_.starts_with(range_data<char_type>::begin);
diff --git a/lib/io/print.hpp b/dev/lib/io/print.hpp
index 0a5b5e2..0a5b5e2 100644
--- a/lib/io/print.hpp
+++ b/dev/lib/io/print.hpp
diff --git a/lib/logic/equiv.hpp b/dev/lib/logic/equiv.hpp
index 4bb5904..4bb5904 100644
--- a/lib/logic/equiv.hpp
+++ b/dev/lib/logic/equiv.hpp
diff --git a/lib/logic/math.hpp b/dev/lib/logic/math.hpp
index 2613799..2613799 100644
--- a/lib/logic/math.hpp
+++ b/dev/lib/logic/math.hpp
diff --git a/lib/logic/opt.hpp b/dev/lib/logic/opt.hpp
index facbf2c..facbf2c 100644
--- a/lib/logic/opt.hpp
+++ b/dev/lib/logic/opt.hpp
diff --git a/lib/memory/tracked_ptr.hpp b/dev/lib/memory/tracked_ptr.hpp
index ec19151..238d521 100644
--- a/lib/memory/tracked_ptr.hpp
+++ b/dev/lib/memory/tracked_ptr.hpp
@@ -110,7 +110,7 @@ namespace snu::memory
this->reset();
}
- tracked_ptr(const tracked_ptr&) = delete;
+ tracked_ptr(const tracked_ptr&) = delete;
tracked_ptr& operator=(const tracked_ptr&) = delete;
public:
@@ -177,13 +177,14 @@ namespace snu::memory
};
template <typename T>
- inline auto make_tracked(T arg) -> tracked_ptr<T> {
+ inline auto make_tracked(T arg) -> tracked_ptr<T>
+ {
return tracked_ptr<T>(std::forward<T>(arg));
}
-
template <typename U, typename... T>
- inline auto make_tracked(T&&... arg) -> tracked_ptr<U> {
+ inline auto make_tracked(T&&... arg) -> tracked_ptr<U>
+ {
return tracked_ptr<U>(std::forward<T>(arg)...);
}
diff --git a/lib/utility/cgi.hpp b/dev/lib/utility/cgi.hpp
index 068adf1..068adf1 100644
--- a/lib/utility/cgi.hpp
+++ b/dev/lib/utility/cgi.hpp
diff --git a/lib/utility/crc32.hpp b/dev/lib/utility/crc32.hpp
index de78d4e..de78d4e 100644
--- a/lib/utility/crc32.hpp
+++ b/dev/lib/utility/crc32.hpp
diff --git a/lib/utility/embfs.hpp b/dev/lib/utility/embfs.hpp
index 8d5dbdf..cb08eb9 100644
--- a/lib/utility/embfs.hpp
+++ b/dev/lib/utility/embfs.hpp
@@ -16,7 +16,7 @@
namespace snu::embfs
{
- namespace details
+ namespace traits
{
struct embfs_superblock;
struct embfs_inode;
@@ -73,7 +73,7 @@ namespace snu::embfs
/// @brief Indexed node linear array.
typedef embfs_inode embfs_inode_arr_t[_inode_arr_len];
- } // namespace details
+ } // namespace traits
} // namespace snu::embfs
#endif // ifndef _SNU_EMBFS_HPP \ No newline at end of file
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/tests/tracked_ptr/CMakeLists.txt b/dev/tests/fix_basic/CMakeLists.txt
index d7e119f..3a2542d 100644
--- a/tests/tracked_ptr/CMakeLists.txt
+++ b/dev/tests/fix_basic/CMakeLists.txt
@@ -13,11 +13,11 @@ FetchContent_MakeAvailable(googletest)
enable_testing()
-add_executable(TrackedPtrTest tracked_ptr_test.cc)
-target_link_libraries(TrackedPtrTest gtest_main)
+add_executable(FIXTestBasic fix_test.cc)
+target_link_libraries(FIXTestBasic gtest_main)
-set_property(TARGET TrackedPtrTest PROPERTY CXX_STANDARD 20)
-target_include_directories(TrackedPtrTest PUBLIC ../../)
+set_property(TARGET FIXTestBasic PROPERTY CXX_STANDARD 20)
+target_include_directories(FIXTestBasic PUBLIC ../../)
include(GoogleTest)
-gtest_discover_tests(TrackedPtrTest)
+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
diff --git a/tests/tracked_ptr/tracked_ptr_test.cc b/tests/tracked_ptr/tracked_ptr_test.cc
deleted file mode 100644
index 82d77f8..0000000
--- a/tests/tracked_ptr/tracked_ptr_test.cc
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * 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