diff options
| author | Amlal El Mahrouss <amlal@nekernel.org> | 2025-07-26 01:47:32 +0100 |
|---|---|---|
| committer | Amlal El Mahrouss <amlal@nekernel.org> | 2025-07-26 01:47:32 +0100 |
| commit | c52dbf5513ae7f106634967162da5cfb01dc5af3 (patch) | |
| tree | b6715d0fdacebd48491b9b05cf85f1d92028f84b | |
| parent | 01565adb9cf5ef991196f56c7f5f7b6161daa005 (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.txt | 2 | ||||
| -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/.gitkeep | 0 | ||||
| -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.cc | 18 | ||||
| -rw-r--r-- | dev/tests/tracked_ptr_basic/CMakeLists.txt | 23 | ||||
| -rw-r--r-- | dev/tests/tracked_ptr_basic/tracked_ptr_test.cc | 25 | ||||
| -rw-r--r-- | dev/tests/tracked_ptr_leak/CMakeLists.txt | 23 | ||||
| -rw-r--r-- | dev/tests/tracked_ptr_leak/tracked_ptr_test.cc | 19 | ||||
| -rw-r--r-- | tests/tracked_ptr/tracked_ptr_test.cc | 26 |
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 |
