diff --git a/src/network/core/tcp_game.h b/src/network/core/tcp_game.h index fba18de16a..9a63db6446 100644 --- a/src/network/core/tcp_game.h +++ b/src/network/core/tcp_game.h @@ -143,7 +143,7 @@ enum PacketGameType : uint8_t { PACKET_END, ///< Must ALWAYS be on the end of this list!! (period) }; -const char *GetPacketTypeName(PacketGameType type); +const char *GetPacketGameTypeName(PacketGameType type); /** Packet that wraps a command */ struct CommandPacket; diff --git a/src/tests/CMakeLists.txt b/src/tests/CMakeLists.txt index cc6334df69..756a4bf39f 100644 --- a/src/tests/CMakeLists.txt +++ b/src/tests/CMakeLists.txt @@ -11,6 +11,7 @@ add_test_files( strings_func.cpp test_main.cpp test_network_crypto.cpp + test_network_debug.cpp test_script_admin.cpp test_window_desc.cpp ) diff --git a/src/tests/test_network_debug.cpp b/src/tests/test_network_debug.cpp new file mode 100644 index 0000000000..fa6f35193a --- /dev/null +++ b/src/tests/test_network_debug.cpp @@ -0,0 +1,78 @@ +/* + * This file is part of OpenTTD. + * OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2. + * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see . + */ + +/** @file test_network_debug.cpp Tests for network debug related functions. */ + +#include "../stdafx.h" + +#include "../3rdparty/catch2/catch.hpp" + +#include "../network/core/tcp_game.h" + + +TEST_CASE("GetPacketGameTypeName") +{ + uint number_of_tests = 0; +#define CHECK_NAME(pkttype) number_of_tests++; CHECK(GetPacketGameTypeName(PACKET_ ## pkttype) == std::string_view{#pkttype}) + CHECK_NAME(SERVER_FULL); + CHECK_NAME(SERVER_BANNED); + CHECK_NAME(CLIENT_JOIN); + CHECK_NAME(SERVER_ERROR); + CHECK_NAME(CLIENT_UNUSED); + CHECK_NAME(SERVER_UNUSED); + CHECK_NAME(SERVER_GAME_INFO); + CHECK_NAME(CLIENT_GAME_INFO); + CHECK_NAME(SERVER_NEWGAME); + CHECK_NAME(SERVER_SHUTDOWN); + CHECK_NAME(SERVER_GAME_INFO_EXTENDED); + CHECK_NAME(SERVER_AUTH_REQUEST); + CHECK_NAME(CLIENT_AUTH_RESPONSE); + CHECK_NAME(SERVER_ENABLE_ENCRYPTION); + CHECK_NAME(CLIENT_IDENTIFY); + CHECK_NAME(SERVER_CHECK_NEWGRFS); + CHECK_NAME(CLIENT_NEWGRFS_CHECKED); + CHECK_NAME(SERVER_NEED_COMPANY_PASSWORD); + CHECK_NAME(CLIENT_COMPANY_PASSWORD); + CHECK_NAME(CLIENT_SETTINGS_PASSWORD); + CHECK_NAME(SERVER_SETTINGS_ACCESS); + CHECK_NAME(SERVER_WELCOME); + CHECK_NAME(SERVER_CLIENT_INFO); + CHECK_NAME(CLIENT_GETMAP); + CHECK_NAME(SERVER_WAIT); + CHECK_NAME(SERVER_MAP_BEGIN); + CHECK_NAME(SERVER_MAP_SIZE); + CHECK_NAME(SERVER_MAP_DATA); + CHECK_NAME(SERVER_MAP_DONE); + CHECK_NAME(CLIENT_MAP_OK); + CHECK_NAME(SERVER_JOIN); + CHECK_NAME(SERVER_FRAME); + CHECK_NAME(CLIENT_ACK); + CHECK_NAME(SERVER_SYNC); + CHECK_NAME(CLIENT_COMMAND); + CHECK_NAME(SERVER_COMMAND); + CHECK_NAME(CLIENT_CHAT); + CHECK_NAME(SERVER_CHAT); + CHECK_NAME(SERVER_EXTERNAL_CHAT); + CHECK_NAME(CLIENT_RCON); + CHECK_NAME(SERVER_RCON); + CHECK_NAME(CLIENT_MOVE); + CHECK_NAME(SERVER_MOVE); + CHECK_NAME(CLIENT_SET_PASSWORD); + CHECK_NAME(CLIENT_SET_NAME); + CHECK_NAME(SERVER_COMPANY_UPDATE); + CHECK_NAME(SERVER_CONFIG_UPDATE); + CHECK_NAME(CLIENT_QUIT); + CHECK_NAME(SERVER_QUIT); + CHECK_NAME(CLIENT_ERROR); + CHECK_NAME(SERVER_ERROR_QUIT); + CHECK_NAME(CLIENT_DESYNC_LOG); + CHECK_NAME(SERVER_DESYNC_LOG); + CHECK_NAME(CLIENT_DESYNC_MSG); + CHECK_NAME(CLIENT_DESYNC_SYNC_DATA); +#undef CHECK_NAME + CHECK(number_of_tests == static_cast(PACKET_END)); +}