change log for rtems (2011-07-27)
rtems-vc at rtems.org
rtems-vc at rtems.org
Wed Jul 27 14:10:35 UTC 2011
*joel*:
2011-07-27 Petr Benes <benesp16 at fel.cvut.cz>
PR 1856/cpukit
* posix/src/pthread.c, posix/src/pthreadjoin.c,
score/src/rbtreeextract.c: Do not derefence NULL.
M 1.2890 cpukit/ChangeLog
M 1.83 cpukit/posix/src/pthread.c
M 1.10 cpukit/posix/src/pthreadjoin.c
M 1.3 cpukit/score/src/rbtreeextract.c
diff -u rtems/cpukit/ChangeLog:1.2889 rtems/cpukit/ChangeLog:1.2890
--- rtems/cpukit/ChangeLog:1.2889 Sun Jul 24 18:55:05 2011
+++ rtems/cpukit/ChangeLog Wed Jul 27 08:27:47 2011
@@ -1,3 +1,9 @@
+2011-07-27 Petr Benes <benesp16 at fel.cvut.cz>
+
+ PR 1856/cpukit
+ * posix/src/pthread.c, posix/src/pthreadjoin.c,
+ score/src/rbtreeextract.c: Do not derefence NULL.
+
2011-07-24 Joel Sherrill <joel.sherrill at oarcorp.com>
* ftpd/ftpd.c, libcsupport/src/geteuid.c, libcsupport/src/getgroups.c,
diff -u rtems/cpukit/posix/src/pthread.c:1.82 rtems/cpukit/posix/src/pthread.c:1.83
--- rtems/cpukit/posix/src/pthread.c:1.82 Tue Feb 15 18:24:49 2011
+++ rtems/cpukit/posix/src/pthread.c Wed Jul 27 08:27:48 2011
@@ -217,7 +217,7 @@
_Thread_queue_Initialize(
&api->Join_List,
THREAD_QUEUE_DISCIPLINE_FIFO,
- STATES_WAITING_FOR_JOIN_AT_EXIT,
+ STATES_WAITING_FOR_JOIN_AT_EXIT | STATES_INTERRUPTIBLE_BY_SIGNAL,
0
);
diff -u rtems/cpukit/posix/src/pthreadjoin.c:1.9 rtems/cpukit/posix/src/pthreadjoin.c:1.10
--- rtems/cpukit/posix/src/pthreadjoin.c:1.9 Tue Mar 8 16:14:14 2011
+++ rtems/cpukit/posix/src/pthreadjoin.c Wed Jul 27 08:27:48 2011
@@ -32,6 +32,7 @@
Objects_Locations location;
void *return_pointer;
+on_EINTR:
the_thread = _Thread_Get( thread, &location );
switch ( location ) {
@@ -60,6 +61,11 @@
_Thread_Enable_dispatch();
+/*
+ if ( _Thread_Executing->Wait.return_code == EINTR )
+ goto on_EINTR;
+*/
+
if ( value_ptr )
*value_ptr = return_pointer;
return 0;
diff -u rtems/cpukit/score/src/rbtreeextract.c:1.2 rtems/cpukit/score/src/rbtreeextract.c:1.3
--- rtems/cpukit/score/src/rbtreeextract.c:1.2 Mon May 23 21:44:57 2011
+++ rtems/cpukit/score/src/rbtreeextract.c Wed Jul 27 08:27:48 2011
@@ -164,9 +164,11 @@
/* set target's new children to the original node's children */
target->child[RBT_RIGHT] = the_node->child[RBT_RIGHT];
- the_node->child[RBT_RIGHT]->parent = target;
+ if (the_node->child[RBT_RIGHT])
+ the_node->child[RBT_RIGHT]->parent = target;
target->child[RBT_LEFT] = the_node->child[RBT_LEFT];
- the_node->child[RBT_LEFT]->parent = target;
+ if (the_node->child[RBT_LEFT])
+ the_node->child[RBT_LEFT]->parent = target;
/* finally, update the parent node and recolor. target has completely
* replaced the_node, and target's child has moved up the tree if needed.
*joel*:
2011-07-27 Petr Benes <benesp16 at fel.cvut.cz>
PR 1854/cpukit
* sprbtree01/init.c, sprbtree01/sprbtree01.scn: Add test of the
rtems_rbtree_extract() to improve test coverage.
M 1.466 testsuites/sptests/ChangeLog
M 1.2 testsuites/sptests/sprbtree01/init.c
M 1.2 testsuites/sptests/sprbtree01/sprbtree01.scn
diff -u rtems/testsuites/sptests/ChangeLog:1.465 rtems/testsuites/sptests/ChangeLog:1.466
--- rtems/testsuites/sptests/ChangeLog:1.465 Tue Jul 26 15:53:09 2011
+++ rtems/testsuites/sptests/ChangeLog Wed Jul 27 08:35:11 2011
@@ -1,3 +1,9 @@
+2011-07-27 Petr Benes <benesp16 at fel.cvut.cz>
+
+ PR 1854/cpukit
+ * sprbtree01/init.c, sprbtree01/sprbtree01.scn: Add test of the
+ rtems_rbtree_extract() to improve test coverage.
+
2011-07-26 Joel Sherrill <joel.sherrilL at OARcorp.com>
* Makefile.am, configure.ac: New test to get coverage of core mutex
diff -u rtems/testsuites/sptests/sprbtree01/init.c:1.1 rtems/testsuites/sptests/sprbtree01/init.c:1.2
--- rtems/testsuites/sptests/sprbtree01/init.c:1.1 Mon Apr 4 13:45:38 2011
+++ rtems/testsuites/sptests/sprbtree01/init.c Wed Jul 27 08:35:11 2011
@@ -12,10 +12,10 @@
#include <rtems/rbtree.h>
int numbers[20] = {
-52, 99, 5, 85, 43, 44, 10, 60, 50, 19, 8, 68, 48, 57, 17, 67, 90, 12, 77, 71};
+52, 99, 0, 85, 43, 44, 10, 60, 50, 19, 8, 68, 48, 57, 17, 67, 90, 12, 77, 71};
int numbers_sorted[20] = {
- 5, 8, 10, 12, 17, 19, 43, 44, 48, 50, 52, 57, 60, 67, 68, 71, 77, 85, 90, 99};
+ 0, 8, 10, 12, 17, 19, 43, 44, 48, 50, 52, 57, 60, 67, 68, 71, 77, 85, 90, 99};
typedef struct {
int id;
@@ -272,6 +272,58 @@
rtems_test_exit(0);
}
+ /* testing rbtree_extract by adding 100 nodes then removing the 20 with
+ * keys specified by the numbers array, then removing the rest */
+ puts( "INIT - Verify rtems_rbtree_extract with 100 nodes value [0,99]" );
+ for (i = 0; i < 100; i++) {
+ node_array[i].id = i;
+ node_array[i].Node.value = i;
+ rtems_rbtree_insert( &rbtree1, &node_array[i].Node );
+
+ if (!rb_assert(rbtree1.root) )
+ puts( "INIT - FAILED TREE CHECK" );
+ }
+
+ puts( "INIT - Extracting 20 random nodes" );
+
+ for (i = 0; i < 20; i++) {
+ id = numbers[i];
+ rtems_rbtree_extract( &rbtree1, &node_array[id].Node );
+ if (!rb_assert(rbtree1.root) )
+ puts( "INIT - FAILED TREE CHECK" );
+ }
+
+ puts( "INIT - Removing 80 nodes" );
+
+ for ( p = rtems_rbtree_get_min(&rbtree1), id = 0, i = 0 ; p ;
+ p = rtems_rbtree_get_min(&rbtree1) , id++ ) {
+ test_node *t = rtems_rbtree_container_of(p, test_node, Node);
+
+ while ( id == numbers_sorted[i] ) {
+ /* skip if expected minimum (id) is in the set of extracted numbers */
+ id++;
+ i++;
+ }
+
+ if ( id > 99 ) {
+ puts( "INIT - TOO MANY NODES ON RBTREE" );
+ rtems_test_exit(0);
+ }
+
+ if ( t->id != id ) {
+ puts( "INIT - ERROR ON RBTREE ID MISMATCH" );
+ rtems_test_exit(0);
+ }
+
+ if (!rb_assert(rbtree1.root) )
+ puts( "INIT - FAILED TREE CHECK" );
+ }
+
+ if(!rtems_rbtree_is_empty(&rbtree1)) {
+ puts( "INIT - TREE NOT EMPTY" );
+ rtems_test_exit(0);
+ }
+
puts( "INIT - Verify rtems_rbtree_get_max with 100 nodes value [99,0]" );
for (i = 0; i < 100; i++) {
node_array[i].id = 99-i;
diff -u rtems/testsuites/sptests/sprbtree01/sprbtree01.scn:1.1 rtems/testsuites/sptests/sprbtree01/sprbtree01.scn:1.2
--- rtems/testsuites/sptests/sprbtree01/sprbtree01.scn:1.1 Mon Apr 4 13:45:38 2011
+++ rtems/testsuites/sptests/sprbtree01/sprbtree01.scn Wed Jul 27 08:35:11 2011
@@ -10,6 +10,9 @@
INIT - Removing 100 nodes
INIT - Verify rtems_rbtree_insert with 100 nodes value [99,0]
INIT - Removing 100 nodes
+INIT - Verify rtems_rbtree_extract with 100 nodes value [0,99]
+INIT - Extracting 20 random nodes
+INIT - Removing 80 nodes
INIT - Verify rtems_rbtree_get_max with 100 nodes value [99,0]
INIT - Removing 100 nodes
INIT - Verify rtems_rbtree_get_max with 100 nodes value [0,99]
--
Generated by Deluxe Loginfo [http://www.codewiz.org/projects/index.html#loginfo] 2.122 by Bernardo Innocenti <bernie at develer.com>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/vc/attachments/20110727/ae4f80ff/attachment-0001.html>
More information about the vc
mailing list