summaryrefslogtreecommitdiffstats
path: root/testsuites/sptests
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2018-07-04 16:12:14 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2018-07-16 07:22:11 +0200
commit22d9575fd038721cc7462911275336f1b5255381 (patch)
tree1935a51bcbdeaa869f78ef5e8d2b48d96321729c /testsuites/sptests
parentlinux: Simplify <linux/rbtree.h> (diff)
downloadrtems-22d9575fd038721cc7462911275336f1b5255381.tar.bz2
linux: Add rbtree_postorder_for_each_entry_safe()
Update #3465.
Diffstat (limited to 'testsuites/sptests')
-rw-r--r--testsuites/sptests/sprbtree01/init.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/testsuites/sptests/sprbtree01/init.c b/testsuites/sptests/sprbtree01/init.c
index 419881b1d8..16c1ee5edb 100644
--- a/testsuites/sptests/sprbtree01/init.c
+++ b/testsuites/sptests/sprbtree01/init.c
@@ -14,6 +14,8 @@
#include <rtems/rbtree.h>
#include <rtems/score/rbtreeimpl.h>
+#include <linux/rbtree.h>
+
const char rtems_test_name[] = "SPRBTREE 1";
/* forward declarations to avoid warnings */
@@ -1909,6 +1911,7 @@ static void postorder_tree_check(
)
{
test_node *node;
+ test_node *next;
size_t i;
node = _RBTree_Postorder_first( tree, offsetof( test_node, Node ) );
@@ -1919,6 +1922,25 @@ static void postorder_tree_check(
}
rtems_test_assert( node == NULL );
+
+ i = 0;
+ next = NULL;
+
+ rbtree_postorder_for_each_entry_safe( node, next, tree, Node ) {
+ rtems_test_assert( node == &node_array[ i ] );
+
+ if ( i < pt->node_count - 1 ) {
+ rtems_test_assert( next == &node_array[ i + 1 ] );
+ } else {
+ rtems_test_assert( next == NULL );
+ }
+
+ ++i;
+ }
+
+ rtems_test_assert( i == pt->node_count );
+ rtems_test_assert( node == NULL );
+ rtems_test_assert( next == NULL );
}
static void test_rbtree_postorder( void )