summaryrefslogtreecommitdiffstats
path: root/testsuites/sptests/sprbtree01
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2014-07-12 14:22:22 -0500
committerJoel Sherrill <joel.sherrill@oarcorp.com>2014-07-15 10:03:48 -0500
commit64939bc9efcaf945b493e9c371901de33c3868a3 (patch)
treee196959688afe714c8c334f93598cb99234970e4 /testsuites/sptests/sprbtree01
parentrbtree: Delete unused functions (diff)
downloadrtems-64939bc9efcaf945b493e9c371901de33c3868a3.tar.bz2
rbtree: Reduce RBTree_Control size
Remove compare function and is unique indicator from the control structure. Rename RBTree_Compare_function to RBTree_Compare. Rename rtems_rbtree_compare_function to rtems_rbtree_compare. Provide C++ compatible initializers. Add compare function and is unique indicator to _RBTree_Find(), _RBTree_Insert(), rtems_rbtree_find() and rtems_rbtree_insert(). Remove _RBTree_Is_unique() and rtems_rbtree_is_unique(). Remove compare function and is unique indicator from _RBTree_Initialize_empty() and rtems_rbtree_initialize_empty().
Diffstat (limited to 'testsuites/sptests/sprbtree01')
-rw-r--r--testsuites/sptests/sprbtree01/init.c108
1 files changed, 65 insertions, 43 deletions
diff --git a/testsuites/sptests/sprbtree01/init.c b/testsuites/sptests/sprbtree01/init.c
index abec11e860..acf7f68bbb 100644
--- a/testsuites/sptests/sprbtree01/init.c
+++ b/testsuites/sptests/sprbtree01/init.c
@@ -42,9 +42,41 @@ static int test_compare_function (
return key1 - key2;
}
-/*
- * recursively checks tree. if the tree is built properly it should only
- * be a depth of 7 function calls for 100 entries in the tree.
+static rtems_rbtree_node *rb_insert_unique(
+ rtems_rbtree_control *rbtree,
+ rtems_rbtree_node *node
+)
+{
+ return rtems_rbtree_insert( rbtree, node, test_compare_function, true );
+}
+
+static rtems_rbtree_node *rb_insert_multi(
+ rtems_rbtree_control *rbtree,
+ rtems_rbtree_node *node
+)
+{
+ return rtems_rbtree_insert( rbtree, node, test_compare_function, false );
+}
+
+static rtems_rbtree_node *rb_find_unique(
+ rtems_rbtree_control *rbtree,
+ rtems_rbtree_node *node
+)
+{
+ return rtems_rbtree_find( rbtree, node, test_compare_function, true );
+}
+
+static rtems_rbtree_node *rb_find_multi(
+ rtems_rbtree_control *rbtree,
+ rtems_rbtree_node *node
+)
+{
+ return rtems_rbtree_find( rbtree, node, test_compare_function, false );
+}
+
+/*
+ * recursively checks tree. if the tree is built properly it should only
+ * be a depth of 7 function calls for 100 entries in the tree.
*/
static int rb_assert ( rtems_rbtree_node *root )
{
@@ -106,12 +138,7 @@ rtems_task Init(
TEST_BEGIN();
puts( "Init - Initialize rbtree empty" );
- rtems_rbtree_initialize_empty( &rbtree1, &test_compare_function, true );
-
- if ( !rtems_rbtree_is_unique( &rbtree1 ) )
- puts( "INIT - FAILED IS UNIQUE CHECK" );
- if ( rtems_rbtree_is_unique( NULL ) )
- puts( "INIT - FAILED IS UNIQUE CHECK" );
+ rtems_rbtree_initialize_empty( &rbtree1 );
/* verify that the rbtree insert work */
puts( "INIT - Verify rtems_rbtree_insert with two nodes" );
@@ -119,10 +146,10 @@ rtems_task Init(
node1.key = 1;
node2.id = 2;
node2.key = 2;
- rtems_rbtree_insert( &rbtree1, &node1.Node );
- rtems_rbtree_insert( &rbtree1, &node2.Node );
+ rb_insert_unique( &rbtree1, &node1.Node );
+ rb_insert_unique( &rbtree1, &node2.Node );
- p = rtems_rbtree_insert( &rbtree1, NULL );
+ p = rb_insert_unique( &rbtree1, NULL );
if (p != (void *)(-1))
puts( "INIT - FAILED NULL NODE INSERT" );
@@ -159,8 +186,8 @@ rtems_task Init(
puts("INIT - Verify rtems_rbtree_insert with the same value twice");
node2.key = node1.key;
- rtems_rbtree_insert(&rbtree1, &node1.Node);
- p = rtems_rbtree_insert(&rbtree1, &node2.Node);
+ rb_insert_unique(&rbtree1, &node1.Node);
+ p = rb_insert_unique(&rbtree1, &node2.Node);
if (p != &node1.Node)
puts( "INIT - FAILED DUPLICATE INSERT" );
@@ -218,8 +245,8 @@ rtems_task Init(
node1.key = 2;
node2.id = 1;
node2.key = 1;
- rtems_rbtree_insert( &rbtree1, &node1.Node );
- rtems_rbtree_insert( &rbtree1, &node2.Node );
+ rb_insert_unique( &rbtree1, &node1.Node );
+ rb_insert_unique( &rbtree1, &node2.Node );
puts( "INIT - Verify rtems_rbtree_peek_max/min, rtems_rbtree_extract" );
test_node *t1 = rtems_rbtree_container_of(rtems_rbtree_peek_max(&rbtree1),
@@ -237,7 +264,7 @@ rtems_task Init(
puts( "INIT - rtems_rbtree_extract failed");
rtems_test_exit(0);
}
- rtems_rbtree_insert(&rbtree1, p);
+ rb_insert_unique(&rbtree1, p);
for ( p = rtems_rbtree_get_min(&rbtree1), id = 1 ; p ;
p = rtems_rbtree_get_min(&rbtree1) , id++ ) {
@@ -256,7 +283,7 @@ rtems_task Init(
for (i = 0; i < 100; i++) {
node_array[i].id = i;
node_array[i].key = i;
- rtems_rbtree_insert( &rbtree1, &node_array[i].Node );
+ rb_insert_unique( &rbtree1, &node_array[i].Node );
if (!rb_assert(rbtree1.root) )
puts( "INIT - FAILED TREE CHECK" );
@@ -289,7 +316,7 @@ rtems_task Init(
for (i = 0; i < 100; i++) {
node_array[i].id = 99-i;
node_array[i].key = 99-i;
- rtems_rbtree_insert( &rbtree1, &node_array[i].Node );
+ rb_insert_unique( &rbtree1, &node_array[i].Node );
if (!rb_assert(rbtree1.root) )
puts( "INIT - FAILED TREE CHECK" );
@@ -324,7 +351,7 @@ rtems_task Init(
for (i = 0; i < 100; i++) {
node_array[i].id = i;
node_array[i].key = i;
- rtems_rbtree_insert( &rbtree1, &node_array[i].Node );
+ rb_insert_unique( &rbtree1, &node_array[i].Node );
if (!rb_assert(rbtree1.root) )
puts( "INIT - FAILED TREE CHECK" );
@@ -376,13 +403,13 @@ rtems_task Init(
node_array[i].id = i;
node_array[i].key = i;
}
- rtems_rbtree_insert( &rbtree1, &node_array[3].Node );
- rtems_rbtree_insert( &rbtree1, &node_array[1].Node );
- rtems_rbtree_insert( &rbtree1, &node_array[5].Node );
- rtems_rbtree_insert( &rbtree1, &node_array[0].Node );
- rtems_rbtree_insert( &rbtree1, &node_array[2].Node );
- rtems_rbtree_insert( &rbtree1, &node_array[4].Node );
- rtems_rbtree_insert( &rbtree1, &node_array[6].Node );
+ rb_insert_unique( &rbtree1, &node_array[3].Node );
+ rb_insert_unique( &rbtree1, &node_array[1].Node );
+ rb_insert_unique( &rbtree1, &node_array[5].Node );
+ rb_insert_unique( &rbtree1, &node_array[0].Node );
+ rb_insert_unique( &rbtree1, &node_array[2].Node );
+ rb_insert_unique( &rbtree1, &node_array[4].Node );
+ rb_insert_unique( &rbtree1, &node_array[6].Node );
rtems_rbtree_extract( &rbtree1, &node_array[2].Node );
/* node_array[1] has now only a left child. */
if ( !node_array[1].Node.child[RBT_LEFT] ||
@@ -395,7 +422,7 @@ rtems_task Init(
for (i = 0; i < 100; i++) {
node_array[i].id = 99-i;
node_array[i].key = 99-i;
- rtems_rbtree_insert( &rbtree1, &node_array[i].Node );
+ rb_insert_unique( &rbtree1, &node_array[i].Node );
if (!rb_assert(rbtree1.root) )
puts( "INIT - FAILED TREE CHECK" );
@@ -428,7 +455,7 @@ rtems_task Init(
for (i = 0; i < 100; i++) {
node_array[i].id = i;
node_array[i].key = i;
- rtems_rbtree_insert( &rbtree1, &node_array[i].Node );
+ rb_insert_unique( &rbtree1, &node_array[i].Node );
if (!rb_assert(rbtree1.root) )
puts( "INIT - FAILED TREE CHECK" );
@@ -436,7 +463,7 @@ rtems_task Init(
puts( "INIT - Verify rtems_rbtree_find" );
search_node.key = 30;
- p = rtems_rbtree_find(&rbtree1, &search_node.Node);
+ p = rb_find_unique(&rbtree1, &search_node.Node);
if(rtems_rbtree_container_of(p,test_node,Node)->id != 30) {
puts ("INIT - ERROR ON RBTREE ID MISMATCH");
rtems_test_exit(0);
@@ -448,14 +475,14 @@ rtems_task Init(
puts ("INIT - ERROR ON RBTREE ID MISMATCH");
rtems_test_exit(0);
}
- p = rtems_rbtree_find(&rbtree1, &search_node.Node);
+ p = rb_find_unique(&rbtree1, &search_node.Node);
p = rtems_rbtree_successor(p);
if(p && rtems_rbtree_container_of(p,test_node,Node)->id != 31) {
puts ("INIT - ERROR ON RBTREE ID MISMATCH");
rtems_test_exit(0);
}
- p = rtems_rbtree_find(&rbtree1, &search_node.Node);
+ p = rb_find_unique(&rbtree1, &search_node.Node);
puts( "INIT - Verify rtems_rbtree_find_header" );
if (rtems_rbtree_find_header(p) != &rbtree1) {
puts ("INIT - ERROR ON RBTREE HEADER MISMATCH");
@@ -509,7 +536,7 @@ rtems_task Init(
for (i = 0; i < 20; i++) {
node_array[i].id = numbers[i];
node_array[i].key = numbers[i];
- rtems_rbtree_insert( &rbtree1, &node_array[i].Node );
+ rb_insert_unique( &rbtree1, &node_array[i].Node );
if (!rb_assert(rbtree1.root) )
puts( "INIT - FAILED TREE CHECK" );
@@ -573,18 +600,13 @@ rtems_task Init(
/* Initialize the tree for duplicate keys */
puts( "Init - Initialize duplicate rbtree empty" );
- rtems_rbtree_initialize_empty( &rbtree1, &test_compare_function, false );
-
- if ( rtems_rbtree_is_unique( &rbtree1 ) )
- puts( "INIT - FAILED IS UNIQUE CHECK" );
- if ( rtems_rbtree_is_unique( NULL ) )
- puts( "INIT - FAILED IS UNIQUE CHECK" );
+ rtems_rbtree_initialize_empty( &rbtree1 );
puts( "INIT - Verify rtems_rbtree_insert with 100 nodes value [0,99]" );
for (i = 0; i < 100; i++) {
node_array[i].id = i;
node_array[i].key = i%5;
- rtems_rbtree_insert( &rbtree1, &node_array[i].Node );
+ rb_insert_multi( &rbtree1, &node_array[i].Node );
if (!rb_assert(rbtree1.root) )
puts( "INIT - FAILED TREE CHECK" );
@@ -592,7 +614,7 @@ rtems_task Init(
puts( "INIT - Verify rtems_rbtree_find in a duplicate tree" );
search_node.key = 2;
- p = rtems_rbtree_find(&rbtree1, &search_node.Node);
+ p = rb_find_multi(&rbtree1, &search_node.Node);
if(rtems_rbtree_container_of(p,test_node,Node)->id != 2) {
puts ("INIT - ERROR ON RBTREE ID MISMATCH");
rtems_test_exit(0);
@@ -625,7 +647,7 @@ rtems_task Init(
for (i = 0; i < 100; i++) {
node_array[i].id = 99-i;
node_array[i].key = (99-i)%5;
- rtems_rbtree_insert( &rbtree1, &node_array[i].Node );
+ rb_insert_multi( &rbtree1, &node_array[i].Node );
if (!rb_assert(rbtree1.root) )
puts( "INIT - FAILED TREE CHECK" );
@@ -633,7 +655,7 @@ rtems_task Init(
puts( "INIT - Verify rtems_rbtree_find in a duplicate tree" );
search_node.key = 2;
- p = rtems_rbtree_find(&rbtree1, &search_node.Node);
+ p = rb_find_multi(&rbtree1, &search_node.Node);
if(rtems_rbtree_container_of(p,test_node,Node)->id != 97) {
puts ("INIT - ERROR ON RBTREE ID MISMATCH");
rtems_test_exit(0);