BIND 10 trac2092, updated. bb01feca34b77f95e67ceb105ea332774d513ddd [2092] Add a testcase for checking if FLAG_SUBTREE_ROOT is being set properly
BIND 10 source code commits
bind10-changes at lists.isc.org
Mon Jul 23 04:50:04 UTC 2012
The branch, trac2092 has been updated
via bb01feca34b77f95e67ceb105ea332774d513ddd (commit)
from af11f98278365797d64b4a3a607051db96c7ac51 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit bb01feca34b77f95e67ceb105ea332774d513ddd
Author: Mukund Sivaraman <muks at isc.org>
Date: Mon Jul 23 10:15:30 2012 +0530
[2092] Add a testcase for checking if FLAG_SUBTREE_ROOT is being set properly
-----------------------------------------------------------------------
Summary of changes:
src/lib/datasrc/tests/rbtree_unittest.cc | 31 ++++++++++++++++++++++++++++++
1 file changed, 31 insertions(+)
-----------------------------------------------------------------------
diff --git a/src/lib/datasrc/tests/rbtree_unittest.cc b/src/lib/datasrc/tests/rbtree_unittest.cc
index 2fd696f..4abfe5e 100644
--- a/src/lib/datasrc/tests/rbtree_unittest.cc
+++ b/src/lib/datasrc/tests/rbtree_unittest.cc
@@ -147,6 +147,37 @@ TEST_F(RBTreeTest, insertNames) {
EXPECT_EQ(RBTree<int>::SUCCESS, rbtree.insert(Name("n"), &rbtnode));
}
+TEST_F(RBTreeTest, subTreeRoot) {
+ // This is a testcase for a particular issue that went unchecked in
+ // #2089's implementation, but was fixed in #2092. The issue was
+ // that when a node was fissioned, FLAG_SUBTREE_ROOT was not being
+ // copied correctly.
+
+ EXPECT_EQ(RBTree<int>::ALREADYEXISTS, rbtree_expose_empty_node.insert(Name("d.e.f"),
+ &rbtnode));
+ EXPECT_EQ(RBTree<int>::SUCCESS, rbtree_expose_empty_node.insert(Name("."), &rbtnode));
+ EXPECT_EQ(RBTree<int>::SUCCESS, rbtree_expose_empty_node.insert(Name("example.com"), &rbtnode));
+ EXPECT_EQ(RBTree<int>::ALREADYEXISTS, rbtree_expose_empty_node.insert(Name("example.com"), &rbtnode));
+ EXPECT_EQ(RBTree<int>::SUCCESS, rbtree_expose_empty_node.insert(Name("k.e.f"), &rbtnode));
+
+ // "g.h" is not a subtree root
+ EXPECT_EQ(RBTree<int>::EXACTMATCH, rbtree_expose_empty_node.find(Name("g.h"),
+ &rbtnode));
+ EXPECT_FALSE(rbtnode->getFlag(RBNode<int>::FLAG_SUBTREE_ROOT));
+
+ // fission the node "g.h"
+ EXPECT_EQ(RBTree<int>::ALREADYEXISTS, rbtree_expose_empty_node.insert(Name("h"), &rbtnode));
+
+ // the node "h" (h.down_ -> "g") should not be a subtree root. "g"
+ // should be a subtree root.
+ EXPECT_FALSE(rbtnode->getFlag(RBNode<int>::FLAG_SUBTREE_ROOT));
+
+ // "g.h" should be a subtree root now.
+ EXPECT_EQ(RBTree<int>::EXACTMATCH, rbtree_expose_empty_node.find(Name("g.h"),
+ &rbtnode));
+ EXPECT_TRUE(rbtnode->getFlag(RBNode<int>::FLAG_SUBTREE_ROOT));
+}
+
TEST_F(RBTreeTest, findName) {
// find const rbtnode
// exact match
More information about the bind10-changes
mailing list