diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2014-07-12 14:22:22 -0500 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@oarcorp.com> | 2014-07-15 10:03:48 -0500 |
commit | 64939bc9efcaf945b493e9c371901de33c3868a3 (patch) | |
tree | e196959688afe714c8c334f93598cb99234970e4 /testsuites/sptests/sprbtree01/init.c | |
parent | rbtree: Delete unused functions (diff) | |
download | rtems-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/init.c')
-rw-r--r-- | testsuites/sptests/sprbtree01/init.c | 108 |
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); |