summaryrefslogtreecommitdiff
path: root/deps/interval_tree
diff options
context:
space:
mode:
authorluwenpeng <[email protected]>2024-03-21 19:27:41 +0800
committerluwenpeng <[email protected]>2024-03-21 19:27:41 +0800
commit2ad811f68dd02c80464e38338f0282696bb6dac4 (patch)
tree7e1e4d46a6d68874d8759245679f854c933a635a /deps/interval_tree
parent36b9a8282ac00808e5ae60328ee80bd91348beed (diff)
Add tcp reassembly
Diffstat (limited to 'deps/interval_tree')
-rw-r--r--deps/interval_tree/itree.cpp3
-rw-r--r--deps/interval_tree/itree.h2
-rw-r--r--deps/interval_tree/test/gtest_interval_tree.cpp50
3 files changed, 5 insertions, 50 deletions
diff --git a/deps/interval_tree/itree.cpp b/deps/interval_tree/itree.cpp
index 5bb68ef..9d7bf74 100644
--- a/deps/interval_tree/itree.cpp
+++ b/deps/interval_tree/itree.cpp
@@ -399,8 +399,7 @@ int itree_remove(itree_t *tree, interval_t *interval)
{
return 0;
}
- // else if (interval_equal(it->interval, interval))
- else if (it->interval->low >= interval->low && it->interval->high <= interval->high)
+ else if (interval_equal(it->interval, interval))
{
break;
}
diff --git a/deps/interval_tree/itree.h b/deps/interval_tree/itree.h
index 505e272..d9abbe1 100644
--- a/deps/interval_tree/itree.h
+++ b/deps/interval_tree/itree.h
@@ -54,11 +54,9 @@ typedef void (*rel_f)(void *p);
/* Interval tree functions */
itree_t *itree_new(dup_f dup, rel_f rel);
void itree_delete(itree_t *tree);
-// Find the first interval containing the specified interval
interval_t *itree_find(itree_t *tree, interval_t *interval);
ilist_t *itree_findall(itree_t *tree, interval_t *interval);
int itree_insert(itree_t *tree, interval_t *interval);
-// Delete the first interval contained by the specified interval
int itree_remove(itree_t *tree, interval_t *interval);
size_t itree_size(itree_t *tree);
diff --git a/deps/interval_tree/test/gtest_interval_tree.cpp b/deps/interval_tree/test/gtest_interval_tree.cpp
index 417c275..70c26ca 100644
--- a/deps/interval_tree/test/gtest_interval_tree.cpp
+++ b/deps/interval_tree/test/gtest_interval_tree.cpp
@@ -113,7 +113,7 @@ TEST(INTERVAL_TREE, FIND)
#endif
#if 1
-TEST(INTERVAL_TREE, DELETE1)
+TEST(INTERVAL_TREE, DELETE)
{
itree_t *tree;
interval_t query;
@@ -151,58 +151,16 @@ TEST(INTERVAL_TREE, DELETE1)
// delete
query = {
- .low = 5,
- .high = 9,
- };
- EXPECT_TRUE(itree_remove(tree, &query) == 1);
- EXPECT_TRUE(itree_size(tree) == 0);
-
- itree_delete(tree);
-}
-#endif
-
-#if 1
-TEST(INTERVAL_TREE, DELETE2)
-{
- itree_t *tree;
- interval_t query;
- interval_t segment;
-
- // new
- tree = itree_new(my_dup, my_rel);
- EXPECT_TRUE(tree != nullptr);
- EXPECT_TRUE(itree_size(tree) == 0);
-
- // insert
- segment = {
- .low = 5,
- .high = 9,
- .data = (void *)"Hello",
- };
- EXPECT_TRUE(itree_insert(tree, &segment) == 1);
- EXPECT_TRUE(itree_size(tree) == 1);
-
- // insert
- segment = {
- .low = 15,
- .high = 19,
- .data = (void *)"World",
- };
- EXPECT_TRUE(itree_insert(tree, &segment) == 1);
- EXPECT_TRUE(itree_size(tree) == 2);
-
- // delete
- query = {
.low = 1,
.high = 20,
};
- EXPECT_TRUE(itree_remove(tree, &query) == 1);
+ EXPECT_TRUE(itree_remove(tree, &query) == 0);
EXPECT_TRUE(itree_size(tree) == 1);
// delete
query = {
- .low = 1,
- .high = 20,
+ .low = 5,
+ .high = 9,
};
EXPECT_TRUE(itree_remove(tree, &query) == 1);
EXPECT_TRUE(itree_size(tree) == 0);