summaryrefslogtreecommitdiffhomepage
path: root/test
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal@nekernel.org>2025-12-17 14:53:59 +0100
committerAmlal El Mahrouss <amlal@nekernel.org>2025-12-17 14:53:59 +0100
commitd54c2033eaaad5b6f9340b7cbaf8b3b037fb3cbe (patch)
treec9506ad751a589c0a734b26900f48581d1dde2ce /test
parent15aac395a599c92016bd2d74a7c23ca6eea3d04d (diff)
chore: updated file structure.
Signed-off-by: Amlal El Mahrouss <amlal@nekernel.org>
Diffstat (limited to 'test')
-rw-r--r--test/network_basic/CMakeLists.txt23
-rw-r--r--test/network_basic/network_basic_test.cc51
2 files changed, 74 insertions, 0 deletions
diff --git a/test/network_basic/CMakeLists.txt b/test/network_basic/CMakeLists.txt
new file mode 100644
index 0000000..267b584
--- /dev/null
+++ b/test/network_basic/CMakeLists.txt
@@ -0,0 +1,23 @@
+cmake_minimum_required(VERSION 3.27)
+project(NetworkTestBasic LANGUAGES CXX)
+
+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(NetworkTestBasic network_basic_test.cc)
+target_link_libraries(NetworkTestBasic gtest_main)
+
+set_property(TARGET NetworkTestBasic PROPERTY CXX_STANDARD 20)
+target_include_directories(NetworkTestBasic PUBLIC ../../include/)
+
+include(GoogleTest)
+gtest_discover_tests(NetworkTestBasic)
diff --git a/test/network_basic/network_basic_test.cc b/test/network_basic/network_basic_test.cc
new file mode 100644
index 0000000..21a6668
--- /dev/null
+++ b/test/network_basic/network_basic_test.cc
@@ -0,0 +1,51 @@
+/*
+ * File: tests/net_test.cc
+ * Purpose: Network unit tests in C++
+ * Author: Amlal El Mahrouss (amlal@nekernel.org)
+ * Copyright 2025, Amlal El Mahrouss, licensed under the Boost Software License.
+ */
+
+#include <ocl/posix/unique_socket.hpp>
+#include <ocl/print.hpp>
+#include <gtest/gtest.h>
+
+/// @brief Basic Send test
+TEST(NetworkTest, BasicNetworkIO)
+{
+ ocl::unique_socket sock = ocl::unique_socket::make_socket<8000>(ocl::unique_socket::any_address, true);
+
+ std::vector<char> buf_dst(512);
+
+ buf_dst.push_back('H');
+ buf_dst.push_back('e');
+ buf_dst.push_back('l');
+ buf_dst.push_back('l');
+ buf_dst.push_back('o');
+ buf_dst.push_back('\0');
+
+ auto buf = buf_dst.data();
+ auto sz = buf_dst.size();
+
+ sock.write_from_buffer(buf, sz);
+
+ ocl::unique_socket sock2 = ocl::unique_socket::make_socket<8000>(ocl::unique_socket::any_address, false);
+
+ auto accepeted = sock.accept();
+ accepeted.write_from_buffer(buf, sz);
+
+ std::vector<char> buf_dst2(512);
+
+ buf = buf_dst2.data();
+ sz = buf_dst2.size();
+
+ sock2.read_client_buffer(buf, sz);
+
+ EXPECT_TRUE(!sock.bad());
+ EXPECT_TRUE(!sock2.bad());
+}
+
+TEST(NetworkTest, BasicNetworkMakeSocket)
+{
+ auto socket = ocl::unique_socket::make_socket<8000>(ocl::unique_socket::any_address, true);
+ EXPECT_TRUE(!socket.bad());
+} \ No newline at end of file