A couple more tests for BTreeDamageVisitorTests

This commit is contained in:
Joe Thornber 2013-05-13 14:09:18 +01:00
parent 185f0fc758
commit 4d2c3a7c14

View File

@ -270,7 +270,7 @@ namespace {
//----------------------------------------------------------------
TEST_F(BTreeDamageVisitorTests, visiting_an_empty_tree)
TEST_F(BTreeDamageVisitorTests, an_empty_tree)
{
expect_no_values();
expect_no_damage();
@ -278,7 +278,7 @@ TEST_F(BTreeDamageVisitorTests, visiting_an_empty_tree)
run();
}
TEST_F(BTreeDamageVisitorTests, visiting_a_tree_with_a_trashed_root)
TEST_F(BTreeDamageVisitorTests, tree_with_a_trashed_root)
{
trash_block(tree_->get_root());
@ -288,7 +288,7 @@ TEST_F(BTreeDamageVisitorTests, visiting_a_tree_with_a_trashed_root)
run();
}
TEST_F(BTreeDamageVisitorTests, visiting_a_populated_tree_with_no_damage)
TEST_F(BTreeDamageVisitorTests, populated_tree_with_no_damage)
{
insert_values(10000);
@ -298,7 +298,7 @@ TEST_F(BTreeDamageVisitorTests, visiting_a_populated_tree_with_no_damage)
run();
}
TEST_F(BTreeDamageVisitorTests, visiting_a_populated_tree_with_a_damaged_leaf_node)
TEST_F(BTreeDamageVisitorTests, populated_tree_with_a_damaged_leaf_node)
{
insert_values(10000);
commit();
@ -318,7 +318,7 @@ TEST_F(BTreeDamageVisitorTests, visiting_a_populated_tree_with_a_damaged_leaf_no
run();
}
TEST_F(BTreeDamageVisitorTests, visiting_a_populated_tree_with_a_sequence_of_damaged_leaf_nodes)
TEST_F(BTreeDamageVisitorTests, populated_tree_with_a_sequence_of_damaged_leaf_nodes)
{
insert_values(10000);
commit();
@ -345,4 +345,43 @@ TEST_F(BTreeDamageVisitorTests, visiting_a_populated_tree_with_a_sequence_of_dam
run();
}
TEST_F(BTreeDamageVisitorTests, damaged_first_leaf)
{
insert_values(10000);
commit();
vector<typename node_info::ptr> const &nodes = get_nodes();
unsigned target = 0;
unsigned i = node_index_of_nth_leaf(nodes, target);
block_address end = *nodes[i]->keys.end_;
trash_block(nodes[i]->b);
expect_damage(0, range<block_address>(0ull, end));
expect_value_range(end, 10000);
run();
}
TEST_F(BTreeDamageVisitorTests, damaged_last_leaf)
{
insert_values(10000);
commit();
vector<typename node_info::ptr> const &nodes = get_nodes();
unsigned nr_leaf = get_nr_leaf_nodes(nodes);
unsigned target = nr_leaf - 1;
unsigned i = node_index_of_nth_leaf(nodes, target);
block_address begin = *nodes[i]->keys.begin_;
trash_block(nodes[i]->b);
expect_value_range(0, begin);
expect_damage(0, range<block_address>(begin));
run();
}
//----------------------------------------------------------------