From fc4e7c3d2df6d885c152f910e2e056639595a839 Mon Sep 17 00:00:00 2001 From: hhhh hgfh Date: Wed, 15 Jan 2025 22:56:49 +0300 Subject: [PATCH 1/3] feat(1): change configuration for udp protocol --- .../LinuxImp/LinuxClientSocket.cpp | 15 +++- .../LinuxImp/LinuxClientSocket.h | 3 +- .../WinsockImp/WindowsClientSocket.cpp | 20 ++++- .../WinsockImp/WindowsClientSocket.h | 4 +- .../LinuxImp/LinuxServerSocket.cpp | 14 ++- src/ServerSocket/LinuxImp/LinuxServerSocket.h | 1 + .../WindowsImp/WindowsServerSocket.cpp | 14 ++- .../WindowsImp/WindowsServerSocket.h | 1 + .../TestOfWindowsServerSocket.cpp | 90 +++++++++++++++++-- 9 files changed, 143 insertions(+), 19 deletions(-) diff --git a/src/ClientSockets/LinuxImp/LinuxClientSocket.cpp b/src/ClientSockets/LinuxImp/LinuxClientSocket.cpp index 151a325..7a00acf 100644 --- a/src/ClientSockets/LinuxImp/LinuxClientSocket.cpp +++ b/src/ClientSockets/LinuxImp/LinuxClientSocket.cpp @@ -2,7 +2,17 @@ int LinuxClientSocket::Configuration(int protocol) { - _socket = socket(AF_INET, SOCK_STREAM, protocol); + _protocol = protocol; + switch (protocol) { + case IPPROTO_TCP: + _socket = socket(AF_INET, SOCK_STREAM, protocol); + break; + case IPPROTO_UDP: + _socket = socket(AF_INET, SOCK_DGRAM, protocol); + break; + default: + return INVALID_SOCKET; + } if (_socket == INVALID_SOCKET) { Close(); return INVALID_SOCKET; @@ -38,7 +48,8 @@ void LinuxClientSocket::Close() { close(_socket); } -int LinuxClientSocket::lConfiguration(int socket) { +int LinuxClientSocket::Configuration(int socket, int protocol) { + _protocol = protocol; _socket = socket; return 0; } diff --git a/src/ClientSockets/LinuxImp/LinuxClientSocket.h b/src/ClientSockets/LinuxImp/LinuxClientSocket.h index ce6a8d7..1b6294c 100644 --- a/src/ClientSockets/LinuxImp/LinuxClientSocket.h +++ b/src/ClientSockets/LinuxImp/LinuxClientSocket.h @@ -10,6 +10,7 @@ class LinuxClientSocket : public IClientSocket{ private: int _socket; sockaddr_in _sockAddr; + int _protocol; public: int Configuration(int protocol) override; @@ -19,7 +20,7 @@ class LinuxClientSocket : public IClientSocket{ void Close() override; public: - int lConfiguration(int socket); + int Configuration(int socket, int protocol); }; diff --git a/src/ClientSockets/WinsockImp/WindowsClientSocket.cpp b/src/ClientSockets/WinsockImp/WindowsClientSocket.cpp index 1de7e9b..de82dc7 100644 --- a/src/ClientSockets/WinsockImp/WindowsClientSocket.cpp +++ b/src/ClientSockets/WinsockImp/WindowsClientSocket.cpp @@ -6,7 +6,18 @@ int WindowsClientSocket::Configuration(int protocol) { return INVALID_SOCKET; } - _socket = ::socket(AF_INET,SOCK_STREAM, protocol); + _protocol = protocol; + switch (protocol) { + case IPPROTO_TCP: + _socket = socket(AF_INET, SOCK_STREAM, protocol); + break; + case IPPROTO_UDP: + _socket = socket(AF_INET, SOCK_DGRAM, protocol); + break; + default: + return INVALID_SOCKET; + }; + if (_socket == INVALID_SOCKET){ Close(); return INVALID_SOCKET; @@ -27,13 +38,13 @@ int WindowsClientSocket::Connect(const int port, const char *address) { } int WindowsClientSocket::Send(const void *data, const int size) { - if (::send(_socket, (char*)data, size, 0 ) == SOCKET_ERROR) + if (send(_socket, (char*)data, size, 0 ) == SOCKET_ERROR) return SOCKET_ERROR; return 0; } int WindowsClientSocket::Receive(const void *data, const int size) { - if (::recv(_socket, (char*)data, size, 0) == SOCKET_ERROR) + if (recv(_socket, (char*)data, size, 0) == SOCKET_ERROR) return SOCKET_ERROR; return 0; } @@ -42,7 +53,8 @@ void WindowsClientSocket::Close() { ::closesocket(_socket); } -int WindowsClientSocket::Configuration(SOCKET socket) { +int WindowsClientSocket::Configuration(SOCKET socket, int protocol) { + _protocol = protocol; _socket = socket; return 0; } \ No newline at end of file diff --git a/src/ClientSockets/WinsockImp/WindowsClientSocket.h b/src/ClientSockets/WinsockImp/WindowsClientSocket.h index 84bc26b..97484d9 100644 --- a/src/ClientSockets/WinsockImp/WindowsClientSocket.h +++ b/src/ClientSockets/WinsockImp/WindowsClientSocket.h @@ -9,7 +9,7 @@ class WindowsClientSocket : public IClientSocket{ private: SOCKET _socket; SOCKADDR_IN _addrIn; - + int _protocol; public: int Configuration(int protocol) override; @@ -19,7 +19,7 @@ class WindowsClientSocket : public IClientSocket{ void Close() override; public: - int Configuration(SOCKET socket); + int Configuration(SOCKET socket, int protocol); }; diff --git a/src/ServerSocket/LinuxImp/LinuxServerSocket.cpp b/src/ServerSocket/LinuxImp/LinuxServerSocket.cpp index 3b2419f..510daf2 100644 --- a/src/ServerSocket/LinuxImp/LinuxServerSocket.cpp +++ b/src/ServerSocket/LinuxImp/LinuxServerSocket.cpp @@ -2,7 +2,17 @@ #include "../../ClientSockets/LinuxImp/LinuxClientSocket.h" int LinuxServerSocket::Configuration(int protocol) { - _socket = socket(AF_INET, SOCK_STREAM, protocol); + _protocol = protocol; + switch (protocol) { + case IPPROTO_TCP: + _socket = socket(AF_INET, SOCK_STREAM, protocol); + break; + case IPPROTO_UDP: + _socket = socket(AF_INET, SOCK_DGRAM, protocol); + break; + default: + return INVALID_SOCKET; + } if (_socket == INVALID_SOCKET){ Close(); return INVALID_SOCKET; @@ -37,7 +47,7 @@ IClientSocket *LinuxServerSocket::Accept() { return nullptr; LinuxClientSocket* clientSocket = new LinuxClientSocket(); - clientSocket->lConfiguration(client); + clientSocket->Configuration(client, _protocol); return clientSocket; } diff --git a/src/ServerSocket/LinuxImp/LinuxServerSocket.h b/src/ServerSocket/LinuxImp/LinuxServerSocket.h index 6e8670a..af62a0a 100644 --- a/src/ServerSocket/LinuxImp/LinuxServerSocket.h +++ b/src/ServerSocket/LinuxImp/LinuxServerSocket.h @@ -11,6 +11,7 @@ class LinuxServerSocket : public IServerSocket{ private: int _socket; sockaddr_in _sockAddr; + int _protocol; public: int Configuration(int protocol) override; int Bind(const int port, const char* address) override; diff --git a/src/ServerSocket/WindowsImp/WindowsServerSocket.cpp b/src/ServerSocket/WindowsImp/WindowsServerSocket.cpp index 4c83e1b..6e856a4 100644 --- a/src/ServerSocket/WindowsImp/WindowsServerSocket.cpp +++ b/src/ServerSocket/WindowsImp/WindowsServerSocket.cpp @@ -6,7 +6,17 @@ int WindowsServerSocket::Configuration(int protocol) { if (WSAStartup(MAKEWORD(2, 0), &wsaData) != 0) return INVALID_SOCKET; - _socket = ::socket(AF_INET, SOCK_STREAM, protocol); + _protocol = protocol; + switch (protocol) { + case IPPROTO_TCP: + _socket = socket(AF_INET, SOCK_STREAM, protocol); + break; + case IPPROTO_UDP: + _socket = socket(AF_INET, SOCK_DGRAM, protocol); + break; + default: + return INVALID_SOCKET; + } if (_socket == INVALID_SOCKET) { Close(); return INVALID_SOCKET; @@ -41,7 +51,7 @@ IClientSocket *WindowsServerSocket::Accept() { return nullptr; WindowsClientSocket* clientSocket = new WindowsClientSocket; - clientSocket->Configuration(client); + clientSocket->Configuration(client, _protocol); return clientSocket; } diff --git a/src/ServerSocket/WindowsImp/WindowsServerSocket.h b/src/ServerSocket/WindowsImp/WindowsServerSocket.h index 9ac59c2..6124027 100644 --- a/src/ServerSocket/WindowsImp/WindowsServerSocket.h +++ b/src/ServerSocket/WindowsImp/WindowsServerSocket.h @@ -8,6 +8,7 @@ class WindowsServerSocket : public IServerSocket{ private: SOCKET _socket; SOCKADDR_IN _addrIn; + int _protocol; public: int Configuration(int protocol) override; int Bind(const int port, const char* address) override; diff --git a/tests/WindowsTests/testOfWindowsServer/TestOfWindowsServerSocket.cpp b/tests/WindowsTests/testOfWindowsServer/TestOfWindowsServerSocket.cpp index 6d7cebf..b876987 100644 --- a/tests/WindowsTests/testOfWindowsServer/TestOfWindowsServerSocket.cpp +++ b/tests/WindowsTests/testOfWindowsServer/TestOfWindowsServerSocket.cpp @@ -8,13 +8,13 @@ TEST(TestsOfWindowsServerSocket, Creation){ EXPECT_NO_THROW(serverSocket = new WindowsServerSocket()); } -TEST(TestsOfServerWindowsSocket, Configure){ +TEST(TestsOfServerWindowsSocket, ConfigureTCP){ IServerSocket* serverSocket = new WindowsServerSocket(); EXPECT_NO_THROW(serverSocket->Configuration(IPPROTO_TCP)); serverSocket->Close(); } -TEST(TestsOfServerWindowsSocket, Bind){ +TEST(TestsOfServerWindowsSocket, BindTCP){ IServerSocket* serverSocket = new WindowsServerSocket(); serverSocket->Configuration(IPPROTO_TCP); @@ -23,7 +23,7 @@ TEST(TestsOfServerWindowsSocket, Bind){ serverSocket->Close(); } -TEST(TestsOfServerWindowsSocket, Listen){ +TEST(TestsOfServerWindowsSocket, ListenTCP){ IServerSocket* serverSocket = new WindowsServerSocket(); serverSocket->Configuration(IPPROTO_TCP); @@ -33,7 +33,7 @@ TEST(TestsOfServerWindowsSocket, Listen){ serverSocket->Close(); } -TEST(TestsOfServerWindowsSocket, Accept){ +TEST(TestsOfServerWindowsSocket, AcceptTCP){ IServerSocket* serverSocket = new WindowsServerSocket(); IClientSocket* clientSocket = new WindowsClientSocket(); @@ -49,7 +49,7 @@ TEST(TestsOfServerWindowsSocket, Accept){ serverSocket->Close(); } -TEST(TestOfServerWindowsSocket, Recive){ +TEST(TestOfServerWindowsSocket, ReciveTCP){ IServerSocket* serverSocket = new WindowsServerSocket(); IClientSocket* clientSocket = new WindowsClientSocket(); char data = 0, @@ -68,7 +68,7 @@ TEST(TestOfServerWindowsSocket, Recive){ serverSocket->Close(); } -TEST(TestOfServerWindowsSocket, ReciveAndCheckData){ +TEST(TestOfServerWindowsSocket, ReciveAndCheckDataTCP){ IServerSocket* serverSocket = new WindowsServerSocket(); IClientSocket* clientSocket = new WindowsClientSocket(); char data = 0, @@ -88,7 +88,85 @@ TEST(TestOfServerWindowsSocket, ReciveAndCheckData){ serverSocket->Close(); } +TEST(TestsOfServerWindowsSocket, ConfigureUDP){ + IServerSocket* serverSocket = new WindowsServerSocket(); + EXPECT_NO_THROW(serverSocket->Configuration(IPPROTO_UDP)); + serverSocket->Close(); +} + +TEST(TestsOfServerWindowsSocket, BindUDP){ + IServerSocket* serverSocket = new WindowsServerSocket(); + + serverSocket->Configuration(IPPROTO_UDP); + + EXPECT_EQ(serverSocket->Bind(35098,localhost), 0); + serverSocket->Close(); +} + +TEST(TestsOfServerWindowsSocket, ListenUDP){ + IServerSocket* serverSocket = new WindowsServerSocket(); + + serverSocket->Configuration(IPPROTO_UDP); + serverSocket->Bind(12498, localhost); + + EXPECT_EQ(serverSocket->Listen(1), 0); + serverSocket->Close(); +} + +TEST(TestsOfServerWindowsSocket, AcceptUDP){ + IServerSocket* serverSocket = new WindowsServerSocket(); + IClientSocket* clientSocket = new WindowsClientSocket(); + + serverSocket->Configuration(IPPROTO_UDP); + serverSocket->Bind(12498, localhost); + serverSocket->Listen(1); + clientSocket->Configuration(IPPROTO_UDP); + clientSocket->Connect(12498, localhost); + + + EXPECT_NO_THROW(serverSocket->Accept()); + clientSocket->Close(); + serverSocket->Close(); +} +TEST(TestOfServerWindowsSocket, ReciveUDP){ + IServerSocket* serverSocket = new WindowsServerSocket(); + IClientSocket* clientSocket = new WindowsClientSocket(); + char data = 0, + reciveData = 1; + + serverSocket->Configuration(IPPROTO_UDP); + serverSocket->Bind(12498, localhost); + serverSocket->Listen(1); + clientSocket->Configuration(IPPROTO_UDP); + clientSocket->Connect(12498, localhost); + IClientSocket* acceptSocket = serverSocket->Accept(); + clientSocket->Send(&data, sizeof(char)); + + EXPECT_NO_THROW(acceptSocket->Receive(&reciveData, sizeof(char))); + clientSocket->Close(); + serverSocket->Close(); +} + +TEST(TestOfServerWindowsSocket, ReciveAndCheckDataUDP){ + IServerSocket* serverSocket = new WindowsServerSocket(); + IClientSocket* clientSocket = new WindowsClientSocket(); + char data = 0, + reciveData = 1; + + serverSocket->Configuration(IPPROTO_UDP); + serverSocket->Bind(12498, localhost); + serverSocket->Listen(1); + clientSocket->Configuration(IPPROTO_UDP); + clientSocket->Connect(12498, localhost); + IClientSocket* acceptSocket = serverSocket->Accept(); + clientSocket->Send(&data, sizeof(char)); + acceptSocket->Receive(&reciveData, sizeof(char)); + + EXPECT_EQ(data, reciveData); + clientSocket->Close(); + serverSocket->Close(); +} From 5cffa5a6d5b0568ef3b6fe56d74087f1f1d03801 Mon Sep 17 00:00:00 2001 From: hhhh hgfh Date: Wed, 15 Jan 2025 22:59:26 +0300 Subject: [PATCH 2/3] tests(1): add windows tests for udp --- .../TestsOfWindowsClientSocket.cpp | 62 +++++++++++++++++-- 1 file changed, 58 insertions(+), 4 deletions(-) diff --git a/tests/WindowsTests/testOfWindowsClient/TestsOfWindowsClientSocket.cpp b/tests/WindowsTests/testOfWindowsClient/TestsOfWindowsClientSocket.cpp index 7a12a57..14882d8 100644 --- a/tests/WindowsTests/testOfWindowsClient/TestsOfWindowsClientSocket.cpp +++ b/tests/WindowsTests/testOfWindowsClient/TestsOfWindowsClientSocket.cpp @@ -9,13 +9,13 @@ TEST(TestsOfWindowsClienSocket, Creation){ clientSocket->Close(); } -TEST(TestsOfWindowsClienSocket, Configure){ +TEST(TestsOfWindowsClienSocket, ConfigureTCP){ IClientSocket* clientSocket = new WindowsClientSocket(); EXPECT_NO_THROW(clientSocket->Configuration(IPPROTO_TCP)); clientSocket->Close(); } -TEST(TestsOfWindowsClienSocket, Connect){ +TEST(TestsOfWindowsClienSocket, ConnectTCP){ IClientSocket* clientSocket = new WindowsClientSocket(); IServerSocket* serverSocket = new WindowsServerSocket(); @@ -28,7 +28,7 @@ TEST(TestsOfWindowsClienSocket, Connect){ clientSocket->Close(); serverSocket->Close(); } -TEST(TestsOfWindowsClienSocket, Send){ +TEST(TestsOfWindowsClienSocket, SendTCP){ IClientSocket* clientSocket = new WindowsClientSocket(); IServerSocket* serverSocket = new WindowsServerSocket(); char data = 7, @@ -45,7 +45,7 @@ TEST(TestsOfWindowsClienSocket, Send){ serverSocket->Close(); } -TEST(TestsOfWindowsClienSocket, SendAndCheckData){ +TEST(TestsOfWindowsClienSocket, SendAndCheckDataTCP){ IClientSocket* clientSocket = new WindowsClientSocket(); IServerSocket* serverSocket = new WindowsServerSocket(); char data = 7, @@ -64,6 +64,60 @@ TEST(TestsOfWindowsClienSocket, SendAndCheckData){ serverSocket->Close(); } +TEST(TestsOfWindowsClienSocket, ConfigureUDP){ + IClientSocket* clientSocket = new WindowsClientSocket(); + EXPECT_NO_THROW(clientSocket->Configuration(IPPROTO_UDP)); + clientSocket->Close(); +} + +TEST(TestsOfWindowsClienSocket, ConnectUDP){ + IClientSocket* clientSocket = new WindowsClientSocket(); + IServerSocket* serverSocket = new WindowsServerSocket(); + + serverSocket->Configuration(IPPROTO_UDP); + serverSocket->Bind(489, localhost); + serverSocket->Listen(1); + clientSocket->Configuration(IPPROTO_UDP); + + EXPECT_EQ(clientSocket->Connect(489, localhost), 0); + clientSocket->Close(); + serverSocket->Close(); +} +TEST(TestsOfWindowsClienSocket, SendUDP){ + IClientSocket* clientSocket = new WindowsClientSocket(); + IServerSocket* serverSocket = new WindowsServerSocket(); + char data = 7, + fakeData =10; + + serverSocket->Configuration(IPPROTO_UDP); + serverSocket->Bind(489, localhost); + serverSocket->Listen(1); + clientSocket->Configuration(IPPROTO_UDP); + clientSocket->Connect(489, localhost); + clientSocket->Send(&data, sizeof(data)); + EXPECT_NO_THROW(serverSocket->Accept()->Receive(&fakeData, sizeof(char))); + clientSocket->Close(); + serverSocket->Close(); +} + +TEST(TestsOfWindowsClienSocket, SendAndCheckDataUDP){ + IClientSocket* clientSocket = new WindowsClientSocket(); + IServerSocket* serverSocket = new WindowsServerSocket(); + char data = 7, + fakeData =10; + + serverSocket->Configuration(IPPROTO_UDP); + serverSocket->Bind(489, localhost); + serverSocket->Listen(1); + clientSocket->Configuration(IPPROTO_UDP); + clientSocket->Connect(489, localhost); + clientSocket->Send(&data, sizeof(data)); + serverSocket->Accept()->Receive(&fakeData, sizeof(char)); + + EXPECT_EQ(data, fakeData); + clientSocket->Close(); + serverSocket->Close(); +} From fdf020d0325dfbcbcfa576a5b1ea1b5fe55c9711 Mon Sep 17 00:00:00 2001 From: hhhh hgfh Date: Wed, 15 Jan 2025 23:02:48 +0300 Subject: [PATCH 3/3] tests(1): add linux tests for udp --- .../TestOfLinuxClientSocket.cpp | 65 +++++++++++++++-- .../TestOfLinuxServerSocket.cpp | 71 +++++++++++++++++-- 2 files changed, 127 insertions(+), 9 deletions(-) diff --git a/tests/LinuxTests/testOfLinuxClient/TestOfLinuxClientSocket.cpp b/tests/LinuxTests/testOfLinuxClient/TestOfLinuxClientSocket.cpp index 59b0b78..551a09f 100644 --- a/tests/LinuxTests/testOfLinuxClient/TestOfLinuxClientSocket.cpp +++ b/tests/LinuxTests/testOfLinuxClient/TestOfLinuxClientSocket.cpp @@ -11,13 +11,13 @@ TEST(TestsOfLinuxClientSocket, Creation){ clientSocket->Close(); } -TEST(TestsOfLinuxClientSocket, Configure){ +TEST(TestsOfLinuxClientSocket, ConfigureTCP){ IClientSocket* clientSocket = new LinuxClientSocket(); EXPECT_NO_THROW(clientSocket->Configuration(IPPROTO_TCP)); clientSocket->Close(); } -TEST(TestsOfLinuxClientSocket, Connect){ +TEST(TestsOfLinuxClientSocket, ConnectTCP){ IClientSocket* clientSocket = new LinuxClientSocket(); IServerSocket* serverSocket = new LinuxServerSocket(); @@ -30,7 +30,7 @@ TEST(TestsOfLinuxClientSocket, Connect){ clientSocket->Close(); serverSocket->Close(); } -TEST(TestsOfLinuxClientSocket, Send){ +TEST(TestsOfLinuxClientSocket, SendTCP){ IClientSocket* clientSocket = new LinuxClientSocket(); IServerSocket* serverSocket = new LinuxServerSocket(); char data = 7, @@ -47,7 +47,7 @@ TEST(TestsOfLinuxClientSocket, Send){ serverSocket->Close(); } -TEST(TestsOfLinuxClientSocket, SendAndCheckData){ +TEST(TestsOfLinuxClientSocket, SendAndCheckDataTCP){ IClientSocket* clientSocket = new LinuxClientSocket(); IServerSocket* serverSocket = new LinuxServerSocket(); char data = 7, @@ -66,6 +66,63 @@ TEST(TestsOfLinuxClientSocket, SendAndCheckData){ serverSocket->Close(); } + +TEST(TestsOfLinuxClientSocket, ConfigureUDP){ + IClientSocket* clientSocket = new LinuxClientSocket(); + EXPECT_NO_THROW(clientSocket->Configuration(IPPROTO_UDP)); + clientSocket->Close(); +} + +TEST(TestsOfLinuxClientSocket, ConnectUDP){ + IClientSocket* clientSocket = new LinuxClientSocket(); + IServerSocket* serverSocket = new LinuxServerSocket(); + + serverSocket->Configuration(IPPROTO_UDP); + serverSocket->Bind(8950, localhost); + serverSocket->Listen(1); + clientSocket->Configuration(IPPROTO_UDP); + + EXPECT_EQ(clientSocket->Connect(8950, localhost), 0); + clientSocket->Close(); + serverSocket->Close(); +} +TEST(TestsOfLinuxClientSocket, SendUDP){ + IClientSocket* clientSocket = new LinuxClientSocket(); + IServerSocket* serverSocket = new LinuxServerSocket(); + char data = 7, + fakeData =10; + + serverSocket->Configuration(IPPROTO_UDP); + serverSocket->Bind(8950, localhost); + serverSocket->Listen(1); + clientSocket->Configuration(IPPROTO_UDP); + clientSocket->Connect(8950, localhost); + clientSocket->Send(&data, sizeof(data)); + EXPECT_NO_THROW(serverSocket->Accept()->Receive(&fakeData, sizeof(char))); + clientSocket->Close(); + serverSocket->Close(); +} + +TEST(TestsOfLinuxClientSocket, SendAndCheckDataUDP){ + IClientSocket* clientSocket = new LinuxClientSocket(); + IServerSocket* serverSocket = new LinuxServerSocket(); + char data = 7, + fakeData =10; + + serverSocket->Configuration(IPPROTO_UDP); + serverSocket->Bind(8950, localhost); + serverSocket->Listen(1); + clientSocket->Configuration(IPPROTO_UDP); + clientSocket->Connect(8950, localhost); + clientSocket->Send(&data, sizeof(data)); + serverSocket->Accept()->Receive(&fakeData, sizeof(char)); + + EXPECT_EQ(data, fakeData); + clientSocket->Close(); + serverSocket->Close(); +} + + int main(int argc, char* argv[]){ localhost = findLocalIp(); ::testing::InitGoogleTest(&argc, argv); diff --git a/tests/LinuxTests/testOfLinuxServer/TestOfLinuxServerSocket.cpp b/tests/LinuxTests/testOfLinuxServer/TestOfLinuxServerSocket.cpp index 9aa64fa..affa34a 100644 --- a/tests/LinuxTests/testOfLinuxServer/TestOfLinuxServerSocket.cpp +++ b/tests/LinuxTests/testOfLinuxServer/TestOfLinuxServerSocket.cpp @@ -11,13 +11,13 @@ TEST(TestsOfLinuxServerSocket, Creation){ serverSocket->Close(); } -TEST(TestsOfServerLinuxSocket, Configure){ +TEST(TestsOfServerLinuxSocket, ConfigureTCP){ IServerSocket* serverSocket = new LinuxServerSocket(); EXPECT_NO_THROW(serverSocket->Configuration(IPPROTO_TCP)); serverSocket->Close(); } -TEST(TestsOfServerLinuxSocket, Bind){ +TEST(TestsOfServerLinuxSocket, BindTCP){ IServerSocket* serverSocket = new LinuxServerSocket(); serverSocket->Configuration(IPPROTO_TCP); @@ -26,7 +26,7 @@ TEST(TestsOfServerLinuxSocket, Bind){ serverSocket->Close(); } -TEST(TestsOfServerLinuxSocket, Listen){ +TEST(TestsOfServerLinuxSocket, ListenTCP){ IServerSocket* serverSocket = new LinuxServerSocket(); serverSocket->Configuration(IPPROTO_TCP); @@ -36,7 +36,7 @@ TEST(TestsOfServerLinuxSocket, Listen){ serverSocket->Close(); } -TEST(TestsOfServerLinuxSocket, Accept){ +TEST(TestsOfServerLinuxSocket, AcceptTCP){ IServerSocket* serverSocket = new LinuxServerSocket(); IClientSocket* clientSocket = new LinuxClientSocket(); @@ -52,7 +52,7 @@ TEST(TestsOfServerLinuxSocket, Accept){ serverSocket->Close(); } -TEST(TestOfServerLinuxSocket, Recive){ +TEST(TestOfServerLinuxSocket, ReciveTCP){ IServerSocket* serverSocket = new LinuxServerSocket(); IClientSocket* clientSocket = new LinuxClientSocket(); char data = 0, @@ -71,6 +71,67 @@ TEST(TestOfServerLinuxSocket, Recive){ serverSocket->Close(); } + +TEST(TestsOfServerLinuxSocket, ConfigureUDP){ + IServerSocket* serverSocket = new LinuxServerSocket(); + EXPECT_NO_THROW(serverSocket->Configuration(IPPROTO_UDP)); + serverSocket->Close(); +} + +TEST(TestsOfServerLinuxSocket, BindUDP){ + IServerSocket* serverSocket = new LinuxServerSocket(); + + serverSocket->Configuration(IPPROTO_UDP); + + EXPECT_EQ(serverSocket->Bind(35098,localhost), 0); + serverSocket->Close(); +} + +TEST(TestsOfServerLinuxSocket, ListenUDP){ + IServerSocket* serverSocket = new LinuxServerSocket(); + + serverSocket->Configuration(IPPROTO_TCP); + serverSocket->Bind(12498, localhost); + + EXPECT_EQ(serverSocket->Listen(1), 0); + serverSocket->Close(); +} + +TEST(TestsOfServerLinuxSocket, AcceptUDP){ + IServerSocket* serverSocket = new LinuxServerSocket(); + IClientSocket* clientSocket = new LinuxClientSocket(); + + serverSocket->Configuration(IPPROTO_UDP); + serverSocket->Bind(12498, localhost); + serverSocket->Listen(1); + clientSocket->Configuration(IPPROTO_UDP); + clientSocket->Connect(12498, localhost); + + + EXPECT_NO_THROW(serverSocket->Accept()); + clientSocket->Close(); + serverSocket->Close(); +} + +TEST(TestOfServerLinuxSocket, ReciveUDP){ + IServerSocket* serverSocket = new LinuxServerSocket(); + IClientSocket* clientSocket = new LinuxClientSocket(); + char data = 0, + reciveData = 1; + + serverSocket->Configuration(IPPROTO_UDP); + serverSocket->Bind(12498, localhost); + serverSocket->Listen(1); + clientSocket->Configuration(IPPROTO_UDP); + clientSocket->Connect(12498, localhost); + IClientSocket* acceptSocket = serverSocket->Accept(); + clientSocket->Send(&data, sizeof(char)); + + EXPECT_NO_THROW(acceptSocket->Receive(&reciveData, sizeof(char))); + clientSocket->Close(); + serverSocket->Close(); +} + int main(int argc, char* argv[]){ localhost = findLocalIp(); ::testing::InitGoogleTest(&argc, argv);