From 6a13cea6a9055092f52dec6f74c09d99d673dd0e Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Mon, 10 Jan 2011 16:25:48 +1030 Subject: [PATCH] rbtree: vary insert and delete orders in test This covers more code than simply doing an ordered delete/insert. --- ccan/rbtree/test/run-many.c | 32 ++++++++++++++++++++++---------- 1 file changed, 22 insertions(+), 10 deletions(-) diff --git a/ccan/rbtree/test/run-many.c b/ccan/rbtree/test/run-many.c index ff32f4f1..a0234030 100644 --- a/ccan/rbtree/test/run-many.c +++ b/ccan/rbtree/test/run-many.c @@ -24,20 +24,27 @@ static bool lookup_all(trbt_tree_t *rb, bool exist) return true; } +static bool add_one(trbt_tree_t *rb, bool exist, unsigned int i) +{ + int *p = trbt_insert32(rb, i, talloc_memdup(rb, &i, sizeof(i))); + if (p) { + if (!exist) + return false; + if (*p != i) + return false; + } else + if (exist) + return false; + return true; +} + static bool insert_all(trbt_tree_t *rb, bool exist) { unsigned int i; for (i = 0; i < NUM_ELEMS; i++) { - int *p = trbt_insert32(rb, i, talloc_memdup(rb, &i, sizeof(i))); - if (p) { - if (!exist) - return false; - if (*p != i) - return false; - } else - if (exist) - return false; + if (!add_one(rb, exist, i)) + return false; } return true; } @@ -46,7 +53,12 @@ static void delete_all(trbt_tree_t *rb) { unsigned int i; - for (i = 0; i < NUM_ELEMS; i++) { + /* Don't delete them in the obvious order. */ + for (i = 0; i < NUM_ELEMS / 2; i++) { + trbt_delete32(rb, i); + } + + for (i = NUM_ELEMS-1; i >= NUM_ELEMS / 2; i--) { trbt_delete32(rb, i); } } -- 2.39.2