[rtems commit] smptests: Be successful on one processor

Sebastian Huber sebh at rtems.org
Mon Jul 22 14:51:42 UTC 2013


Module:    rtems
Branch:    master
Commit:    57c8805648dab577fa460fbf09f4ce920c59ca19
Changeset: http://git.rtems.org/rtems/commit/?id=57c8805648dab577fa460fbf09f4ce920c59ca19

Author:    Sebastian Huber <sebastian.huber at embedded-brains.de>
Date:      Fri Jul 19 10:12:13 2013 +0200

smptests: Be successful on one processor

---

 testsuites/smptests/smp02/init.c |   13 +++++++++++--
 testsuites/smptests/smp03/init.c |   13 +++++++++++--
 testsuites/smptests/smp05/init.c |   13 +++++++++++--
 testsuites/smptests/smp06/init.c |   18 ++++++++++++++----
 testsuites/smptests/smp07/init.c |   13 +++++++++++--
 5 files changed, 58 insertions(+), 12 deletions(-)

diff --git a/testsuites/smptests/smp02/init.c b/testsuites/smptests/smp02/init.c
index d053b31..509fed0 100644
--- a/testsuites/smptests/smp02/init.c
+++ b/testsuites/smptests/smp02/init.c
@@ -17,6 +17,12 @@
 #include <stdio.h>
 #include <inttypes.h>
 
+static void success(void)
+{
+  locked_printf( "*** END OF TEST SMP02 ***\n" );
+  rtems_test_exit( 0 );
+}
+
 rtems_task Init(
   rtems_task_argument argument
 )
@@ -31,6 +37,10 @@ rtems_task Init(
   locked_print_initialize();
   locked_printf( "\n\n***  SMP02 TEST ***\n" );
 
+  if ( rtems_smp_get_processor_count() == 1 ) {
+    success();
+  }
+
   /* Create/verify synchronisation semaphore */
   status = rtems_semaphore_create(
     rtems_build_name ('S', 'E', 'M', '1'),
@@ -95,6 +105,5 @@ rtems_task Init(
     }
   }
 
-  locked_printf( "*** END OF TEST SMP02 ***\n" );
-  rtems_test_exit( 0 );
+  success();
 }
diff --git a/testsuites/smptests/smp03/init.c b/testsuites/smptests/smp03/init.c
index 40b7593..fd6f6d9 100644
--- a/testsuites/smptests/smp03/init.c
+++ b/testsuites/smptests/smp03/init.c
@@ -17,6 +17,12 @@
 #include <stdio.h>
 #include <inttypes.h>
 
+static void success(void)
+{
+  locked_printf( "*** END OF TEST SMP03 ***\n" );
+  rtems_test_exit( 0 );
+}
+
 void Loop() {
   volatile int i;
 
@@ -48,6 +54,10 @@ rtems_task Init(
 
   locked_printf( "\n\n***  SMP03 TEST ***\n" );
 
+  if ( rtems_smp_get_processor_count() == 1 ) {
+    success();
+  }
+
   /* Initialize the TaskRan array */
   TaskRan[0] = true;
   for ( i=1; i<rtems_smp_get_processor_count() ; i++ ) {
@@ -98,8 +108,7 @@ rtems_task Init(
         TestFinished = false;
     }
     if (TestFinished) {
-      locked_printf( "*** END OF TEST SMP03 ***\n" );
-      rtems_test_exit( 0 );
+      success();
     }
   }
 
diff --git a/testsuites/smptests/smp05/init.c b/testsuites/smptests/smp05/init.c
index db36e03..c666c27 100644
--- a/testsuites/smptests/smp05/init.c
+++ b/testsuites/smptests/smp05/init.c
@@ -14,13 +14,18 @@
 #include <tmacros.h>
 #include "test_support.h"
 
+static void success(void)
+{
+  locked_printf( "*** END OF TEST SMP05 ***\n" );
+  rtems_test_exit( 0 );
+}
+
 rtems_task Test_task(
   rtems_task_argument argument
 )
 {
   locked_printf( "Shut down from CPU %" PRIu32 "\n", rtems_smp_get_current_processor() );
-  locked_printf( "*** END OF TEST SMP05 ***\n" );
-  rtems_test_exit(0);
+  success();
 }
 
 rtems_task Init(
@@ -36,6 +41,10 @@ rtems_task Init(
   locked_print_initialize();
   locked_printf( "\n\n*** TEST SMP05 ***\n" );
 
+  if ( rtems_smp_get_processor_count() == 1 ) {
+    success();
+  }
+
   for ( i=0; i<rtems_smp_get_processor_count() ; i++ ) {
     ch = '1' + i;
 
diff --git a/testsuites/smptests/smp06/init.c b/testsuites/smptests/smp06/init.c
index ae3ca76..7f2a05f 100644
--- a/testsuites/smptests/smp06/init.c
+++ b/testsuites/smptests/smp06/init.c
@@ -16,6 +16,12 @@
 
 volatile bool Ran;
 
+static void success(void)
+{
+  locked_printf( "*** END OF TEST SMP06 ***\n" );
+  rtems_test_exit( 0 );
+}
+
 rtems_task Test_task(
   rtems_task_argument do_exit
 )
@@ -33,8 +39,7 @@ rtems_task Test_task(
   Ran = true;
 
   if ( do_exit ) {
-    locked_printf( "*** END OF TEST SMP06 ***\n" );
-    rtems_test_exit(0);
+    success();
   }
   while(1)
     ;
@@ -50,12 +55,17 @@ rtems_task Init(
 
   locked_print_initialize();
   locked_printf( "\n\n*** TEST SMP06 ***\n" );
+
+  if ( rtems_smp_get_processor_count() == 1 ) {
+    success();
+  }
+
   locked_printf( "rtems_clock_tick - so this task has run longer\n" );
+  _Thread_Disable_dispatch();
   status = rtems_clock_tick();
+  _Thread_Enable_dispatch();
   directive_failed( status, "clock tick" );
 
-  rtems_test_assert( rtems_smp_get_processor_count()  > 1 );
-
   cpu_num = rtems_smp_get_current_processor();
 
   /*
diff --git a/testsuites/smptests/smp07/init.c b/testsuites/smptests/smp07/init.c
index f631554..1379bdd 100644
--- a/testsuites/smptests/smp07/init.c
+++ b/testsuites/smptests/smp07/init.c
@@ -18,6 +18,12 @@ volatile bool TaskRan = false;
 volatile bool TSRFired = false;
 rtems_id      Semaphore; 
 
+static void success(void)
+{
+  locked_printf( "*** END OF TEST SMP07 ***\n" );
+  rtems_test_exit( 0 );
+}
+
 rtems_task Test_task(
   rtems_task_argument argument
 )
@@ -83,6 +89,10 @@ rtems_task Init(
   locked_print_initialize();
   locked_printf( "\n\n*** TEST SMP07 ***\n" );
 
+  if ( rtems_smp_get_processor_count() == 1 ) {
+    success();
+  }
+
   /* Create/verify semaphore */
   status = rtems_semaphore_create(
     rtems_build_name ('S', 'E', 'M', '1'),
@@ -147,8 +157,7 @@ rtems_task Init(
   }
 
   /* End the program */
-  locked_printf( "*** END OF TEST SMP07 ***\n" );
-  rtems_test_exit(0);
+  success();
 }
 
 /* configuration information */




More information about the vc mailing list