[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