1
1
Fork 0
mirror of https://github.com/oxen-io/lokinet synced 2023-12-14 06:53:00 +01:00
lokinet/test/dht_unittest.cpp

72 lines
1.3 KiB
C++
Raw Normal View History

2018-06-14 16:04:42 +02:00
#include <gtest/gtest.h>
#include <llarp/dht.hpp>
using Key_t = llarp::dht::Key_t;
2018-06-14 16:04:42 +02:00
class KademliaDHTTest : public ::testing::Test
{
public:
KademliaDHTTest()
{
}
~KademliaDHTTest()
{
}
void
SetUp()
{
us.Fill(16);
nodes = new llarp::dht::Bucket< llarp::dht::RCNode >(us);
2018-06-14 16:04:42 +02:00
size_t numNodes = 10;
byte_t fill = 1;
while(numNodes)
{
llarp::dht::RCNode n;
2018-06-14 16:04:42 +02:00
n.ID.Fill(fill);
nodes->PutNode(n);
--numNodes;
++fill;
}
}
void
TearDown()
{
delete nodes;
}
llarp::dht::Bucket< llarp::dht::RCNode >* nodes = nullptr;
llarp::dht::Key_t us;
2018-06-14 16:04:42 +02:00
};
TEST_F(KademliaDHTTest, TestBucketFindClosest)
{
llarp::dht::Key_t result;
llarp::dht::Key_t target;
llarp::dht::Key_t oldResult;
2018-06-14 16:04:42 +02:00
target.Fill(5);
ASSERT_TRUE(nodes->FindClosest(target, result));
ASSERT_TRUE(target == result);
oldResult = result;
target.Fill(0xf5);
ASSERT_TRUE(nodes->FindClosest(target, result));
ASSERT_TRUE(oldResult == result);
};
TEST_F(KademliaDHTTest, TestBucketRandomzied)
{
size_t moreNodes = 100;
while(moreNodes--)
{
llarp::dht::RCNode n;
2018-06-14 16:04:42 +02:00
n.ID.Randomize();
nodes->PutNode(n);
}
llarp::dht::Key_t result;
llarp::dht::Key_t target;
llarp::dht::Key_t oldResult;
2018-06-14 16:04:42 +02:00
target.Randomize();
ASSERT_TRUE(nodes->FindClosest(target, result));
};