psxtests/psxkey08 failure

Sebastian Huber sebastian.huber at embedded-brains.de
Tue Mar 11 12:24:59 UTC 2014


Ok, I had a closer look at the test since it failed now on another simulator. 
This test is broken:

[...]
   puts( "Init - pthread Key create - OK" );
   sc = pthread_key_create( &Key, NULL );
   rtems_test_assert( !sc );

   for ( ; ; ) {
     task_id_p = malloc( sizeof( rtems_id ) );
     rtems_test_assert( task_id_p );

     sc = rtems_task_create(
       rtems_build_name('T','A',created_task_count, ' '),
       1,
       RTEMS_MINIMUM_STACK_SIZE,
       RTEMS_DEFAULT_MODES,
       RTEMS_DEFAULT_ATTRIBUTES,
       task_id_p
     );
     rtems_test_assert(
       (sc == RTEMS_UNSATISFIED) ||
       (sc == RTEMS_TOO_MANY) ||
       (sc == RTEMS_SUCCESSFUL)
     );

     /**
      * when return is RTEMS_TOO_MANY or RTEMS_UNSATISFIED, there is not
      * enough source to create task.
      */
     if ( (sc == RTEMS_TOO_MANY) || (sc == RTEMS_UNSATISFIED) ) {
       break;
     }
     ++created_task_count;

     sc = rtems_task_start( *task_id_p,  test_task, 0 );
     rtems_test_assert( sc == RTEMS_SUCCESSFUL );

     sc = rtems_semaphore_obtain( sema1, RTEMS_WAIT, 0 );
     rtems_test_assert( sc == RTEMS_SUCCESSFUL );
   }
[...]

We have a unified work area.  So depending on the memory layout the

     task_id_p = malloc( sizeof( rtems_id ) );
     rtems_test_assert( task_id_p );

or the

     sc = rtems_task_create(
       rtems_build_name('T','A',created_task_count, ' '),
       1,
       RTEMS_MINIMUM_STACK_SIZE,
       RTEMS_DEFAULT_MODES,
       RTEMS_DEFAULT_ATTRIBUTES,
       task_id_p
     );
     rtems_test_assert(
       (sc == RTEMS_UNSATISFIED) ||
       (sc == RTEMS_TOO_MANY) ||
       (sc == RTEMS_SUCCESSFUL)
     );

may fail.  If we are unlucky then we hit the first case and the test fails.

Why do we malloc the task_id_p?  Its a memory leak and it is used only locally?

-- 
Sebastian Huber, embedded brains GmbH

Address : Dornierstr. 4, D-82178 Puchheim, Germany
Phone   : +49 89 189 47 41-16
Fax     : +49 89 189 47 41-09
E-Mail  : sebastian.huber at embedded-brains.de
PGP     : Public key available on request.

Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.



More information about the devel mailing list