summaryrefslogtreecommitdiff
path: root/deps/interval_tree
diff options
context:
space:
mode:
authorluwenpeng <[email protected]>2024-03-25 17:30:48 +0800
committerluwenpeng <[email protected]>2024-03-25 17:30:48 +0800
commit5b92d6d8de214f92f5cc0babcaa54ddc2caf2f56 (patch)
treeaac7b4a6a93ad921796735b44da0fd79c5efecfd /deps/interval_tree
parent2ad811f68dd02c80464e38338f0282696bb6dac4 (diff)
Add tcp reassembly test case
Diffstat (limited to 'deps/interval_tree')
-rw-r--r--deps/interval_tree/interval.cpp2
-rw-r--r--deps/interval_tree/test/gtest_interval_tree.cpp27
2 files changed, 19 insertions, 10 deletions
diff --git a/deps/interval_tree/interval.cpp b/deps/interval_tree/interval.cpp
index bdcebaa..4fc7ddf 100644
--- a/deps/interval_tree/interval.cpp
+++ b/deps/interval_tree/interval.cpp
@@ -67,5 +67,5 @@ int interval_overlap(const interval_t *i1, const interval_t *i2)
int interval_equal(const interval_t *i1, const interval_t *i2)
{
- return i1->low == i2->low && i1->high == i2->high;
+ return i1->low == i2->low && i1->high == i2->high && i1->data == i2->data;
}
diff --git a/deps/interval_tree/test/gtest_interval_tree.cpp b/deps/interval_tree/test/gtest_interval_tree.cpp
index 70c26ca..7fe0fbc 100644
--- a/deps/interval_tree/test/gtest_interval_tree.cpp
+++ b/deps/interval_tree/test/gtest_interval_tree.cpp
@@ -4,15 +4,11 @@
void *my_dup(void *p)
{
- return p ? strdup((const char *)p) : NULL;
+ return p;
}
void my_rel(void *p)
{
- if (p)
- {
- free(p);
- }
}
// find overlap
@@ -23,6 +19,7 @@ TEST(INTERVAL_TREE, FIND)
interval_t *result;
interval_t query;
interval_t segment;
+ void *data = (void *)"Hello";
// new
tree = itree_new(my_dup, my_rel);
@@ -33,7 +30,7 @@ TEST(INTERVAL_TREE, FIND)
segment = {
.low = 5,
.high = 9,
- .data = (void *)"Hello",
+ .data = data,
};
EXPECT_TRUE(itree_insert(tree, &segment) == 1);
EXPECT_TRUE(itree_size(tree) == 1);
@@ -118,6 +115,7 @@ TEST(INTERVAL_TREE, DELETE)
itree_t *tree;
interval_t query;
interval_t segment;
+ void *data = (void *)"Hello";
// new
tree = itree_new(my_dup, my_rel);
@@ -128,7 +126,7 @@ TEST(INTERVAL_TREE, DELETE)
segment = {
.low = 5,
.high = 9,
- .data = (void *)"Hello",
+ .data = data,
};
EXPECT_TRUE(itree_insert(tree, &segment) == 1);
EXPECT_TRUE(itree_size(tree) == 1);
@@ -145,6 +143,7 @@ TEST(INTERVAL_TREE, DELETE)
query = {
.low = 9,
.high = 9,
+ .data = data,
};
EXPECT_TRUE(itree_remove(tree, &query) == 0);
EXPECT_TRUE(itree_size(tree) == 1);
@@ -153,6 +152,7 @@ TEST(INTERVAL_TREE, DELETE)
query = {
.low = 1,
.high = 20,
+ .data = data,
};
EXPECT_TRUE(itree_remove(tree, &query) == 0);
EXPECT_TRUE(itree_size(tree) == 1);
@@ -161,6 +161,7 @@ TEST(INTERVAL_TREE, DELETE)
query = {
.low = 5,
.high = 9,
+ .data = data,
};
EXPECT_TRUE(itree_remove(tree, &query) == 1);
EXPECT_TRUE(itree_size(tree) == 0);
@@ -175,6 +176,8 @@ TEST(INTERVAL_TREE, REPEAT1)
itree_t *tree;
interval_t segment;
interval_t query;
+ void *data1 = (void *)"Hello";
+ void *data2 = (void *)"World";
// new
tree = itree_new(my_dup, my_rel);
@@ -185,7 +188,7 @@ TEST(INTERVAL_TREE, REPEAT1)
segment = {
.low = 5,
.high = 9,
- .data = (void *)"Hello",
+ .data = data1,
};
EXPECT_TRUE(itree_insert(tree, &segment) == 1);
EXPECT_TRUE(itree_size(tree) == 1);
@@ -194,7 +197,7 @@ TEST(INTERVAL_TREE, REPEAT1)
segment = {
.low = 5,
.high = 9,
- .data = (void *)"World",
+ .data = data2,
};
EXPECT_TRUE(itree_insert(tree, &segment) == 1);
EXPECT_TRUE(itree_size(tree) == 2);
@@ -203,9 +206,15 @@ TEST(INTERVAL_TREE, REPEAT1)
query = {
.low = 5,
.high = 9,
+ .data = data1,
};
EXPECT_TRUE(itree_remove(tree, &query) == 1);
EXPECT_TRUE(itree_size(tree) == 1);
+ query = {
+ .low = 5,
+ .high = 9,
+ .data = data2,
+ };
EXPECT_TRUE(itree_remove(tree, &query) == 1);
EXPECT_TRUE(itree_size(tree) == 0);