提交 c629a344 编写于 作者: R Rehas Sachdeva 提交者: Matthew Wilcox

radix tree test suite: Add test for radix_tree_clear_tags()

Assert that radix_tree_clear_tags() clears the tags on the passed node and
slot. Assert that the case where the radix tree has only one entry at index
zero and the node is NULL, is also handled.
Signed-off-by: NRehas Sachdeva <aquannie@gmail.com>
Signed-off-by: NMatthew Wilcox <mawilcox@microsoft.com>
上级 166bb1f5
...@@ -330,6 +330,34 @@ static void single_check(void) ...@@ -330,6 +330,34 @@ static void single_check(void)
item_kill_tree(&tree); item_kill_tree(&tree);
} }
void radix_tree_clear_tags_test(void)
{
unsigned long index;
struct radix_tree_node *node;
struct radix_tree_iter iter;
void **slot;
RADIX_TREE(tree, GFP_KERNEL);
item_insert(&tree, 0);
item_tag_set(&tree, 0, 0);
__radix_tree_lookup(&tree, 0, &node, &slot);
radix_tree_clear_tags(&tree, node, slot);
assert(item_tag_get(&tree, 0, 0) == 0);
for (index = 0; index < 1000; index++) {
item_insert(&tree, index);
item_tag_set(&tree, index, 0);
}
radix_tree_for_each_slot(slot, &tree, &iter, 0) {
radix_tree_clear_tags(&tree, iter.node, slot);
assert(item_tag_get(&tree, iter.index, 0) == 0);
}
item_kill_tree(&tree);
}
void tag_check(void) void tag_check(void)
{ {
single_check(); single_check();
...@@ -347,4 +375,5 @@ void tag_check(void) ...@@ -347,4 +375,5 @@ void tag_check(void)
thrash_tags(); thrash_tags();
rcu_barrier(); rcu_barrier();
printv(2, "after thrash_tags: %d allocated\n", nr_allocated); printv(2, "after thrash_tags: %d allocated\n", nr_allocated);
radix_tree_clear_tags_test();
} }
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册