util/rb_tree: Also test _safe iterators
Acked-by: Michel Dänzer <mdaenzer@redhat.com> Tested-by: Michel Dänzer <mdaenzer@redhat.com> Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
This commit is contained in:
@@ -92,6 +92,27 @@ validate_tree_order(struct rb_tree *tree, unsigned expected_count)
|
|||||||
}
|
}
|
||||||
assert(count == expected_count);
|
assert(count == expected_count);
|
||||||
|
|
||||||
|
prev = NULL;
|
||||||
|
max_val = -1;
|
||||||
|
count = 0;
|
||||||
|
rb_tree_foreach_safe(struct rb_test_node, n, tree, node) {
|
||||||
|
/* Everything should be in increasing order */
|
||||||
|
assert(n->key >= max_val);
|
||||||
|
if (n->key > max_val) {
|
||||||
|
max_val = n->key;
|
||||||
|
} else {
|
||||||
|
/* Things should be stable, i.e., given equal keys, they should
|
||||||
|
* show up in the list in order of insertion. We insert them
|
||||||
|
* in the order they are in in the array.
|
||||||
|
*/
|
||||||
|
assert(prev == NULL || prev < n);
|
||||||
|
}
|
||||||
|
|
||||||
|
prev = n;
|
||||||
|
count++;
|
||||||
|
}
|
||||||
|
assert(count == expected_count);
|
||||||
|
|
||||||
prev = NULL;
|
prev = NULL;
|
||||||
int min_val = INT_MAX;
|
int min_val = INT_MAX;
|
||||||
count = 0;
|
count = 0;
|
||||||
@@ -112,6 +133,27 @@ validate_tree_order(struct rb_tree *tree, unsigned expected_count)
|
|||||||
count++;
|
count++;
|
||||||
}
|
}
|
||||||
assert(count == expected_count);
|
assert(count == expected_count);
|
||||||
|
|
||||||
|
prev = NULL;
|
||||||
|
min_val = INT_MAX;
|
||||||
|
count = 0;
|
||||||
|
rb_tree_foreach_rev_safe(struct rb_test_node, n, tree, node) {
|
||||||
|
/* Everything should be in increasing order */
|
||||||
|
assert(n->key <= min_val);
|
||||||
|
if (n->key < min_val) {
|
||||||
|
min_val = n->key;
|
||||||
|
} else {
|
||||||
|
/* Things should be stable, i.e., given equal keys, they should
|
||||||
|
* show up in the list in order of insertion. We insert them
|
||||||
|
* in the order they are in in the array.
|
||||||
|
*/
|
||||||
|
assert(prev == NULL || prev > n);
|
||||||
|
}
|
||||||
|
|
||||||
|
prev = n;
|
||||||
|
count++;
|
||||||
|
}
|
||||||
|
assert(count == expected_count);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
Reference in New Issue
Block a user