From 12d5ca5d4124ec9d528068051c48e7770a26c55a Mon Sep 17 00:00:00 2001 From: ParkSuMin Date: Thu, 1 May 2025 02:36:10 +0300 Subject: [PATCH] Gracefull down of c++ standart version Add stress-test shell script --- CMakeLists.txt | 4 ++-- include/maze.hpp | 3 ++- server-test.sh | 12 ++++++++++++ src/server/server.cpp | 3 ++- 4 files changed, 18 insertions(+), 4 deletions(-) create mode 100755 server-test.sh diff --git a/CMakeLists.txt b/CMakeLists.txt index 7914164..42da394 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,9 +1,9 @@ cmake_minimum_required(VERSION 3.5) project(maze LANGUAGES CXX) -set(CMAKE_CXX_STANDARD 23) +set(CMAKE_CXX_STANDARD 20) -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++23 -Wall") +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++20 -Wall") include_directories( include diff --git a/include/maze.hpp b/include/maze.hpp index d2c3fbf..9ab63ee 100644 --- a/include/maze.hpp +++ b/include/maze.hpp @@ -7,6 +7,7 @@ #define MAZE_HPP #include +#include #include #include #include @@ -44,7 +45,7 @@ private: }; public: bool test_mode; ///< Флаг тестового режима (без ограничения ходов). - + /*! Создаёт лабиринт. @details Инициализирует граф лабиринта, добавляет случайные стены и задаёт количество ходов. @param flag Флаг тестового режима (true — без ограничения ходов). diff --git a/server-test.sh b/server-test.sh new file mode 100755 index 0000000..8368a7f --- /dev/null +++ b/server-test.sh @@ -0,0 +1,12 @@ +#!/bin/bash + +if [[ $# -lt 1 ]]; then + echo "no client path!" + exit 1 +fi +COUNTER=0 +while [[ COUNTER -lt 500 ]]; do + ./$1 < Doxyfile > /dev/null & + let COUNTER++ +done +echo "finish" diff --git a/src/server/server.cpp b/src/server/server.cpp index 726143d..98a6303 100644 --- a/src/server/server.cpp +++ b/src/server/server.cpp @@ -129,7 +129,7 @@ void Server::handle_client(int client_socket, bool mode, int steps) { response = "вы проиграли\n"; send(client_socket, response.c_str(), response.size(), 0); } - + shutdown(client_socket, SHUT_RDWR); close(client_socket); std::cout << "Игрок " << player_name << " отключился" << std::endl; } @@ -155,4 +155,5 @@ void Server::start(int steps, bool service_mode) { std::cout << "Новое соединение установлено" << std::endl; std::thread(&Server::handle_client, this, new_socket, service_mode, steps).detach(); } + shutdown(server_socket, SHUT_RDWR); } \ No newline at end of file