mirror of https://github.com/oxen-io/lokinet
add unit test for decaying hash set
This commit is contained in:
parent
a9c9fe9c24
commit
562f3f07ab
|
@ -18,6 +18,7 @@ set(LIB_UTIL_SRC
|
|||
util/common.cpp
|
||||
util/encode.cpp
|
||||
util/endian.cpp
|
||||
util/decaying_hashset.cpp
|
||||
util/fs.cpp
|
||||
util/json.cpp
|
||||
util/logging/android_logger.cpp
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
#include <util/decaying_hashset.hpp>
|
|
@ -45,7 +45,7 @@ namespace llarp
|
|||
auto itr = m_Values.begin();
|
||||
while(itr != m_Values.end())
|
||||
{
|
||||
if(itr->second >= now)
|
||||
if(itr->second <= now)
|
||||
itr = m_Values.erase(itr);
|
||||
else
|
||||
++itr;
|
||||
|
|
|
@ -38,6 +38,7 @@ list(APPEND TEST_SRC
|
|||
util/test_llarp_util_aligned.cpp
|
||||
util/test_llarp_util_bencode.cpp
|
||||
util/test_llarp_util_bits.cpp
|
||||
util/test_llarp_util_decaying_hashset.cpp
|
||||
util/test_llarp_util_encode.cpp
|
||||
util/test_llarp_util_printer.cpp
|
||||
util/test_llarp_utils_str.cpp
|
||||
|
|
|
@ -0,0 +1,43 @@
|
|||
#include <util/decaying_hashset.hpp>
|
||||
#include <router_id.hpp>
|
||||
#include <gtest/gtest.h>
|
||||
|
||||
struct DecayingHashSetTest : public ::testing::Test
|
||||
{
|
||||
};
|
||||
|
||||
TEST_F(DecayingHashSetTest, TestDecayDeterministc)
|
||||
{
|
||||
static constexpr llarp_time_t timeout = 5;
|
||||
static constexpr llarp_time_t now = 1;
|
||||
llarp::util::DecayingHashSet< llarp::RouterID > hashset(timeout);
|
||||
const llarp::RouterID zero;
|
||||
ASSERT_TRUE(zero.IsZero());
|
||||
ASSERT_FALSE(hashset.Contains(zero));
|
||||
ASSERT_TRUE(hashset.Insert(zero, now));
|
||||
ASSERT_TRUE(hashset.Contains(zero));
|
||||
hashset.Decay(now + 1);
|
||||
ASSERT_TRUE(hashset.Contains(zero));
|
||||
hashset.Decay(now + timeout);
|
||||
ASSERT_FALSE(hashset.Contains(zero));
|
||||
hashset.Decay(now + timeout + 1);
|
||||
ASSERT_FALSE(hashset.Contains(zero));
|
||||
}
|
||||
|
||||
TEST_F(DecayingHashSetTest, TestDecay)
|
||||
{
|
||||
static constexpr llarp_time_t timeout = 5;
|
||||
const llarp_time_t now = llarp::time_now_ms();
|
||||
llarp::util::DecayingHashSet< llarp::RouterID > hashset(timeout);
|
||||
const llarp::RouterID zero;
|
||||
ASSERT_TRUE(zero.IsZero());
|
||||
ASSERT_FALSE(hashset.Contains(zero));
|
||||
ASSERT_TRUE(hashset.Insert(zero));
|
||||
ASSERT_TRUE(hashset.Contains(zero));
|
||||
hashset.Decay(now + 1);
|
||||
ASSERT_TRUE(hashset.Contains(zero));
|
||||
hashset.Decay(now + timeout);
|
||||
ASSERT_FALSE(hashset.Contains(zero));
|
||||
hashset.Decay(now + timeout + 1);
|
||||
ASSERT_FALSE(hashset.Contains(zero));
|
||||
}
|
Loading…
Reference in New Issue