void Expect(const unsigned char *pOutput, int OutputSize) { static CUuid TEEHISTORIAN_UUID = CalculateUuid("*****@*****.**"); static const char PREFIX1[] = "{\"comment\":\"[email protected]\",\"version\":\"2\",\"game_uuid\":\"a1eb7182-796e-3b3e-941d-38ca71b2a4a8\",\"server_version\":\"DDNet test\",\"start_time\":\""; static const char PREFIX2[] = "\",\"server_name\":\"server name\",\"server_port\":\"8303\",\"game_type\":\"game type\",\"map_name\":\"Kobra 3 Solo\",\"map_size\":\"903514\",\"map_sha256\":\"0123456789012345678901234567890123456789012345678901234567890123\",\"map_crc\":\"eceaf25c\",\"config\":{},\"tuning\":{},\"uuids\":["; static const char PREFIX3[] = "]}"; char aTimeBuf[64]; str_timestamp_ex(m_GameInfo.m_StartTime, aTimeBuf, sizeof(aTimeBuf), "%Y-%m-%dT%H:%M:%S%z"); CPacker Buffer; Buffer.Reset(); Buffer.AddRaw(&TEEHISTORIAN_UUID, sizeof(TEEHISTORIAN_UUID)); Buffer.AddRaw(PREFIX1, str_length(PREFIX1)); Buffer.AddRaw(aTimeBuf, str_length(aTimeBuf)); Buffer.AddRaw(PREFIX2, str_length(PREFIX2)); for(int i = 0; i < m_UuidManager.NumUuids(); i++) { char aBuf[64]; str_format(aBuf, sizeof(aBuf), "%s\"%s\"", i == 0 ? "" : ",", m_UuidManager.GetName(OFFSET_UUID + i)); Buffer.AddRaw(aBuf, str_length(aBuf)); } Buffer.AddRaw(PREFIX3, str_length(PREFIX3)); Buffer.AddRaw("", 1); Buffer.AddRaw(pOutput, OutputSize); ASSERT_FALSE(Buffer.Error()); ExpectFull(Buffer.Data(), Buffer.Size()); }
TeeHistorian() { mem_zero(&m_Config, sizeof(m_Config)); #define MACRO_CONFIG_INT(Name,ScriptName,Def,Min,Max,Save,Desc) \ m_Config.m_##Name = (Def); #define MACRO_CONFIG_STR(Name,ScriptName,Len,Def,Save,Desc) \ str_copy(m_Config.m_##Name, (Def), sizeof(m_Config.m_##Name)); #include <engine/shared/config_variables.h> #undef MACRO_CONFIG_STR #undef MACRO_CONFIG_INT RegisterUuids(&m_UuidManager); RegisterTeehistorianUuids(&m_UuidManager); RegisterGameUuids(&m_UuidManager); mem_zero(&m_GameInfo, sizeof(m_GameInfo)); m_GameInfo.m_GameUuid = CalculateUuid("*****@*****.**"); m_GameInfo.m_pServerVersion = "DDNet test"; m_GameInfo.m_StartTime = time(0); m_GameInfo.m_pServerName = "server name"; m_GameInfo.m_ServerPort = 8303; m_GameInfo.m_pGameType = "game type"; m_GameInfo.m_pMapName = "Kobra 3 Solo"; m_GameInfo.m_MapSize = 903514; m_GameInfo.m_MapCrc = 0xeceaf25c; m_GameInfo.m_pConfig = &m_Config; m_GameInfo.m_pTuning = &m_Tuning; m_GameInfo.m_pUuids = &m_UuidManager; Reset(&m_GameInfo); }