Skip to content

Commit

Permalink
rbtree_test: add test for postorder iteration
Browse files Browse the repository at this point in the history
Just check that we examine all nodes in the tree for the postorder
iteration.

Signed-off-by: Cody P Schafer <cody@linux.vnet.ibm.com>
Reviewed-by: Seth Jennings <sjenning@linux.vnet.ibm.com>
Cc: David Woodhouse <David.Woodhouse@intel.com>
Cc: Rik van Riel <riel@redhat.com>
Cc: Michel Lespinasse <walken@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
  • Loading branch information
codyps authored and torvalds committed Sep 11, 2013
1 parent 2b52908 commit a791a62
Showing 1 changed file with 12 additions and 0 deletions.
12 changes: 12 additions & 0 deletions lib/rbtree_test.c
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,16 @@ static int black_path_count(struct rb_node *rb)
return count;
}

static void check_postorder(int nr_nodes)
{
struct rb_node *rb;
int count = 0;
for (rb = rb_first_postorder(&root); rb; rb = rb_next_postorder(rb))
count++;

WARN_ON_ONCE(count != nr_nodes);
}

static void check(int nr_nodes)
{
struct rb_node *rb;
Expand All @@ -136,6 +146,8 @@ static void check(int nr_nodes)

WARN_ON_ONCE(count != nr_nodes);
WARN_ON_ONCE(count < (1 << black_path_count(rb_last(&root))) - 1);

check_postorder(nr_nodes);
}

static void check_augmented(int nr_nodes)
Expand Down

0 comments on commit a791a62

Please sign in to comment.