From: Davidlohr Bueso Date: Tue, 30 Apr 2013 22:28:24 +0000 (-0700) Subject: rbtree_test: add extra rbtree integrity check X-Git-Tag: v3.10-rc1~143^2~32 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=4130f0efbfe5adb360328b777afa8e45f7e467f7;p=profile%2Fcommon%2Fkernel-common.git rbtree_test: add extra rbtree integrity check Account for the rbtree having 2**bh(v)-1 internal nodes. While this can be seen as a consequence of other checks, Michel states that it nicely sums up what the other properties are for. Signed-off-by: Davidlohr Bueso Reviewed-by: Michel Lespinasse Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- diff --git a/lib/rbtree_test.c b/lib/rbtree_test.c index af38aed..9951503 100644 --- a/lib/rbtree_test.c +++ b/lib/rbtree_test.c @@ -117,8 +117,7 @@ static int black_path_count(struct rb_node *rb) static void check(int nr_nodes) { struct rb_node *rb; - int count = 0; - int blacks = 0; + int count = 0, blacks = 0; u32 prev_key = 0; for (rb = rb_first(&root); rb; rb = rb_next(rb)) { @@ -134,7 +133,9 @@ static void check(int nr_nodes) prev_key = node->key; count++; } + WARN_ON_ONCE(count != nr_nodes); + WARN_ON_ONCE(count < (1 << black_path_count(rb_last(&root))) - 1); } static void check_augmented(int nr_nodes)