/
dieoska
/
ddnet
Обзор
Документация
Войти
/
dieoska
/
ddnet
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/test/serverbrowser_test.cpp
104 строки
4 KB
ChillerDragon
Add test suffix
22 ноя 2025, 16:34
22 ноя 2025, 16:34
7b943a4
Код
Авторство
О чём код?
#include "test.h" #include <base/system.h> #include <engine/client/serverbrowser_ping_cache.h> #include <engine/console.h> #include <engine/engine.h> #include <engine/shared/config.h> #include <engine/storage.h> #include <gtest/gtest.h> #include <memory> TEST(ServerBrowser, PingCache) { CTestInfo Info; Info.m_DeleteTestStorageFilesOnSuccess = true; auto pConsole = CreateConsole(CFGFLAG_CLIENT); std::unique_ptr<IStorage> pStorage = Info.CreateTestStorage(); ASSERT_NE(pStorage, nullptr) << "Error creating test storage"; auto pPingCache = std::unique_ptr<IServerBrowserPingCache>(CreateServerBrowserPingCache(pConsole.get(), pStorage.get())); NETADDR Localhost4, Localhost6, OtherLocalhost4, OtherLocalhost6; ASSERT_FALSE(net_addr_from_str(&Localhost4, "127.0.0.1:8303")); ASSERT_FALSE(net_addr_from_str(&Localhost6, "[::1]:8304")); ASSERT_FALSE(net_addr_from_str(&OtherLocalhost4, "127.0.0.1:8305")); ASSERT_FALSE(net_addr_from_str(&OtherLocalhost6, "[::1]:8306")); EXPECT_LT(net_addr_comp(&Localhost4, &Localhost6), 0); NETADDR aLocalhostBoth[2] = {Localhost4, Localhost6}; EXPECT_EQ(pPingCache->NumEntries(), 0); EXPECT_EQ(pPingCache->GetPing(&Localhost4, 1), -1); EXPECT_EQ(pPingCache->GetPing(&Localhost6, 1), -1); EXPECT_EQ(pPingCache->GetPing(aLocalhostBoth, 2), -1); EXPECT_EQ(pPingCache->GetPing(&OtherLocalhost4, 1), -1); EXPECT_EQ(pPingCache->GetPing(&OtherLocalhost6, 1), -1); pPingCache->Load(); EXPECT_EQ(pPingCache->NumEntries(), 0); EXPECT_EQ(pPingCache->GetPing(&Localhost4, 1), -1); EXPECT_EQ(pPingCache->GetPing(&Localhost6, 1), -1); EXPECT_EQ(pPingCache->GetPing(aLocalhostBoth, 2), -1); EXPECT_EQ(pPingCache->GetPing(&OtherLocalhost4, 1), -1); EXPECT_EQ(pPingCache->GetPing(&OtherLocalhost6, 1), -1); // Newer pings overwrite older. pPingCache->CachePing(Localhost4, 123); pPingCache->CachePing(Localhost4, 234); pPingCache->CachePing(Localhost4, 345); pPingCache->CachePing(Localhost4, 456); pPingCache->CachePing(Localhost4, 567); pPingCache->CachePing(Localhost4, 678); pPingCache->CachePing(Localhost4, 789); pPingCache->CachePing(Localhost4, 890); pPingCache->CachePing(Localhost4, 901); pPingCache->CachePing(Localhost4, 135); pPingCache->CachePing(Localhost4, 246); pPingCache->CachePing(Localhost4, 357); pPingCache->CachePing(Localhost4, 468); pPingCache->CachePing(Localhost4, 579); pPingCache->CachePing(Localhost4, 680); pPingCache->CachePing(Localhost4, 791); pPingCache->CachePing(Localhost4, 802); pPingCache->CachePing(Localhost4, 913); EXPECT_EQ(pPingCache->NumEntries(), 1); EXPECT_EQ(pPingCache->GetPing(&Localhost4, 1), 913); EXPECT_EQ(pPingCache->GetPing(&Localhost6, 1), -1); EXPECT_EQ(pPingCache->GetPing(aLocalhostBoth, 2), 913); EXPECT_EQ(pPingCache->GetPing(&OtherLocalhost4, 1), 913); EXPECT_EQ(pPingCache->GetPing(&OtherLocalhost6, 1), -1); pPingCache->CachePing(Localhost4, 234); pPingCache->CachePing(Localhost6, 345); EXPECT_EQ(pPingCache->NumEntries(), 2); EXPECT_EQ(pPingCache->GetPing(&Localhost4, 1), 234); EXPECT_EQ(pPingCache->GetPing(&Localhost6, 1), 345); EXPECT_EQ(pPingCache->GetPing(aLocalhostBoth, 2), 234); EXPECT_EQ(pPingCache->GetPing(&OtherLocalhost4, 1), 234); EXPECT_EQ(pPingCache->GetPing(&OtherLocalhost6, 1), 345); // Port doesn't matter for overwriting. pPingCache->CachePing(Localhost4, 1337); EXPECT_EQ(pPingCache->NumEntries(), 2); EXPECT_EQ(pPingCache->GetPing(&Localhost4, 1), 1337); EXPECT_EQ(pPingCache->GetPing(&Localhost6, 1), 345); EXPECT_EQ(pPingCache->GetPing(aLocalhostBoth, 2), 345); EXPECT_EQ(pPingCache->GetPing(&OtherLocalhost4, 1), 1337); EXPECT_EQ(pPingCache->GetPing(&OtherLocalhost6, 1), 345); pPingCache.reset(CreateServerBrowserPingCache(pConsole.get(), pStorage.get())); // Persistence. pPingCache->Load(); EXPECT_EQ(pPingCache->NumEntries(), 2); EXPECT_EQ(pPingCache->GetPing(&Localhost4, 1), 1337); EXPECT_EQ(pPingCache->GetPing(&Localhost6, 1), 345); EXPECT_EQ(pPingCache->GetPing(aLocalhostBoth, 2), 345); EXPECT_EQ(pPingCache->GetPing(&OtherLocalhost4, 1), 1337); EXPECT_EQ(pPingCache->GetPing(&OtherLocalhost6, 1), 345); }