rbtree/test: test rbtree_postorder_for_each_entry_safe()
authorCody P Schafer <cody@linux.vnet.ibm.com>
Thu, 23 Jan 2014 23:56:06 +0000 (15:56 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 24 Jan 2014 00:37:03 +0000 (16:37 -0800)
Signed-off-by: Cody P Schafer <cody@linux.vnet.ibm.com>
Cc: Michel Lespinasse <walken@google.com>
Cc: Jan Kara <jack@suse.cz>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
lib/rbtree_test.c

index df6c125ff5c21b149cee4bf397dab1608247f6fc..8b3c9dc882628fd9945b5901eba670f67f885adf 100644 (file)
@@ -114,6 +114,16 @@ static int black_path_count(struct rb_node *rb)
        return count;
 }
 
+static void check_postorder_foreach(int nr_nodes)
+{
+       struct test_node *cur, *n;
+       int count = 0;
+       rbtree_postorder_for_each_entry_safe(cur, n, &root, rb)
+               count++;
+
+       WARN_ON_ONCE(count != nr_nodes);
+}
+
 static void check_postorder(int nr_nodes)
 {
        struct rb_node *rb;
@@ -148,6 +158,7 @@ static void check(int nr_nodes)
        WARN_ON_ONCE(count < (1 << black_path_count(rb_last(&root))) - 1);
 
        check_postorder(nr_nodes);
+       check_postorder_foreach(nr_nodes);
 }
 
 static void check_augmented(int nr_nodes)