[PATCH 2/2] psxtests/psxkey08: Limit workspace size

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


This avoids large test execution times on targets with a big RAM.
---
 testsuites/psxtests/psxkey08/init.c |   13 +++++++++----
 1 files changed, 9 insertions(+), 4 deletions(-)

diff --git a/testsuites/psxtests/psxkey08/init.c b/testsuites/psxtests/psxkey08/init.c
index 6c4e2d0..6cfa68f 100644
--- a/testsuites/psxtests/psxkey08/init.c
+++ b/testsuites/psxtests/psxkey08/init.c
@@ -56,9 +56,10 @@ rtems_task test_task(rtems_task_argument arg)
 
 rtems_task Init(rtems_task_argument arg)
 {
-  rtems_status_code status;
-  int              sc;
-  rtems_id        *task_id_p;
+  rtems_status_code  status;
+  int                sc;
+  uintptr_t          max_free_size = 13 * RTEMS_MINIMUM_STACK_SIZE;
+  void              *greedy;
 
   all_thread_created = 0;
 
@@ -89,6 +90,8 @@ rtems_task Init(rtems_task_argument arg)
   sc = pthread_key_create( &Key, NULL );
   rtems_test_assert( !sc );
 
+  greedy = rtems_workspace_greedy_allocate( &max_free_size, 1 );
+
   for ( ; ; ) {
     rtems_id task_id;
 
@@ -115,13 +118,15 @@ rtems_task Init(rtems_task_argument arg)
     }
     ++created_task_count;
 
-    sc = rtems_task_start( *task_id_p,  test_task, 0 );
+    sc = rtems_task_start( task_id,  test_task, 0 );
     rtems_test_assert( sc == RTEMS_SUCCESSFUL );
 
     sc = rtems_semaphore_obtain( sema1, RTEMS_WAIT, 0 );
     rtems_test_assert( sc == RTEMS_SUCCESSFUL );
   }
 
+  rtems_workspace_greedy_free( greedy );
+
   printf(
     "Init - %d tasks have been created - OK\n"
     "Init - %d tasks have been setted key data - OK\n",
-- 
1.7.7




More information about the devel mailing list