]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[2750] Check that having 2 nodes in subtree doesn't cause node fusion
authorMukund Sivaraman <muks@isc.org>
Fri, 30 Aug 2013 01:51:17 +0000 (07:21 +0530)
committerMukund Sivaraman <muks@isc.org>
Fri, 30 Aug 2013 01:51:17 +0000 (07:21 +0530)
src/lib/datasrc/tests/memory/domaintree_unittest.cc

index 9373b1f6ea8d28fc43068d73534ab6ea6983e552..ae0073bd7c6502db5a1afec59c5d3aaa30c48839 100644 (file)
@@ -482,11 +482,18 @@ TEST_F(DomainTreeTest, nodeFusion) {
               dtree_expose_empty_node.find(Name("w.y.d.e.f"), &cdtnode));
     EXPECT_EQ(Name("w.y"), cdtnode->getName());
 
-    // Now, delete "x" and "z" nodes.
+    // Now, delete "x" node.
     EXPECT_EQ(TestDomainTree::EXACTMATCH,
               dtree_expose_empty_node.find(Name("x.d.e.f"), &dtnode));
     dtree_expose_empty_node.remove(mem_sgmt_, dtnode, deleteData);
 
+    // "d.e.f" should still exist independently as "w.y" still has a
+    // left or right child.
+    EXPECT_EQ(TestDomainTree::EXACTMATCH,
+              dtree_expose_empty_node.find(Name("d.e.f"), &cdtnode));
+    EXPECT_EQ(Name("d.e.f"), cdtnode->getName());
+
+    // Now, delete "z" node.
     EXPECT_EQ(TestDomainTree::EXACTMATCH,
               dtree_expose_empty_node.find(Name("z.d.e.f"), &dtnode));
     dtree_expose_empty_node.remove(mem_sgmt_, dtnode, deleteData);