This repository has been archived on 2025-09-14. You can view files and clone it, but cannot push or open issues or pull requests.
Files
stellar-stellar/deps/dablooms/test/gtest_dablooms.cpp

63 lines
1.8 KiB
C++

#include <gtest/gtest.h>
#include "dablooms.h"
struct packet_idetify
{
unsigned int tcp_seq;
unsigned int tcp_ack;
unsigned short sport;
unsigned short dport;
unsigned short checksum;
unsigned short ip_id;
unsigned int ip_src;
unsigned int ip_dst;
} __attribute__((packed, aligned(1)));
struct config
{
int enable;
unsigned int capacity;
double error_rate;
int expiry_time;
} config = {
.enable = 1,
.capacity = 1000000,
.error_rate = 0.00001,
.expiry_time = 3,
};
struct packet_idetify idetify = {
.tcp_seq = 2172673142,
.tcp_ack = 2198097831,
.sport = 46582,
.dport = 443,
.checksum = 0x2c4b,
.ip_id = 65535,
.ip_src = 123456,
.ip_dst = 789000,
};
TEST(DABLOOMS, TEST)
{
struct expiry_dablooms_handle *handle = expiry_dablooms_new(config.capacity, config.error_rate, 1, config.expiry_time);
EXPECT_TRUE(handle != nullptr);
EXPECT_TRUE(expiry_dablooms_search(handle, (const char *)&idetify, sizeof(idetify), 1) != 1); // no exist
EXPECT_TRUE(expiry_dablooms_add(handle, (const char *)&idetify, sizeof(idetify), 1) == 0); // add
EXPECT_TRUE(expiry_dablooms_search(handle, (const char *)&idetify, sizeof(idetify), 1) == 1); // exist
EXPECT_TRUE(expiry_dablooms_search(handle, (const char *)&idetify, sizeof(idetify), 2) == 1); // exist
EXPECT_TRUE(expiry_dablooms_search(handle, (const char *)&idetify, sizeof(idetify), 3) == 1); // exist
EXPECT_TRUE(expiry_dablooms_search(handle, (const char *)&idetify, sizeof(idetify), 4) == 0); // not exist
EXPECT_TRUE(expiry_dablooms_search(handle, (const char *)&idetify, sizeof(idetify), 5) == 0); // not exist
expiry_dablooms_free(handle);
}
int main(int argc, char **argv)
{
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}