Move UnitTest stuff
This commit is contained in:
parent
d0f2da8f61
commit
d64589f6e8
2
deps/protobuf
vendored
2
deps/protobuf
vendored
@ -1 +1 @@
|
|||||||
Subproject commit 3b001ca6ba6fb51f5e55b1596fb3ce09ee9981e8
|
Subproject commit c44ca26fe89ed8a81d3ee475a2ccc1797141dbce
|
@ -12,6 +12,11 @@ namespace Components
|
|||||||
return (IsWindow(*reinterpret_cast<HWND*>(0x64A3288)) != FALSE || (Dedicated::IsEnabled() && !Flags::HasFlag("console")));
|
return (IsWindow(*reinterpret_cast<HWND*>(0x64A3288)) != FALSE || (Dedicated::IsEnabled() && !Flags::HasFlag("console")));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Logger::PrintStub(int channel, const char* message, ...)
|
||||||
|
{
|
||||||
|
return Logger::MessagePrint(channel, Logger::Format(&message));
|
||||||
|
}
|
||||||
|
|
||||||
void Logger::Print(const char* message, ...)
|
void Logger::Print(const char* message, ...)
|
||||||
{
|
{
|
||||||
return Logger::MessagePrint(0, Logger::Format(&message));
|
return Logger::MessagePrint(0, Logger::Format(&message));
|
||||||
@ -176,6 +181,11 @@ namespace Components
|
|||||||
Utils::Hook(0x4B0218, Logger::GameLogStub, HOOK_CALL).Install()->Quick();
|
Utils::Hook(0x4B0218, Logger::GameLogStub, HOOK_CALL).Install()->Quick();
|
||||||
Utils::Hook(Game::Com_PrintMessage, Logger::PrintMessageStub, HOOK_JUMP).Install()->Quick();
|
Utils::Hook(Game::Com_PrintMessage, Logger::PrintMessageStub, HOOK_JUMP).Install()->Quick();
|
||||||
|
|
||||||
|
if (Loader::PerformingUnitTests())
|
||||||
|
{
|
||||||
|
Utils::Hook(Game::Com_Printf, Logger::PrintStub, HOOK_JUMP).Install()->Quick();
|
||||||
|
}
|
||||||
|
|
||||||
Dvar::OnInit([] ()
|
Dvar::OnInit([] ()
|
||||||
{
|
{
|
||||||
Command::AddSV("log_add", [] (Command::Params params)
|
Command::AddSV("log_add", [] (Command::Params params)
|
||||||
|
@ -19,6 +19,8 @@ namespace Components
|
|||||||
static void SoftError(const char* message, ...);
|
static void SoftError(const char* message, ...);
|
||||||
static bool IsConsoleReady();
|
static bool IsConsoleReady();
|
||||||
|
|
||||||
|
static void PrintStub(int channel, const char* message, ...);
|
||||||
|
|
||||||
static void PipeOutput(void(*callback)(std::string));
|
static void PipeOutput(void(*callback)(std::string));
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
@ -831,7 +831,7 @@ namespace Components
|
|||||||
printf("ECDSA key seems invalid!\n");
|
printf("ECDSA key seems invalid!\n");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
printf("Success\n");
|
printf("Success\n");
|
||||||
printf("Testing 10 valid signatures...");
|
printf("Testing 10 valid signatures...");
|
||||||
|
|
||||||
@ -885,45 +885,6 @@ namespace Components
|
|||||||
}
|
}
|
||||||
|
|
||||||
printf("Success\n");
|
printf("Success\n");
|
||||||
|
|
||||||
uint32_t randIntCount = 4'000'000;
|
|
||||||
printf("Generating %d random integers...", randIntCount);
|
|
||||||
|
|
||||||
auto startTime = std::chrono::high_resolution_clock::now();
|
|
||||||
|
|
||||||
for (uint32_t i = 0; i < randIntCount; ++i)
|
|
||||||
{
|
|
||||||
Utils::Cryptography::Rand::GenerateInt();
|
|
||||||
}
|
|
||||||
|
|
||||||
auto duration = std::chrono::duration_cast<std::chrono::milliseconds>(std::chrono::high_resolution_clock::now() - startTime).count();
|
|
||||||
Logger::Print("took %llims\n", duration);
|
|
||||||
|
|
||||||
printf("Testing ZLib compression...");
|
|
||||||
|
|
||||||
std::string test = fmt::sprintf("%c", Utils::Cryptography::Rand::GenerateInt());
|
|
||||||
|
|
||||||
for (int i = 0; i < 21; ++i)
|
|
||||||
{
|
|
||||||
std::string compressed = Utils::Compression::ZLib::Compress(test);
|
|
||||||
std::string decompressed = Utils::Compression::ZLib::Decompress(compressed);
|
|
||||||
|
|
||||||
if (test != decompressed)
|
|
||||||
{
|
|
||||||
printf("Error\n");
|
|
||||||
printf("Compressing %d bytes and decompressing failed!\n", test.size());
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
auto size = test.size();
|
|
||||||
for (unsigned int j = 0; j < size; ++j)
|
|
||||||
{
|
|
||||||
test.append(fmt::sprintf("%c", Utils::Cryptography::Rand::GenerateInt()));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
printf("Success\n");
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -424,4 +424,46 @@ namespace Components
|
|||||||
{
|
{
|
||||||
QuickPatch::ShutdownSignal.clear();
|
QuickPatch::ShutdownSignal.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool QuickPatch::UnitTest()
|
||||||
|
{
|
||||||
|
uint32_t randIntCount = 4'000'000;
|
||||||
|
printf("Generating %d random integers...", randIntCount);
|
||||||
|
|
||||||
|
auto startTime = std::chrono::high_resolution_clock::now();
|
||||||
|
|
||||||
|
for (uint32_t i = 0; i < randIntCount; ++i)
|
||||||
|
{
|
||||||
|
Utils::Cryptography::Rand::GenerateInt();
|
||||||
|
}
|
||||||
|
|
||||||
|
auto duration = std::chrono::duration_cast<std::chrono::milliseconds>(std::chrono::high_resolution_clock::now() - startTime).count();
|
||||||
|
Logger::Print("took %llims\n", duration);
|
||||||
|
|
||||||
|
printf("Testing ZLib compression...");
|
||||||
|
|
||||||
|
std::string test = fmt::sprintf("%c", Utils::Cryptography::Rand::GenerateInt());
|
||||||
|
|
||||||
|
for (int i = 0; i < 21; ++i)
|
||||||
|
{
|
||||||
|
std::string compressed = Utils::Compression::ZLib::Compress(test);
|
||||||
|
std::string decompressed = Utils::Compression::ZLib::Decompress(compressed);
|
||||||
|
|
||||||
|
if (test != decompressed)
|
||||||
|
{
|
||||||
|
printf("Error\n");
|
||||||
|
printf("Compressing %d bytes and decompressing failed!\n", test.size());
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
auto size = test.size();
|
||||||
|
for (unsigned int j = 0; j < size; ++j)
|
||||||
|
{
|
||||||
|
test.append(fmt::sprintf("%c", Utils::Cryptography::Rand::GenerateInt()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
printf("Success\n");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -12,6 +12,8 @@ namespace Components
|
|||||||
const char* GetName() { return "QuickPatch"; };
|
const char* GetName() { return "QuickPatch"; };
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
bool UnitTest();
|
||||||
|
|
||||||
static void UnlockStats();
|
static void UnlockStats();
|
||||||
static void OnShutdown(Callback* callback);
|
static void OnShutdown(Callback* callback);
|
||||||
|
|
||||||
|
@ -22,6 +22,7 @@ namespace Game
|
|||||||
Cmd_AddCommand_t Cmd_AddCommand = (Cmd_AddCommand_t)0x470090;
|
Cmd_AddCommand_t Cmd_AddCommand = (Cmd_AddCommand_t)0x470090;
|
||||||
Cmd_AddServerCommand_t Cmd_AddServerCommand = (Cmd_AddServerCommand_t)0x4DCE00;
|
Cmd_AddServerCommand_t Cmd_AddServerCommand = (Cmd_AddServerCommand_t)0x4DCE00;
|
||||||
Cmd_ExecuteSingleCommand_t Cmd_ExecuteSingleCommand = (Cmd_ExecuteSingleCommand_t)0x609540;
|
Cmd_ExecuteSingleCommand_t Cmd_ExecuteSingleCommand = (Cmd_ExecuteSingleCommand_t)0x609540;
|
||||||
|
Com_ClientPacketEvent_t Com_ClientPacketEvent = (Com_ClientPacketEvent_t)0x49F0B0;
|
||||||
|
|
||||||
Com_Error_t Com_Error = (Com_Error_t)0x4B22D0;
|
Com_Error_t Com_Error = (Com_Error_t)0x4B22D0;
|
||||||
Com_Printf_t Com_Printf = (Com_Printf_t)0x402500;
|
Com_Printf_t Com_Printf = (Com_Printf_t)0x402500;
|
||||||
@ -92,6 +93,8 @@ namespace Game
|
|||||||
Image_LoadFromFileWithReader_t Image_LoadFromFileWithReader = (Image_LoadFromFileWithReader_t)0x53ABF0;
|
Image_LoadFromFileWithReader_t Image_LoadFromFileWithReader = (Image_LoadFromFileWithReader_t)0x53ABF0;
|
||||||
Image_Release_t Image_Release = (Image_Release_t)0x51F010;
|
Image_Release_t Image_Release = (Image_Release_t)0x51F010;
|
||||||
|
|
||||||
|
LargeLocalInit_t LargeLocalInit = (LargeLocalInit_t)0x4A62A0;
|
||||||
|
|
||||||
Menus_CloseAll_t Menus_CloseAll = (Menus_CloseAll_t)0x4BA5B0;
|
Menus_CloseAll_t Menus_CloseAll = (Menus_CloseAll_t)0x4BA5B0;
|
||||||
Menus_OpenByName_t Menus_OpenByName = (Menus_OpenByName_t)0x4CCE60;
|
Menus_OpenByName_t Menus_OpenByName = (Menus_OpenByName_t)0x4CCE60;
|
||||||
Menus_FindByName_t Menus_FindByName = (Menus_FindByName_t)0x487240;
|
Menus_FindByName_t Menus_FindByName = (Menus_FindByName_t)0x487240;
|
||||||
@ -115,6 +118,7 @@ namespace Game
|
|||||||
|
|
||||||
NET_AdrToString_t NET_AdrToString = (NET_AdrToString_t)0x469880;
|
NET_AdrToString_t NET_AdrToString = (NET_AdrToString_t)0x469880;
|
||||||
NET_CompareAdr_t NET_CompareAdr = (NET_CompareAdr_t)0x4D0AA0;
|
NET_CompareAdr_t NET_CompareAdr = (NET_CompareAdr_t)0x4D0AA0;
|
||||||
|
NET_Init_t NET_Init = (NET_Init_t)0x491860;
|
||||||
NET_IsLocalAddress_t NET_IsLocalAddress = (NET_IsLocalAddress_t)0x402BD0;
|
NET_IsLocalAddress_t NET_IsLocalAddress = (NET_IsLocalAddress_t)0x402BD0;
|
||||||
NET_StringToAdr_t NET_StringToAdr = (NET_StringToAdr_t)0x409010;
|
NET_StringToAdr_t NET_StringToAdr = (NET_StringToAdr_t)0x409010;
|
||||||
NET_OutOfBandPrint_t NET_OutOfBandPrint = (NET_OutOfBandPrint_t)0x4AEF00;
|
NET_OutOfBandPrint_t NET_OutOfBandPrint = (NET_OutOfBandPrint_t)0x4AEF00;
|
||||||
|
@ -45,6 +45,9 @@ namespace Game
|
|||||||
typedef void(__cdecl * Cmd_ExecuteSingleCommand_t)(int localClientNum, int controllerIndex, const char* cmd);
|
typedef void(__cdecl * Cmd_ExecuteSingleCommand_t)(int localClientNum, int controllerIndex, const char* cmd);
|
||||||
extern Cmd_ExecuteSingleCommand_t Cmd_ExecuteSingleCommand;
|
extern Cmd_ExecuteSingleCommand_t Cmd_ExecuteSingleCommand;
|
||||||
|
|
||||||
|
typedef void(__cdecl * Com_ClientPacketEvent_t)();
|
||||||
|
extern Com_ClientPacketEvent_t Com_ClientPacketEvent;
|
||||||
|
|
||||||
typedef void(__cdecl * Com_Error_t)(int type, char* message, ...);
|
typedef void(__cdecl * Com_Error_t)(int type, char* message, ...);
|
||||||
extern Com_Error_t Com_Error;
|
extern Com_Error_t Com_Error;
|
||||||
|
|
||||||
@ -218,6 +221,9 @@ namespace Game
|
|||||||
typedef void(__cdecl * Image_Release_t)(GfxImage* image);
|
typedef void(__cdecl * Image_Release_t)(GfxImage* image);
|
||||||
extern Image_Release_t Image_Release;
|
extern Image_Release_t Image_Release;
|
||||||
|
|
||||||
|
typedef void(__cdecl * LargeLocalInit_t)();
|
||||||
|
extern LargeLocalInit_t LargeLocalInit;
|
||||||
|
|
||||||
typedef void(__cdecl * Menus_CloseAll_t)(UiContext *dc);
|
typedef void(__cdecl * Menus_CloseAll_t)(UiContext *dc);
|
||||||
extern Menus_CloseAll_t Menus_CloseAll;
|
extern Menus_CloseAll_t Menus_CloseAll;
|
||||||
|
|
||||||
@ -278,6 +284,9 @@ namespace Game
|
|||||||
typedef bool(__cdecl * NET_CompareAdr_t)(netadr_t a, netadr_t b);
|
typedef bool(__cdecl * NET_CompareAdr_t)(netadr_t a, netadr_t b);
|
||||||
extern NET_CompareAdr_t NET_CompareAdr;
|
extern NET_CompareAdr_t NET_CompareAdr;
|
||||||
|
|
||||||
|
typedef void(__cdecl * NET_Init_t)();
|
||||||
|
extern NET_Init_t NET_Init;
|
||||||
|
|
||||||
typedef bool(__cdecl * NET_IsLocalAddress_t)(netadr_t adr);
|
typedef bool(__cdecl * NET_IsLocalAddress_t)(netadr_t adr);
|
||||||
extern NET_IsLocalAddress_t NET_IsLocalAddress;
|
extern NET_IsLocalAddress_t NET_IsLocalAddress;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user