Add win socket client and server.

This commit is contained in:
jmsgrogan 2023-01-27 17:04:39 +00:00
parent 426ea55b3b
commit 4d2464c1f5
45 changed files with 1167 additions and 246 deletions

View file

@ -3,6 +3,7 @@ add_subdirectory(test_utils)
add_subdirectory(fonts)
add_subdirectory(geometry)
add_subdirectory(graphics)
add_subdirectory(network)
add_subdirectory(publishing)
add_subdirectory(ui_controls)
@ -15,8 +16,7 @@ set(TEST_MODULES
core
database
image
ipc
network
ipc
mesh
video
web

View file

@ -1,20 +1,25 @@
set(NETWORK_UNIT_TEST_FILES
network/TestNetworkManagerClient.cpp
network/TestNetworkManagerServer.cpp
PARENT_SCOPE
)
set(NETWORK_INTEGRATION_TEST_FILES
network/TestWin32WebServer.cpp
PARENT_SCOPE
)
set(NETWORK_UNIT_TEST_DEPENDENCIES
network
PARENT_SCOPE
)
set(NETWORK_INTEGRATION_TEST_DEPENDENCIES
network
PARENT_SCOPE
)
set(MODULE_NAME network)
list(APPEND UNIT_TEST_FILES
TestNetworkManagerServer.cpp
)
set(INTEGRATION_TEST_FILES)
if (WIN32)
list(APPEND INTEGRATION_TEST_FILES
TestWin32WebServer.cpp
TestWinsockClient.cpp
TestWinsockServer.cpp
)
endif()
set(UNIT_TEST_TARGET_NAME ${MODULE_NAME}_unit_tests)
set(INTEGRATION_TEST_TARGET_NAME ${MODULE_NAME}_integration_tests)
add_executable(${UNIT_TEST_TARGET_NAME} ${CMAKE_SOURCE_DIR}/test/test_runner.cpp ${UNIT_TEST_FILES})
target_link_libraries(${UNIT_TEST_TARGET_NAME} PUBLIC test_utils network)
set_property(TARGET ${UNIT_TEST_TARGET_NAME} PROPERTY FOLDER test/${MODULE_NAME})
add_executable(${INTEGRATION_TEST_TARGET_NAME} ${CMAKE_SOURCE_DIR}/test/test_runner.cpp ${INTEGRATION_TEST_FILES})
target_link_libraries(${INTEGRATION_TEST_TARGET_NAME} PUBLIC test_utils network)
set_property(TARGET ${INTEGRATION_TEST_TARGET_NAME} PROPERTY FOLDER test/${MODULE_NAME})

View file

@ -1,12 +0,0 @@
#include "NetworkManager.h"
#include "TestFramework.h"
#include <iostream>
TEST_CASE(TestNetworkManagerClient, "network")
{
auto network_manager = NetworkManager::Create();
network_manager->runHttpClient();
}

View file

@ -0,0 +1,25 @@
#include "NetworkManager.h"
#include "TestFramework.h"
#include "TestUtils.h"
#include "HttpClient.h"
#include "File.h"
TEST_CASE(TestWinsockClient, "network")
{
HttpClient client;
HttpRequest request(HttpRequest::Verb::GET);
HttpClient::Address address;
address.mHost = "127.0.0.1";
address.mPort = 8000;
auto response = client.makeRequest(request, address);
auto content = response.toString();
File file(TestUtils::getTestOutputDir(__FILE__) / "get_request.dat");
file.writeText(content);
}

View file

@ -0,0 +1,21 @@
#include "NetworkManager.h"
#include "TestFramework.h"
#include "TestUtils.h"
#include "HttpServer.h"
#include "BasicWebApp.h"
#include "File.h"
TEST_CASE(TestWinsockServer, "network")
{
BasicWebApp app;
HttpServer server;
HttpServer::Address address;
address.mHost = "127.0.0.1";
address.mPort = 8000;
server.run(&app, address);
}