[PATCH] clean up all the spatomic test cases

Deng Hengyi wei.a.yang at gmail.com
Thu Jul 18 15:20:24 UTC 2013


Hi Cindy,

Those test cases is based on old atomic implementation, the new atomic implementation based on stdatomic.h has been submitted which does not support UP mode now, and all the test cases will be redesigned. Now it's usage is to test whether compiler works ok. Its test function is somewhat useless. 

在 2013-7-18,下午11:06,"Rempel, Cynthia" <cynt6007 at vandals.uidaho.edu> 写道:

> Hi Wei Yang,
> 
> Wow, this looks like a big change... Why are we cleaning up spatomic test cases?
> Why not just build them conditionally?
> 
> Thanks,
> Cindy
> ________________________________________
> From: rtems-devel-bounces at rtems.org [rtems-devel-bounces at rtems.org] on behalf of WeiY [wei.a.yang at gmail.com]
> Sent: Thursday, July 18, 2013 7:44 AM
> To: rtems-devel at rtems.org
> Subject: [PATCH] clean up all the spatomic test cases
> 
> ---
> c/src/lib/libbsp/bfin/acinclude.m4           |    4 +-
> c/src/lib/libbsp/powerpc/acinclude.m4        |    4 +-
> testsuites/sptests/Makefile.am               |    4 +-
> testsuites/sptests/configure.ac              |    7 --
> testsuites/sptests/spatomic01/Makefile.am    |   24 ------
> testsuites/sptests/spatomic01/init.c         |   63 --------------
> testsuites/sptests/spatomic01/spatomic01.doc |   23 -----
> testsuites/sptests/spatomic01/spatomic01.scn |   70 ---------------
> testsuites/sptests/spatomic01/system.h       |   51 -----------
> testsuites/sptests/spatomic01/tasks.c        |   93 --------------------
> testsuites/sptests/spatomic02/Makefile.am    |   24 ------
> testsuites/sptests/spatomic02/init.c         |   68 ---------------
> testsuites/sptests/spatomic02/spatomic02.doc |   23 -----
> testsuites/sptests/spatomic02/spatomic02.scn |   70 ---------------
> testsuites/sptests/spatomic02/system.h       |   51 -----------
> testsuites/sptests/spatomic02/tasks.c        |   94 ---------------------
> testsuites/sptests/spatomic03/Makefile.am    |   24 ------
> testsuites/sptests/spatomic03/init.c         |   68 ---------------
> testsuites/sptests/spatomic03/spatomic03.doc |   23 -----
> testsuites/sptests/spatomic03/spatomic03.scn |  102 ----------------------
> testsuites/sptests/spatomic03/system.h       |   51 -----------
> testsuites/sptests/spatomic03/tasks.c        |  102 ----------------------
> testsuites/sptests/spatomic04/Makefile.am    |   24 ------
> testsuites/sptests/spatomic04/init.c         |   68 ---------------
> testsuites/sptests/spatomic04/spatomic04.doc |   23 -----
> testsuites/sptests/spatomic04/spatomic04.scn |  102 ----------------------
> testsuites/sptests/spatomic04/system.h       |   51 -----------
> testsuites/sptests/spatomic04/tasks.c        |  102 ----------------------
> testsuites/sptests/spatomic05/Makefile.am    |   24 ------
> testsuites/sptests/spatomic05/init.c         |   68 ---------------
> testsuites/sptests/spatomic05/spatomic05.doc |   23 -----
> testsuites/sptests/spatomic05/spatomic05.scn |  102 ----------------------
> testsuites/sptests/spatomic05/system.h       |   51 -----------
> testsuites/sptests/spatomic05/tasks.c        |  101 ----------------------
> testsuites/sptests/spatomic06/Makefile.am    |   24 ------
> testsuites/sptests/spatomic06/init.c         |   68 ---------------
> testsuites/sptests/spatomic06/spatomic06.doc |   23 -----
> testsuites/sptests/spatomic06/spatomic06.scn |  102 ----------------------
> testsuites/sptests/spatomic06/system.h       |   51 -----------
> testsuites/sptests/spatomic06/tasks.c        |  101 ----------------------
> testsuites/sptests/spatomic07/Makefile.am    |   24 ------
> testsuites/sptests/spatomic07/init.c         |   68 ---------------
> testsuites/sptests/spatomic07/spatomic07.doc |   24 ------
> testsuites/sptests/spatomic07/spatomic07.scn |  102 ----------------------
> testsuites/sptests/spatomic07/system.h       |   51 -----------
> testsuites/sptests/spatomic07/tasks.c        |  117 --------------------------
> 46 files changed, 5 insertions(+), 2532 deletions(-)
> delete mode 100644 testsuites/sptests/spatomic01/Makefile.am
> delete mode 100644 testsuites/sptests/spatomic01/init.c
> delete mode 100644 testsuites/sptests/spatomic01/spatomic01.doc
> delete mode 100644 testsuites/sptests/spatomic01/spatomic01.scn
> delete mode 100644 testsuites/sptests/spatomic01/system.h
> delete mode 100644 testsuites/sptests/spatomic01/tasks.c
> delete mode 100644 testsuites/sptests/spatomic02/Makefile.am
> delete mode 100644 testsuites/sptests/spatomic02/init.c
> delete mode 100644 testsuites/sptests/spatomic02/spatomic02.doc
> delete mode 100644 testsuites/sptests/spatomic02/spatomic02.scn
> delete mode 100644 testsuites/sptests/spatomic02/system.h
> delete mode 100644 testsuites/sptests/spatomic02/tasks.c
> delete mode 100644 testsuites/sptests/spatomic03/Makefile.am
> delete mode 100644 testsuites/sptests/spatomic03/init.c
> delete mode 100644 testsuites/sptests/spatomic03/spatomic03.doc
> delete mode 100644 testsuites/sptests/spatomic03/spatomic03.scn
> delete mode 100644 testsuites/sptests/spatomic03/system.h
> delete mode 100644 testsuites/sptests/spatomic03/tasks.c
> delete mode 100644 testsuites/sptests/spatomic04/Makefile.am
> delete mode 100644 testsuites/sptests/spatomic04/init.c
> delete mode 100644 testsuites/sptests/spatomic04/spatomic04.doc
> delete mode 100644 testsuites/sptests/spatomic04/spatomic04.scn
> delete mode 100644 testsuites/sptests/spatomic04/system.h
> delete mode 100644 testsuites/sptests/spatomic04/tasks.c
> delete mode 100644 testsuites/sptests/spatomic05/Makefile.am
> delete mode 100644 testsuites/sptests/spatomic05/init.c
> delete mode 100644 testsuites/sptests/spatomic05/spatomic05.doc
> delete mode 100644 testsuites/sptests/spatomic05/spatomic05.scn
> delete mode 100644 testsuites/sptests/spatomic05/system.h
> delete mode 100644 testsuites/sptests/spatomic05/tasks.c
> delete mode 100644 testsuites/sptests/spatomic06/Makefile.am
> delete mode 100644 testsuites/sptests/spatomic06/init.c
> delete mode 100644 testsuites/sptests/spatomic06/spatomic06.doc
> delete mode 100644 testsuites/sptests/spatomic06/spatomic06.scn
> delete mode 100644 testsuites/sptests/spatomic06/system.h
> delete mode 100644 testsuites/sptests/spatomic06/tasks.c
> delete mode 100644 testsuites/sptests/spatomic07/Makefile.am
> delete mode 100644 testsuites/sptests/spatomic07/init.c
> delete mode 100644 testsuites/sptests/spatomic07/spatomic07.doc
> delete mode 100644 testsuites/sptests/spatomic07/spatomic07.scn
> delete mode 100644 testsuites/sptests/spatomic07/system.h
> delete mode 100644 testsuites/sptests/spatomic07/tasks.c
> 
> diff --git a/c/src/lib/libbsp/bfin/acinclude.m4 b/c/src/lib/libbsp/bfin/acinclude.m4
> index 828fd89..ab6082e 100644
> --- a/c/src/lib/libbsp/bfin/acinclude.m4
> +++ b/c/src/lib/libbsp/bfin/acinclude.m4
> @@ -2,12 +2,12 @@
> AC_DEFUN([RTEMS_CHECK_BSPDIR],
> [
>   case "$1" in
> +  TLL6527M )
> +    AC_CONFIG_SUBDIRS([TLL6527M]);;
>   bf537Stamp )
>     AC_CONFIG_SUBDIRS([bf537Stamp]);;
>   eZKit533 )
>     AC_CONFIG_SUBDIRS([eZKit533]);;
> -  TLL6527M )
> -    AC_CONFIG_SUBDIRS([TLL6527M]);;
>   *)
>     AC_MSG_ERROR([Invalid BSP]);;
>   esac
> diff --git a/c/src/lib/libbsp/powerpc/acinclude.m4 b/c/src/lib/libbsp/powerpc/acinclude.m4
> index e46fa2b..6442399 100644
> --- a/c/src/lib/libbsp/powerpc/acinclude.m4
> +++ b/c/src/lib/libbsp/powerpc/acinclude.m4
> @@ -38,12 +38,12 @@ AC_DEFUN([RTEMS_CHECK_BSPDIR],
>     AC_CONFIG_SUBDIRS([t32mppc]);;
>   tqm8xx )
>     AC_CONFIG_SUBDIRS([tqm8xx]);;
> +  virtex )
> +    AC_CONFIG_SUBDIRS([virtex]);;
>   virtex4 )
>     AC_CONFIG_SUBDIRS([virtex4]);;
>   virtex5 )
>     AC_CONFIG_SUBDIRS([virtex5]);;
> -  virtex )
> -    AC_CONFIG_SUBDIRS([virtex]);;
>   *)
>     AC_MSG_ERROR([Invalid BSP]);;
>   esac
> diff --git a/testsuites/sptests/Makefile.am b/testsuites/sptests/Makefile.am
> index 8e61968..e0dfb05 100644
> --- a/testsuites/sptests/Makefile.am
> +++ b/testsuites/sptests/Makefile.am
> @@ -27,9 +27,7 @@ SUBDIRS = \
>     spintrcritical17 spintrcritical18 spmkdir spmountmgr01 spheapprot \
>     spsem01 spsem02 spsimplesched01 spsimplesched02 spsimplesched03 spnsext01 \
>     spedfsched01 spedfsched02 spedfsched03 \
> -    spcbssched01 spcbssched02 spcbssched03 spqreslib sptimespec01 \
> -    spatomic01 spatomic02 spatomic03 spatomic04 spatomic05 \
> -    spatomic06 spatomic07
> +    spcbssched01 spcbssched02 spcbssched03 spqreslib sptimespec01
> SUBDIRS += spcontext01
> SUBDIRS += spfatal26
> SUBDIRS += speventtransient01
> diff --git a/testsuites/sptests/configure.ac b/testsuites/sptests/configure.ac
> index db44659..c2a2f11 100644
> --- a/testsuites/sptests/configure.ac
> +++ b/testsuites/sptests/configure.ac
> @@ -117,13 +117,6 @@ sp76/Makefile
> sp77/Makefile
> sp2038/Makefile
> spassoc01/Makefile
> -spatomic01/Makefile
> -spatomic02/Makefile
> -spatomic03/Makefile
> -spatomic04/Makefile
> -spatomic05/Makefile
> -spatomic06/Makefile
> -spatomic07/Makefile
> spcbssched01/Makefile
> spcbssched02/Makefile
> spcbssched03/Makefile
> diff --git a/testsuites/sptests/spatomic01/Makefile.am b/testsuites/sptests/spatomic01/Makefile.am
> deleted file mode 100644
> index 3bf1e11..0000000
> --- a/testsuites/sptests/spatomic01/Makefile.am
> +++ /dev/null
> @@ -1,24 +0,0 @@
> -if ATOMIC
> -rtems_tests_PROGRAMS = spatomic01
> -spatomic01_SOURCES = init.c tasks.c system.h
> -
> -dist_rtems_tests_DATA = spatomic01.scn
> -dist_rtems_tests_DATA += spatomic01.doc
> -endif
> -
> -include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP at .cfg
> -include $(top_srcdir)/../automake/compile.am
> -include $(top_srcdir)/../automake/leaf.am
> -
> -if ATOMIC
> -AM_CPPFLAGS += -I$(top_srcdir)/../support/include
> -
> -LINK_OBJS = $(spatomic01_OBJECTS)
> -LINK_LIBS = $(spatomic01_LDLIBS)
> -
> -spatomic01$(EXEEXT): $(spatomic01_OBJECTS) $(spatomic01_DEPENDENCIES)
> -       @rm -f spatomic01$(EXEEXT)
> -       $(make-exe)
> -endif
> -
> -include $(top_srcdir)/../automake/local.am
> diff --git a/testsuites/sptests/spatomic01/init.c b/testsuites/sptests/spatomic01/init.c
> deleted file mode 100644
> index 7326bf7..0000000
> --- a/testsuites/sptests/spatomic01/init.c
> +++ /dev/null
> @@ -1,63 +0,0 @@
> -/*
> - * Copyright (c) 2012 Deng Hengyi.
> - *
> - *  This test case is to test atomic load operation.
> - *
> - *  The license and distribution terms for this file may be
> - *  found in the file LICENSE in this distribution or at
> - *  http://www.rtems.com/license/LICENSE.
> - *
> - */
> -#ifdef HAVE_CONFIG_H
> -#include "config.h"
> -#endif
> -
> -#define CONFIGURE_INIT
> -#include "system.h"
> -
> -rtems_task Init(
> -  rtems_task_argument argument
> -)
> -{
> -  int                i;
> -  char               ch;
> -  rtems_id           id;
> -  rtems_status_code  status;
> -
> -  /* Put start of test message */
> -  puts( "\n\n***  spatomic01 TEST ***\n" );
> -
> -  /* Create and start tasks to test */
> -  for ( i=0; i< TASK_NUMS ; i++ ) {
> -    ch = '0' + i;
> -
> -    status = rtems_task_create(
> -      rtems_build_name( 'T', 'A', ch, ' ' ),
> -      1,
> -      RTEMS_MINIMUM_STACK_SIZE,
> -      RTEMS_DEFAULT_MODES,
> -      RTEMS_DEFAULT_ATTRIBUTES,
> -      &id
> -    );
> -    directive_failed( status, "task create" );
> -
> -    status = rtems_task_start( id, Test_task, i );
> -    directive_failed( status, "task start" );
> -  }
> -
> -  status = rtems_task_create(
> -      rtems_build_name( 'A', 'T', '0', ' ' ),
> -      1,
> -      RTEMS_MINIMUM_STACK_SIZE,
> -      RTEMS_DEFAULT_MODES,
> -      RTEMS_DEFAULT_ATTRIBUTES,
> -      &id
> -    );
> -  directive_failed( status, "task create" );
> -
> -  status = rtems_task_start( id, Wait_task, 0 );
> -  directive_failed( status, "task start" );
> -
> -  status = rtems_task_delete( RTEMS_SELF );
> -  directive_failed( status, "delete" );
> -}
> diff --git a/testsuites/sptests/spatomic01/spatomic01.doc b/testsuites/sptests/spatomic01/spatomic01.doc
> deleted file mode 100644
> index dc322a3..0000000
> --- a/testsuites/sptests/spatomic01/spatomic01.doc
> +++ /dev/null
> @@ -1,23 +0,0 @@
> -#  COPYRIGHT (c) 1989-2012.
> -#  On-Line Applications Research Corporation (OAR).
> -#
> -#  The license and distribution terms for this file may be
> -#  found in the file LICENSE in this distribution or at
> -#  http://www.rtems.com/license/LICENSE.
> -#
> -
> -This file describes the directives and concepts tested by this test set.
> -
> -test set name:  spatomic01
> -
> -directives:
> -
> -  _Atomic_Load_int
> -  _Atomic_Load_long
> -  _Atomic_Load_ptr
> -  _Atomic_Load_32
> -  _Atomic_Load_64
> -
> -concepts:
> -
> -+ Ensure that the atomic load operations listed above behave as defined.
> diff --git a/testsuites/sptests/spatomic01/spatomic01.scn b/testsuites/sptests/spatomic01/spatomic01.scn
> deleted file mode 100644
> index 9979d80..0000000
> --- a/testsuites/sptests/spatomic01/spatomic01.scn
> +++ /dev/null
> @@ -1,70 +0,0 @@
> -***  spatomic01 TEST ***
> -
> -
> -task0: _Atomic_Load_int: SUCCESS
> -
> -task0: _Atomic_Load_long: SUCCESS
> -
> -task0: _Atomic_Load_ptr: SUCCESS
> -
> -task0: _Atomic_Load_32: SUCCESS
> -
> -task0: _Atomic_Load_int: SUCCESS
> -
> -task0: _Atomic_Load_long: SUCCESS
> -
> -task0: _Atomic_Load_ptr: SUCCESS
> -
> -task0: _Atomic_Load_32: SUCCESS
> -
> -task1: _Atomic_Load_int: SUCCESS
> -
> -task1: _Atomic_Load_long: SUCCESS
> -
> -task1: _Atomic_Load_ptr: SUCCESS
> -
> -task1: _Atomic_Load_32: SUCCESS
> -
> -task1: _Atomic_Load_int: SUCCESS
> -
> -task1: _Atomic_Load_long: SUCCESS
> -
> -task1: _Atomic_Load_ptr: SUCCESS
> -
> -task1: _Atomic_Load_32: SUCCESS
> -
> -task2: _Atomic_Load_int: SUCCESS
> -
> -task2: _Atomic_Load_long: SUCCESS
> -
> -task2: _Atomic_Load_ptr: SUCCESS
> -
> -task2: _Atomic_Load_32: SUCCESS
> -
> -task2: _Atomic_Load_int: SUCCESS
> -
> -task2: _Atomic_Load_long: SUCCESS
> -
> -task2: _Atomic_Load_ptr: SUCCESS
> -
> -task2: _Atomic_Load_32: SUCCESS
> -
> -task3: _Atomic_Load_int: SUCCESS
> -
> -task3: _Atomic_Load_long: SUCCESS
> -
> -task3: _Atomic_Load_ptr: SUCCESS
> -
> -task3: _Atomic_Load_32: SUCCESS
> -
> -task3: _Atomic_Load_int: SUCCESS
> -
> -task3: _Atomic_Load_long: SUCCESS
> -
> -task3: _Atomic_Load_ptr: SUCCESS
> -
> -task3: _Atomic_Load_32: SUCCESS
> -
> -
> -*** END OF TEST spatomic01 ***
> -
> diff --git a/testsuites/sptests/spatomic01/system.h b/testsuites/sptests/spatomic01/system.h
> deleted file mode 100644
> index 55931f2..0000000
> --- a/testsuites/sptests/spatomic01/system.h
> +++ /dev/null
> @@ -1,51 +0,0 @@
> -/*
> - *  COPYRIGHT (c) 1989-2011.
> - *  On-Line Applications Research Corporation (OAR).
> - *
> - *  The license and distribution terms for this file may be
> - *  found in the file LICENSE in this distribution or at
> - *  http://www.rtems.com/license/LICENSE.
> - */
> -
> -#include "tmacros.h"
> -#include "test_support.h"
> -
> -/* functions */
> -
> -rtems_task Init(
> -  rtems_task_argument argument
> -);
> -
> -rtems_task Test_task(
> -  rtems_task_argument argument
> -);
> -
> -rtems_task Wait_task(
> -  rtems_task_argument argument
> -);
> -/* configuration information */
> -#define TASK_NUMS 4
> -
> -#define CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
> -#define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
> -
> -#define CONFIGURE_MAXIMUM_TASKS            \
> -    (2 + TASK_NUMS)
> -
> -#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
> -
> -#include <rtems/confdefs.h>
> -
> -/* global variables */
> -
> -/*
> - *  Keep the names and IDs in global variables so another task can use them.
> - */
> -
> -TEST_EXTERN volatile bool TaskRan[ TASK_NUMS ];
> -
> -/*
> - *  Handy macros and static inline functions
> - */
> -
> -/* end of include file */
> diff --git a/testsuites/sptests/spatomic01/tasks.c b/testsuites/sptests/spatomic01/tasks.c
> deleted file mode 100644
> index 9392a5b..0000000
> --- a/testsuites/sptests/spatomic01/tasks.c
> +++ /dev/null
> @@ -1,93 +0,0 @@
> -/*
> - * Copyright (c) 2012 Deng Hengyi.
> - *
> - *  This test case is to test atomic load operation.
> - *
> - *  The license and distribution terms for this file may be
> - *  found in the file LICENSE in this distribution or at
> - *  http://www.rtems.com/license/LICENSE.
> - *
> - */
> -
> -#ifdef HAVE_CONFIG_H
> -#include "config.h"
> -#endif
> -
> -#include "system.h"
> -
> -#include <stdlib.h>
> -#include <rtems/rtems/atomic.h>
> -
> -#define TEST_REPEAT 1000
> -
> -#define ATOMIC_LOAD_NO_BARRIER(NAME, TYPE, R_TYPE, task_id, mem_bar)     \
> -{                                                        \
> -  Atomic_##TYPE t;                                       \
> -  R_TYPE a;                                              \
> -  R_TYPE b;                                              \
> -  unsigned int i;                                        \
> -  for (i = 0; i < TEST_REPEAT; i++){                     \
> -    b = (R_TYPE)rand();                                  \
> -    atomic_init(&t, b);                                  \
> -    a = _Atomic_Load_##NAME(&t, mem_bar);                \
> -    rtems_test_assert(a == b);                           \
> -  }                                                      \
> -  printf("\ntask%d: Atomic_Load_" #NAME ": SUCCESS\n", (unsigned int)task_id); \
> -}
> -
> -rtems_task Test_task(
> -    rtems_task_argument argument
> -    )
> -{
> -  char              name[5];
> -  char             *p;
> -  rtems_status_code  status;
> -
> -  /* Get the task name */
> -  p = rtems_object_get_name( RTEMS_SELF, 5, name );
> -  rtems_test_assert( p != NULL );
> -
> -  /* Print that the task is up and running. */
> -  /* test relaxed barrier */
> -  ATOMIC_LOAD_NO_BARRIER(uint, Uint, uint_fast32_t, argument, ATOMIC_ORDER_RELAXED);
> -
> -  ATOMIC_LOAD_NO_BARRIER(ptr, Pointer, uintptr_t, argument, ATOMIC_ORDER_RELAXED);
> -
> -  /* test acquire barrier */
> -  ATOMIC_LOAD_NO_BARRIER(uint, Uint, uint_fast32_t, argument, ATOMIC_ORDER_ACQUIRE);
> -
> -  ATOMIC_LOAD_NO_BARRIER(ptr, Pointer, uintptr_t, argument, ATOMIC_ORDER_ACQUIRE);
> -
> -  /* Set the flag that the task is up and running */
> -  TaskRan[argument] = true;
> -
> -  status = rtems_task_delete( RTEMS_SELF );
> -  directive_failed( status, "delete" );
> -}
> -
> -rtems_task Wait_task(
> -    rtems_task_argument argument
> -    )
> -{
> -  char              name[5];
> -  char             *p;
> -  bool               allDone;
> -  int                i;
> -
> -  /* Get the task name */
> -  p = rtems_object_get_name( RTEMS_SELF, 5, name );
> -  rtems_test_assert( p != NULL );
> -
> -  /* Wait on the all tasks to run */
> -  while (1) {
> -    allDone = true;
> -    for ( i=0; i<TASK_NUMS ; i++ ) {
> -      if (TaskRan[i] == false)
> -        allDone = false;
> -    }
> -    if (allDone) {
> -      puts( "\n\n*** END OF TEST spatomic01 ***\n" );
> -      rtems_test_exit( 0 );
> -    }
> -  }
> -}
> diff --git a/testsuites/sptests/spatomic02/Makefile.am b/testsuites/sptests/spatomic02/Makefile.am
> deleted file mode 100644
> index cf3e655..0000000
> --- a/testsuites/sptests/spatomic02/Makefile.am
> +++ /dev/null
> @@ -1,24 +0,0 @@
> -if ATOMIC
> -rtems_tests_PROGRAMS = spatomic02
> -spatomic02_SOURCES = init.c tasks.c system.h
> -
> -dist_rtems_tests_DATA = spatomic02.scn
> -dist_rtems_tests_DATA += spatomic02.doc
> -endif
> -
> -include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP at .cfg
> -include $(top_srcdir)/../automake/compile.am
> -include $(top_srcdir)/../automake/leaf.am
> -
> -if ATOMIC
> -AM_CPPFLAGS += -I$(top_srcdir)/../support/include
> -
> -LINK_OBJS = $(spatomic02_OBJECTS)
> -LINK_LIBS = $(spatomic02_LDLIBS)
> -
> -spatomic02$(EXEEXT): $(spatomic02_OBJECTS) $(spatomic02_DEPENDENCIES)
> -       @rm -f spatomic01$(EXEEXT)
> -       $(make-exe)
> -endif
> -
> -include $(top_srcdir)/../automake/local.am
> diff --git a/testsuites/sptests/spatomic02/init.c b/testsuites/sptests/spatomic02/init.c
> deleted file mode 100644
> index 7eec1ea..0000000
> --- a/testsuites/sptests/spatomic02/init.c
> +++ /dev/null
> @@ -1,68 +0,0 @@
> -/*
> - * Copyright (c) 2012 Deng Hengyi.
> - *
> - *  This test case is to test atomic store operation.
> - *
> - *  The license and distribution terms for this file may be
> - *  found in the file LICENSE in this distribution or at
> - *  http://www.rtems.com/license/LICENSE.
> - *
> - */
> -#ifdef HAVE_CONFIG_H
> -#include "config.h"
> -#endif
> -
> -#define CONFIGURE_INIT
> -#include "system.h"
> -
> -rtems_task Init(
> -  rtems_task_argument argument
> -)
> -{
> -  int                i;
> -  char               ch;
> -  rtems_id           id;
> -  rtems_status_code  status;
> -
> -  /* Put start of test message */
> -  puts( "\n\n***  spatomic02 TEST ***\n" );
> -
> -  /* Initialize the TaskRan array */
> -  for ( i=0; i<TASK_NUMS ; i++ ) {
> -    TaskRan[i] = false;
> -  }
> -
> -  /* Create and start tasks for each processor */
> -  for ( i=0; i< TASK_NUMS ; i++ ) {
> -    ch = '0' + i;
> -
> -    status = rtems_task_create(
> -      rtems_build_name( 'T', 'A', ch, ' ' ),
> -      1,
> -      RTEMS_MINIMUM_STACK_SIZE,
> -      RTEMS_DEFAULT_MODES,
> -      RTEMS_DEFAULT_ATTRIBUTES,
> -      &id
> -    );
> -    directive_failed( status, "task create" );
> -
> -    status = rtems_task_start( id, Test_task, i );
> -    directive_failed( status, "task start" );
> -  }
> -
> -  status = rtems_task_create(
> -      rtems_build_name( 'A', 'T', '0', ' ' ),
> -      1,
> -      RTEMS_MINIMUM_STACK_SIZE,
> -      RTEMS_DEFAULT_MODES,
> -      RTEMS_DEFAULT_ATTRIBUTES,
> -      &id
> -    );
> -  directive_failed( status, "task create" );
> -
> -  status = rtems_task_start( id, Wait_task, 0 );
> -  directive_failed( status, "task start" );
> -
> -  status = rtems_task_delete( RTEMS_SELF );
> -  directive_failed( status, "delete" );
> -}
> diff --git a/testsuites/sptests/spatomic02/spatomic02.doc b/testsuites/sptests/spatomic02/spatomic02.doc
> deleted file mode 100644
> index 70e6744..0000000
> --- a/testsuites/sptests/spatomic02/spatomic02.doc
> +++ /dev/null
> @@ -1,23 +0,0 @@
> -#  COPYRIGHT (c) 1989-2012.
> -#  On-Line Applications Research Corporation (OAR).
> -#
> -#  The license and distribution terms for this file may be
> -#  found in the file LICENSE in this distribution or at
> -#  http://www.rtems.com/license/LICENSE.
> -#
> -
> -This file describes the directives and concepts tested by this test set.
> -
> -test set name:  spatomic02
> -
> -directives:
> -
> -  _Atomic_Store_int
> -  _Atomic_Store_long
> -  _Atomic_Store_ptr
> -  _Atomic_Store_32
> -  _Atomic_Store_64
> -
> -concepts:
> -
> -+ Ensure that the atomic store operations listed above behave as defined.
> diff --git a/testsuites/sptests/spatomic02/spatomic02.scn b/testsuites/sptests/spatomic02/spatomic02.scn
> deleted file mode 100644
> index 31ba7e9..0000000
> --- a/testsuites/sptests/spatomic02/spatomic02.scn
> +++ /dev/null
> @@ -1,70 +0,0 @@
> -***  spatomic02 TEST ***
> -
> -
> -task0: _Atomic_Store_int: SUCCESS
> -
> -task0: _Atomic_Store_long: SUCCESS
> -
> -task0: _Atomic_Store_ptr: SUCCESS
> -
> -task0: _Atomic_Store_32: SUCCESS
> -
> -task0: _Atomic_Store_int: SUCCESS
> -
> -task0: _Atomic_Store_long: SUCCESS
> -
> -task0: _Atomic_Store_ptr: SUCCESS
> -
> -task0: _Atomic_Store_32: SUCCESS
> -
> -task1: _Atomic_Store_int: SUCCESS
> -
> -task1: _Atomic_Store_long: SUCCESS
> -
> -task1: _Atomic_Store_ptr: SUCCESS
> -
> -task1: _Atomic_Store_32: SUCCESS
> -
> -task1: _Atomic_Store_int: SUCCESS
> -
> -task1: _Atomic_Store_long: SUCCESS
> -
> -task1: _Atomic_Store_ptr: SUCCESS
> -
> -task1: _Atomic_Store_32: SUCCESS
> -
> -task2: _Atomic_Store_int: SUCCESS
> -
> -task2: _Atomic_Store_long: SUCCESS
> -
> -task2: _Atomic_Store_ptr: SUCCESS
> -
> -task2: _Atomic_Store_32: SUCCESS
> -
> -task2: _Atomic_Store_int: SUCCESS
> -
> -task2: _Atomic_Store_long: SUCCESS
> -
> -task2: _Atomic_Store_ptr: SUCCESS
> -
> -task2: _Atomic_Store_32: SUCCESS
> -
> -task3: _Atomic_Store_int: SUCCESS
> -
> -task3: _Atomic_Store_long: SUCCESS
> -
> -task3: _Atomic_Store_ptr: SUCCESS
> -
> -task3: _Atomic_Store_32: SUCCESS
> -
> -task3: _Atomic_Store_int: SUCCESS
> -
> -task3: _Atomic_Store_long: SUCCESS
> -
> -task3: _Atomic_Store_ptr: SUCCESS
> -
> -task3: _Atomic_Store_32: SUCCESS
> -
> -
> -*** END OF TEST spatomic02 ***
> -
> diff --git a/testsuites/sptests/spatomic02/system.h b/testsuites/sptests/spatomic02/system.h
> deleted file mode 100644
> index 55931f2..0000000
> --- a/testsuites/sptests/spatomic02/system.h
> +++ /dev/null
> @@ -1,51 +0,0 @@
> -/*
> - *  COPYRIGHT (c) 1989-2011.
> - *  On-Line Applications Research Corporation (OAR).
> - *
> - *  The license and distribution terms for this file may be
> - *  found in the file LICENSE in this distribution or at
> - *  http://www.rtems.com/license/LICENSE.
> - */
> -
> -#include "tmacros.h"
> -#include "test_support.h"
> -
> -/* functions */
> -
> -rtems_task Init(
> -  rtems_task_argument argument
> -);
> -
> -rtems_task Test_task(
> -  rtems_task_argument argument
> -);
> -
> -rtems_task Wait_task(
> -  rtems_task_argument argument
> -);
> -/* configuration information */
> -#define TASK_NUMS 4
> -
> -#define CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
> -#define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
> -
> -#define CONFIGURE_MAXIMUM_TASKS            \
> -    (2 + TASK_NUMS)
> -
> -#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
> -
> -#include <rtems/confdefs.h>
> -
> -/* global variables */
> -
> -/*
> - *  Keep the names and IDs in global variables so another task can use them.
> - */
> -
> -TEST_EXTERN volatile bool TaskRan[ TASK_NUMS ];
> -
> -/*
> - *  Handy macros and static inline functions
> - */
> -
> -/* end of include file */
> diff --git a/testsuites/sptests/spatomic02/tasks.c b/testsuites/sptests/spatomic02/tasks.c
> deleted file mode 100644
> index 558b718..0000000
> --- a/testsuites/sptests/spatomic02/tasks.c
> +++ /dev/null
> @@ -1,94 +0,0 @@
> -/*
> - * Copyright (c) 2012 Deng Hengyi.
> - *
> - *  This test case is to test atomic store operation.
> - *
> - *  The license and distribution terms for this file may be
> - *  found in the file LICENSE in this distribution or at
> - *  http://www.rtems.com/license/LICENSE.
> - *
> - */
> -
> -#ifdef HAVE_CONFIG_H
> -#include "config.h"
> -#endif
> -
> -#include "system.h"
> -
> -#include <stdlib.h>
> -#include <rtems/rtems/atomic.h>
> -
> -#define TEST_REPEAT 1000
> -
> -#define ATOMIC_STORE_NO_BARRIER(NAME, TYPE, R_TYPE, task_id, mem_bar)    \
> -{                                                        \
> -  Atomic_##TYPE t;                                       \
> -  R_TYPE a;                                              \
> -  R_TYPE b;                                              \
> -  unsigned int i;                                        \
> -  for (i = 0; i < TEST_REPEAT; i++){                     \
> -    b = (R_TYPE)rand();                                  \
> -    _Atomic_Store_##NAME(&t, b, mem_bar);                \
> -    a = _Atomic_Load_##NAME(&t, memory_order_relaxed);   \
> -    rtems_test_assert(a == b);                           \
> -  }                                                      \
> -  printf("\ntask%d: Atomic_Store_" #NAME ": SUCCESS\n", (unsigned int)task_id); \
> -}
> -
> -rtems_task Test_task(
> -    rtems_task_argument argument
> -    )
> -{
> -  char              name[5];
> -  char             *p;
> -  rtems_status_code  status;
> -
> -  /* Get the task name */
> -  p = rtems_object_get_name( RTEMS_SELF, 5, name );
> -  rtems_test_assert( p != NULL );
> -
> -  /* Print that the task is up and running. */
> -  /* test relaxed barrier */
> -  ATOMIC_STORE_NO_BARRIER(uint, Uint, uint_fast32_t, argument, ATOMIC_ORDER_RELAXED);
> -
> -  ATOMIC_STORE_NO_BARRIER(ptr, Pointer, uintptr_t, argument, ATOMIC_ORDER_RELAXED);
> -
> -  /* test release barrier */
> -  ATOMIC_STORE_NO_BARRIER(uint, Uint, uint_fast32_t, argument, ATOMIC_ORDER_RELEASE);
> -
> -  ATOMIC_STORE_NO_BARRIER(ptr, Pointer, uintptr_t, argument, ATOMIC_ORDER_RELEASE);
> -
> -  /* Set the flag that the task is up and running */
> -  TaskRan[argument] = true;
> -
> -  status = rtems_task_delete( RTEMS_SELF );
> -  directive_failed( status, "delete" );
> -}
> -
> -rtems_task Wait_task(
> -    rtems_task_argument argument
> -    )
> -{
> -  char              name[5];
> -  char             *p;
> -  bool               allDone;
> -  int                i;
> -
> -  /* Get the task name */
> -  p = rtems_object_get_name( RTEMS_SELF, 5, name );
> -  rtems_test_assert( p != NULL );
> -
> -  /* Wait on the all tasks to run */
> -  while (1) {
> -    allDone = true;
> -    for ( i=0; i<TASK_NUMS ; i++ ) {
> -      if (TaskRan[i] == false)
> -        allDone = false;
> -    }
> -    if (allDone) {
> -      puts( "\n\n*** END OF TEST spatomic02 ***\n" );
> -      rtems_test_exit( 0 );
> -    }
> -  }
> -}
> -
> diff --git a/testsuites/sptests/spatomic03/Makefile.am b/testsuites/sptests/spatomic03/Makefile.am
> deleted file mode 100644
> index 15b3b47..0000000
> --- a/testsuites/sptests/spatomic03/Makefile.am
> +++ /dev/null
> @@ -1,24 +0,0 @@
> -if ATOMIC
> -rtems_tests_PROGRAMS = spatomic03
> -spatomic03_SOURCES = init.c tasks.c system.h
> -
> -dist_rtems_tests_DATA = spatomic03.scn
> -dist_rtems_tests_DATA += spatomic03.doc
> -endif
> -
> -include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP at .cfg
> -include $(top_srcdir)/../automake/compile.am
> -include $(top_srcdir)/../automake/leaf.am
> -
> -if ATOMIC
> -AM_CPPFLAGS += -I$(top_srcdir)/../support/include
> -
> -LINK_OBJS = $(spatomic03_OBJECTS)
> -LINK_LIBS = $(spatomic03_LDLIBS)
> -
> -spatomic03$(EXEEXT): $(spatomic03_OBJECTS) $(spatomic03_DEPENDENCIES)
> -       @rm -f spatomic03$(EXEEXT)
> -       $(make-exe)
> -endif
> -
> -include $(top_srcdir)/../automake/local.am
> diff --git a/testsuites/sptests/spatomic03/init.c b/testsuites/sptests/spatomic03/init.c
> deleted file mode 100644
> index 946797e..0000000
> --- a/testsuites/sptests/spatomic03/init.c
> +++ /dev/null
> @@ -1,68 +0,0 @@
> -/*
> - * Copyright (c) 2012 Deng Hengyi.
> - *
> - *  This test case is to test atomic add operation.
> - *
> - *  The license and distribution terms for this file may be
> - *  found in the file LICENSE in this distribution or at
> - *  http://www.rtems.com/license/LICENSE.
> - *
> - */
> -#ifdef HAVE_CONFIG_H
> -#include "config.h"
> -#endif
> -
> -#define CONFIGURE_INIT
> -#include "system.h"
> -
> -rtems_task Init(
> -  rtems_task_argument argument
> -)
> -{
> -  int                i;
> -  char               ch;
> -  rtems_id           id;
> -  rtems_status_code  status;
> -
> -  /* Put start of test message */
> -  puts( "\n\n***  spatomic03 TEST ***\n" );
> -
> -  /* Initialize the TaskRan array */
> -  for ( i=0; i<TASK_NUMS ; i++ ) {
> -    TaskRan[i] = false;
> -  }
> -
> -  /* Create and start tasks for each processor */
> -  for ( i=0; i< TASK_NUMS ; i++ ) {
> -    ch = '0' + i;
> -
> -    status = rtems_task_create(
> -      rtems_build_name( 'T', 'A', ch, ' ' ),
> -      1,
> -      RTEMS_MINIMUM_STACK_SIZE,
> -      RTEMS_DEFAULT_MODES,
> -      RTEMS_DEFAULT_ATTRIBUTES,
> -      &id
> -    );
> -    directive_failed( status, "task create" );
> -
> -    status = rtems_task_start( id, Test_task, i );
> -    directive_failed( status, "task start" );
> -  }
> -
> -  status = rtems_task_create(
> -      rtems_build_name( 'A', 'T', '0', ' ' ),
> -      1,
> -      RTEMS_MINIMUM_STACK_SIZE,
> -      RTEMS_DEFAULT_MODES,
> -      RTEMS_DEFAULT_ATTRIBUTES,
> -      &id
> -    );
> -  directive_failed( status, "task create" );
> -
> -  status = rtems_task_start( id, Wait_task, 0 );
> -  directive_failed( status, "task start" );
> -
> -  status = rtems_task_delete( RTEMS_SELF );
> -  directive_failed( status, "delete" );
> -}
> diff --git a/testsuites/sptests/spatomic03/spatomic03.doc b/testsuites/sptests/spatomic03/spatomic03.doc
> deleted file mode 100644
> index 130dca9..0000000
> --- a/testsuites/sptests/spatomic03/spatomic03.doc
> +++ /dev/null
> @@ -1,23 +0,0 @@
> -#  COPYRIGHT (c) 1989-2012.
> -#  On-Line Applications Research Corporation (OAR).
> -#
> -#  The license and distribution terms for this file may be
> -#  found in the file LICENSE in this distribution or at
> -#  http://www.rtems.com/license/LICENSE.
> -#
> -
> -This file describes the directives and concepts tested by this test set.
> -
> -test set name:  spatomic03
> -
> -directives:
> -
> -  _Atomic_Fetch_add_int
> -  _Atomic_Fetch_add_long
> -  _Atomic_Fetch_add_ptr
> -  _Atomic_Fetch_add_32
> -  _Atomic_Fetch_add_64
> -
> -concepts:
> -
> -+ Ensure that the atomic add operations listed above behave as defined.
> diff --git a/testsuites/sptests/spatomic03/spatomic03.scn b/testsuites/sptests/spatomic03/spatomic03.scn
> deleted file mode 100644
> index 69216e5..0000000
> --- a/testsuites/sptests/spatomic03/spatomic03.scn
> +++ /dev/null
> @@ -1,102 +0,0 @@
> -***  spatomic03 TEST ***
> -
> -
> -task0: _Atomic_Fetch_add_int: SUCCESS
> -
> -task0: _Atomic_Fetch_add_long: SUCCESS
> -
> -task0: _Atomic_Fetch_add_ptr: SUCCESS
> -
> -task0: _Atomic_Fetch_add_32: SUCCESS
> -
> -task0: _Atomic_Fetch_add_int: SUCCESS
> -
> -task0: _Atomic_Fetch_add_long: SUCCESS
> -
> -task0: _Atomic_Fetch_add_ptr: SUCCESS
> -
> -task0: _Atomic_Fetch_add_32: SUCCESS
> -
> -task0: _Atomic_Fetch_add_int: SUCCESS
> -
> -task0: _Atomic_Fetch_add_long: SUCCESS
> -
> -task0: _Atomic_Fetch_add_ptr: SUCCESS
> -
> -task0: _Atomic_Fetch_add_32: SUCCESS
> -
> -task1: _Atomic_Fetch_add_int: SUCCESS
> -
> -task1: _Atomic_Fetch_add_long: SUCCESS
> -
> -task1: _Atomic_Fetch_add_ptr: SUCCESS
> -
> -task1: _Atomic_Fetch_add_32: SUCCESS
> -
> -task1: _Atomic_Fetch_add_int: SUCCESS
> -
> -task1: _Atomic_Fetch_add_long: SUCCESS
> -
> -task1: _Atomic_Fetch_add_ptr: SUCCESS
> -
> -task1: _Atomic_Fetch_add_32: SUCCESS
> -
> -task1: _Atomic_Fetch_add_int: SUCCESS
> -
> -task1: _Atomic_Fetch_add_long: SUCCESS
> -
> -task1: _Atomic_Fetch_add_ptr: SUCCESS
> -
> -task1: _Atomic_Fetch_add_32: SUCCESS
> -
> -task2: _Atomic_Fetch_add_int: SUCCESS
> -
> -task2: _Atomic_Fetch_add_long: SUCCESS
> -
> -task2: _Atomic_Fetch_add_ptr: SUCCESS
> -
> -task2: _Atomic_Fetch_add_32: SUCCESS
> -
> -task2: _Atomic_Fetch_add_int: SUCCESS
> -
> -task2: _Atomic_Fetch_add_long: SUCCESS
> -
> -task2: _Atomic_Fetch_add_ptr: SUCCESS
> -
> -task2: _Atomic_Fetch_add_32: SUCCESS
> -
> -task2: _Atomic_Fetch_add_int: SUCCESS
> -
> -task2: _Atomic_Fetch_add_long: SUCCESS
> -
> -task2: _Atomic_Fetch_add_ptr: SUCCESS
> -
> -task2: _Atomic_Fetch_add_32: SUCCESS
> -
> -task3: _Atomic_Fetch_add_int: SUCCESS
> -
> -task3: _Atomic_Fetch_add_long: SUCCESS
> -
> -task3: _Atomic_Fetch_add_ptr: SUCCESS
> -
> -task3: _Atomic_Fetch_add_32: SUCCESS
> -
> -task3: _Atomic_Fetch_add_int: SUCCESS
> -
> -task3: _Atomic_Fetch_add_long: SUCCESS
> -
> -task3: _Atomic_Fetch_add_ptr: SUCCESS
> -
> -task3: _Atomic_Fetch_add_32: SUCCESS
> -
> -task3: _Atomic_Fetch_add_int: SUCCESS
> -
> -task3: _Atomic_Fetch_add_long: SUCCESS
> -
> -task3: _Atomic_Fetch_add_ptr: SUCCESS
> -
> -task3: _Atomic_Fetch_add_32: SUCCESS
> -
> -
> -*** END OF TEST spatomic03 ***
> -
> diff --git a/testsuites/sptests/spatomic03/system.h b/testsuites/sptests/spatomic03/system.h
> deleted file mode 100644
> index 55931f2..0000000
> --- a/testsuites/sptests/spatomic03/system.h
> +++ /dev/null
> @@ -1,51 +0,0 @@
> -/*
> - *  COPYRIGHT (c) 1989-2011.
> - *  On-Line Applications Research Corporation (OAR).
> - *
> - *  The license and distribution terms for this file may be
> - *  found in the file LICENSE in this distribution or at
> - *  http://www.rtems.com/license/LICENSE.
> - */
> -
> -#include "tmacros.h"
> -#include "test_support.h"
> -
> -/* functions */
> -
> -rtems_task Init(
> -  rtems_task_argument argument
> -);
> -
> -rtems_task Test_task(
> -  rtems_task_argument argument
> -);
> -
> -rtems_task Wait_task(
> -  rtems_task_argument argument
> -);
> -/* configuration information */
> -#define TASK_NUMS 4
> -
> -#define CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
> -#define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
> -
> -#define CONFIGURE_MAXIMUM_TASKS            \
> -    (2 + TASK_NUMS)
> -
> -#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
> -
> -#include <rtems/confdefs.h>
> -
> -/* global variables */
> -
> -/*
> - *  Keep the names and IDs in global variables so another task can use them.
> - */
> -
> -TEST_EXTERN volatile bool TaskRan[ TASK_NUMS ];
> -
> -/*
> - *  Handy macros and static inline functions
> - */
> -
> -/* end of include file */
> diff --git a/testsuites/sptests/spatomic03/tasks.c b/testsuites/sptests/spatomic03/tasks.c
> deleted file mode 100644
> index d03cf54..0000000
> --- a/testsuites/sptests/spatomic03/tasks.c
> +++ /dev/null
> @@ -1,102 +0,0 @@
> -/*
> - * Copyright (c) 2012 Deng Hengyi.
> - *
> - *  This test case is to test atomic add operation.
> - *
> - *  The license and distribution terms for this file may be
> - *  found in the file LICENSE in this distribution or at
> - *  http://www.rtems.com/license/LICENSE.
> - *
> - */
> -
> -#ifdef HAVE_CONFIG_H
> -#include "config.h"
> -#endif
> -
> -#include "system.h"
> -
> -#include <stdlib.h>
> -#include <rtems/rtems/atomic.h>
> -
> -#define TEST_REPEAT 1000
> -
> -#define ATOMIC_FETCH_ADD_NO_BARRIER(NAME, TYPE, R_TYPE, task_id, mem_bar)\
> -{                                                        \
> -  Atomic_##TYPE t;                                       \
> -  R_TYPE a;                                              \
> -  R_TYPE b;                                              \
> -  R_TYPE c;                                              \
> -  unsigned int i;                                        \
> -  for (i = 0; i < TEST_REPEAT; i++){                     \
> -    a = (R_TYPE)(rand() % ((R_TYPE)-1 / 2));             \
> -    b = (R_TYPE)(rand() % ((R_TYPE)-1 / 2));             \
> -    _Atomic_Store_##NAME(&t, a, ATOMIC_ORDER_RELAXED);   \
> -    _Atomic_Fetch_add_##NAME(&t, b, mem_bar);            \
> -    c = _Atomic_Load_##NAME(&t, ATOMIC_ORDER_RELAXED);   \
> -    rtems_test_assert(c == (R_TYPE)(a + b));             \
> -  }                                                      \
> -  printf("\ntask%d: Atomic_Fetch_add_" #NAME ": SUCCESS\n", (unsigned int)task_id); \
> -}
> -
> -rtems_task Test_task(
> -    rtems_task_argument argument
> -    )
> -{
> -  char              name[5];
> -  char             *p;
> -  rtems_status_code  status;
> -
> -  /* Get the task name */
> -  p = rtems_object_get_name( RTEMS_SELF, 5, name );
> -  rtems_test_assert( p != NULL );
> -
> -  /* Print that the task is up and running. */
> -  /* test relaxed barrier */
> -  ATOMIC_FETCH_ADD_NO_BARRIER(uint, Uint, uint_fast32_t, argument, ATOMIC_ORDER_RELAXED);
> -
> -  ATOMIC_FETCH_ADD_NO_BARRIER(ptr, Pointer, uintptr_t, argument, ATOMIC_ORDER_RELAXED);
> -
> -  /* test acquire barrier */
> -  ATOMIC_FETCH_ADD_NO_BARRIER(uint, Uint, uint_fast32_t, argument, ATOMIC_ORDER_ACQUIRE);
> -
> -  ATOMIC_FETCH_ADD_NO_BARRIER(ptr, Pointer, uintptr_t, argument, ATOMIC_ORDER_ACQUIRE);
> -
> -  /* test release barrier */
> -  ATOMIC_FETCH_ADD_NO_BARRIER(uint, Uint, uint_fast32_t, argument, ATOMIC_ORDER_RELEASE);
> -
> -  ATOMIC_FETCH_ADD_NO_BARRIER(ptr, Pointer, uintptr_t, argument, ATOMIC_ORDER_RELEASE);
> -
> -  /* Set the flag that the task is up and running */
> -  TaskRan[argument] = true;
> -
> -  status = rtems_task_delete( RTEMS_SELF );
> -  directive_failed( status, "delete" );
> -}
> -
> -rtems_task Wait_task(
> -    rtems_task_argument argument
> -    )
> -{
> -  char              name[5];
> -  char             *p;
> -  bool               allDone;
> -  int                i;
> -
> -  /* Get the task name */
> -  p = rtems_object_get_name( RTEMS_SELF, 5, name );
> -  rtems_test_assert( p != NULL );
> -
> -  /* Wait on the all tasks to run */
> -  while (1) {
> -    allDone = true;
> -    for ( i=0; i<TASK_NUMS ; i++ ) {
> -      if (TaskRan[i] == false)
> -        allDone = false;
> -    }
> -    if (allDone) {
> -      puts( "\n\n*** END OF TEST spatomic03 ***\n" );
> -      rtems_test_exit( 0 );
> -    }
> -  }
> -}
> -
> diff --git a/testsuites/sptests/spatomic04/Makefile.am b/testsuites/sptests/spatomic04/Makefile.am
> deleted file mode 100644
> index d03e8b5..0000000
> --- a/testsuites/sptests/spatomic04/Makefile.am
> +++ /dev/null
> @@ -1,24 +0,0 @@
> -if ATOMIC
> -rtems_tests_PROGRAMS = spatomic04
> -spatomic04_SOURCES = init.c tasks.c system.h
> -
> -dist_rtems_tests_DATA = spatomic04.scn
> -dist_rtems_tests_DATA += spatomic04.doc
> -endif
> -
> -include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP at .cfg
> -include $(top_srcdir)/../automake/compile.am
> -include $(top_srcdir)/../automake/leaf.am
> -
> -if ATOMIC
> -AM_CPPFLAGS += -I$(top_srcdir)/../support/include
> -
> -LINK_OBJS = $(spatomic04_OBJECTS)
> -LINK_LIBS = $(spatomic04_LDLIBS)
> -
> -spatomic04$(EXEEXT): $(spatomic04_OBJECTS) $(spatomic04_DEPENDENCIES)
> -       @rm -f spatomic04$(EXEEXT)
> -       $(make-exe)
> -endif
> -
> -include $(top_srcdir)/../automake/local.am
> diff --git a/testsuites/sptests/spatomic04/init.c b/testsuites/sptests/spatomic04/init.c
> deleted file mode 100644
> index f0b0751..0000000
> --- a/testsuites/sptests/spatomic04/init.c
> +++ /dev/null
> @@ -1,68 +0,0 @@
> -/*
> - * Copyright (c) 2012 Deng Hengyi.
> - *
> - *  This test case is to test atomic sub operation.
> - *
> - *  The license and distribution terms for this file may be
> - *  found in the file LICENSE in this distribution or at
> - *  http://www.rtems.com/license/LICENSE.
> - *
> - */
> -#ifdef HAVE_CONFIG_H
> -#include "config.h"
> -#endif
> -
> -#define CONFIGURE_INIT
> -#include "system.h"
> -
> -rtems_task Init(
> -  rtems_task_argument argument
> -)
> -{
> -  int                i;
> -  char               ch;
> -  rtems_id           id;
> -  rtems_status_code  status;
> -
> -  /* Put start of test message */
> -  puts( "\n\n***  spatomic04 TEST ***\n" );
> -
> -  /* Initialize the TaskRan array */
> -  for ( i=0; i<TASK_NUMS ; i++ ) {
> -    TaskRan[i] = false;
> -  }
> -
> -  /* Create and start tasks for each processor */
> -  for ( i=0; i< TASK_NUMS ; i++ ) {
> -    ch = '0' + i;
> -
> -    status = rtems_task_create(
> -      rtems_build_name( 'T', 'A', ch, ' ' ),
> -      1,
> -      RTEMS_MINIMUM_STACK_SIZE,
> -      RTEMS_DEFAULT_MODES,
> -      RTEMS_DEFAULT_ATTRIBUTES,
> -      &id
> -    );
> -    directive_failed( status, "task create" );
> -
> -    status = rtems_task_start( id, Test_task, i );
> -    directive_failed( status, "task start" );
> -  }
> -
> -  status = rtems_task_create(
> -      rtems_build_name( 'A', 'T', '0', ' ' ),
> -      1,
> -      RTEMS_MINIMUM_STACK_SIZE,
> -      RTEMS_DEFAULT_MODES,
> -      RTEMS_DEFAULT_ATTRIBUTES,
> -      &id
> -    );
> -  directive_failed( status, "task create" );
> -
> -  status = rtems_task_start( id, Wait_task, 0 );
> -  directive_failed( status, "task start" );
> -
> -  status = rtems_task_delete( RTEMS_SELF );
> -  directive_failed( status, "delete" );
> -}
> diff --git a/testsuites/sptests/spatomic04/spatomic04.doc b/testsuites/sptests/spatomic04/spatomic04.doc
> deleted file mode 100644
> index 6fc8f09..0000000
> --- a/testsuites/sptests/spatomic04/spatomic04.doc
> +++ /dev/null
> @@ -1,23 +0,0 @@
> -#  COPYRIGHT (c) 1989-2012.
> -#  On-Line Applications Research Corporation (OAR).
> -#
> -#  The license and distribution terms for this file may be
> -#  found in the file LICENSE in this distribution or at
> -#  http://www.rtems.com/license/LICENSE.
> -#
> -
> -This file describes the directives and concepts tested by this test set.
> -
> -test set name:  spatomic04
> -
> -directives:
> -
> -  _Atomic_Fetch_sub_int
> -  _Atomic_Fetch_sub_long
> -  _Atomic_Fetch_sub_ptr
> -  _Atomic_Fetch_sub_32
> -  _Atomic_Fetch_sub_64
> -
> -concepts:
> -
> -+ Ensure that the atomic sub operations listed above behave as defined.
> diff --git a/testsuites/sptests/spatomic04/spatomic04.scn b/testsuites/sptests/spatomic04/spatomic04.scn
> deleted file mode 100644
> index 550e87e..0000000
> --- a/testsuites/sptests/spatomic04/spatomic04.scn
> +++ /dev/null
> @@ -1,102 +0,0 @@
> -patomic04 TEST ***
> -
> -
> -task0: _Atomic_Fetch_sub_int: SUCCESS
> -
> -task0: _Atomic_Fetch_sub_long: SUCCESS
> -
> -task0: _Atomic_Fetch_sub_ptr: SUCCESS
> -
> -task0: _Atomic_Fetch_sub_32: SUCCESS
> -
> -task0: _Atomic_Fetch_sub_int: SUCCESS
> -
> -task0: _Atomic_Fetch_sub_long: SUCCESS
> -
> -task0: _Atomic_Fetch_sub_ptr: SUCCESS
> -
> -task0: _Atomic_Fetch_sub_32: SUCCESS
> -
> -task0: _Atomic_Fetch_sub_int: SUCCESS
> -
> -task0: _Atomic_Fetch_sub_long: SUCCESS
> -
> -task0: _Atomic_Fetch_sub_ptr: SUCCESS
> -
> -task0: _Atomic_Fetch_sub_32: SUCCESS
> -
> -task1: _Atomic_Fetch_sub_int: SUCCESS
> -
> -task1: _Atomic_Fetch_sub_long: SUCCESS
> -
> -task1: _Atomic_Fetch_sub_ptr: SUCCESS
> -
> -task1: _Atomic_Fetch_sub_32: SUCCESS
> -
> -task1: _Atomic_Fetch_sub_int: SUCCESS
> -
> -task1: _Atomic_Fetch_sub_long: SUCCESS
> -
> -task1: _Atomic_Fetch_sub_ptr: SUCCESS
> -
> -task1: _Atomic_Fetch_sub_32: SUCCESS
> -
> -task1: _Atomic_Fetch_sub_int: SUCCESS
> -
> -task1: _Atomic_Fetch_sub_long: SUCCESS
> -
> -task1: _Atomic_Fetch_sub_ptr: SUCCESS
> -
> -task1: _Atomic_Fetch_sub_32: SUCCESS
> -
> -task2: _Atomic_Fetch_sub_int: SUCCESS
> -
> -task2: _Atomic_Fetch_sub_long: SUCCESS
> -
> -task2: _Atomic_Fetch_sub_ptr: SUCCESS
> -
> -task2: _Atomic_Fetch_sub_32: SUCCESS
> -
> -task2: _Atomic_Fetch_sub_int: SUCCESS
> -
> -task2: _Atomic_Fetch_sub_long: SUCCESS
> -
> -task2: _Atomic_Fetch_sub_ptr: SUCCESS
> -
> -task2: _Atomic_Fetch_sub_32: SUCCESS
> -
> -task2: _Atomic_Fetch_sub_int: SUCCESS
> -
> -task2: _Atomic_Fetch_sub_long: SUCCESS
> -
> -task2: _Atomic_Fetch_sub_ptr: SUCCESS
> -
> -task2: _Atomic_Fetch_sub_32: SUCCESS
> -
> -task3: _Atomic_Fetch_sub_int: SUCCESS
> -
> -task3: _Atomic_Fetch_sub_long: SUCCESS
> -
> -task3: _Atomic_Fetch_sub_ptr: SUCCESS
> -
> -task3: _Atomic_Fetch_sub_32: SUCCESS
> -
> -task3: _Atomic_Fetch_sub_int: SUCCESS
> -
> -task3: _Atomic_Fetch_sub_long: SUCCESS
> -
> -task3: _Atomic_Fetch_sub_ptr: SUCCESS
> -
> -task3: _Atomic_Fetch_sub_32: SUCCESS
> -
> -task3: _Atomic_Fetch_sub_int: SUCCESS
> -
> -task3: _Atomic_Fetch_sub_long: SUCCESS
> -
> -task3: _Atomic_Fetch_sub_ptr: SUCCESS
> -
> -task3: _Atomic_Fetch_sub_32: SUCCESS
> -
> -
> -*** END OF TEST spatomic04 ***
> -
> diff --git a/testsuites/sptests/spatomic04/system.h b/testsuites/sptests/spatomic04/system.h
> deleted file mode 100644
> index 55931f2..0000000
> --- a/testsuites/sptests/spatomic04/system.h
> +++ /dev/null
> @@ -1,51 +0,0 @@
> -/*
> - *  COPYRIGHT (c) 1989-2011.
> - *  On-Line Applications Research Corporation (OAR).
> - *
> - *  The license and distribution terms for this file may be
> - *  found in the file LICENSE in this distribution or at
> - *  http://www.rtems.com/license/LICENSE.
> - */
> -
> -#include "tmacros.h"
> -#include "test_support.h"
> -
> -/* functions */
> -
> -rtems_task Init(
> -  rtems_task_argument argument
> -);
> -
> -rtems_task Test_task(
> -  rtems_task_argument argument
> -);
> -
> -rtems_task Wait_task(
> -  rtems_task_argument argument
> -);
> -/* configuration information */
> -#define TASK_NUMS 4
> -
> -#define CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
> -#define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
> -
> -#define CONFIGURE_MAXIMUM_TASKS            \
> -    (2 + TASK_NUMS)
> -
> -#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
> -
> -#include <rtems/confdefs.h>
> -
> -/* global variables */
> -
> -/*
> - *  Keep the names and IDs in global variables so another task can use them.
> - */
> -
> -TEST_EXTERN volatile bool TaskRan[ TASK_NUMS ];
> -
> -/*
> - *  Handy macros and static inline functions
> - */
> -
> -/* end of include file */
> diff --git a/testsuites/sptests/spatomic04/tasks.c b/testsuites/sptests/spatomic04/tasks.c
> deleted file mode 100644
> index 9f587be..0000000
> --- a/testsuites/sptests/spatomic04/tasks.c
> +++ /dev/null
> @@ -1,102 +0,0 @@
> -/*
> - * Copyright (c) 2012 Deng Hengyi.
> - *
> - *  This test case is to test atomic sub operation.
> - *
> - *  The license and distribution terms for this file may be
> - *  found in the file LICENSE in this distribution or at
> - *  http://www.rtems.com/license/LICENSE.
> - *
> - */
> -
> -#ifdef HAVE_CONFIG_H
> -#include "config.h"
> -#endif
> -
> -#include "system.h"
> -
> -#include <stdlib.h>
> -#include <rtems/rtems/atomic.h>
> -
> -#define TEST_REPEAT 1000
> -
> -#define ATOMIC_FETCH_SUB_NO_BARRIER(NAME, TYPE, R_TYPE, task_id, mem_bar)\
> -{                                                        \
> -  Atomic_##TYPE t;                                       \
> -  R_TYPE a;                                              \
> -  R_TYPE b;                                              \
> -  R_TYPE c;                                              \
> -  unsigned int i;                                        \
> -  for (i = 0; i < TEST_REPEAT; i++){                     \
> -    a = (R_TYPE)(rand() % ((R_TYPE)-1 / 2));             \
> -    b = (R_TYPE)(rand() % ((R_TYPE)-1 / 2));             \
> -    _Atomic_Store_##NAME(&t, a, ATOMIC_ORDER_RELAXED);   \
> -    _Atomic_Fetch_sub_##NAME(&t, b, mem_bar);            \
> -    c = _Atomic_Load_##NAME(&t, ATOMIC_ORDER_RELAXED);   \
> -    rtems_test_assert(c == (R_TYPE)(a - b));             \
> -  }                                                            \
> -  printf("\ntask%d: Atomic_Fetch_sub_" #NAME ": SUCCESS\n", (unsigned int)task_id); \
> -}
> -
> -rtems_task Test_task(
> -    rtems_task_argument argument
> -    )
> -{
> -  char              name[5];
> -  char             *p;
> -  rtems_status_code  status;
> -
> -  /* Get the task name */
> -  p = rtems_object_get_name( RTEMS_SELF, 5, name );
> -  rtems_test_assert( p != NULL );
> -
> -  /* Print that the task is up and running. */
> -  /* test relaxed barrier */
> -  ATOMIC_FETCH_SUB_NO_BARRIER(uint, Uint, uint_fast32_t, argument, ATOMIC_ORDER_RELAXED);
> -
> -  ATOMIC_FETCH_SUB_NO_BARRIER(ptr, Pointer, uintptr_t, argument, ATOMIC_ORDER_RELAXED);
> -
> -  /* test acquire barrier */
> -  ATOMIC_FETCH_SUB_NO_BARRIER(uint, Uint, uint_fast32_t, argument, ATOMIC_ORDER_ACQUIRE);
> -
> -  ATOMIC_FETCH_SUB_NO_BARRIER(ptr, Pointer, uintptr_t, argument, ATOMIC_ORDER_ACQUIRE);
> -
> -  /* test release barrier */
> -  ATOMIC_FETCH_SUB_NO_BARRIER(uint, Uint, uint_fast32_t, argument, ATOMIC_ORDER_RELEASE);
> -
> -  ATOMIC_FETCH_SUB_NO_BARRIER(ptr, Pointer, uintptr_t, argument, ATOMIC_ORDER_RELEASE);
> -
> -  /* Set the flag that the task is up and running */
> -  TaskRan[argument] = true;
> -
> -  status = rtems_task_delete( RTEMS_SELF );
> -  directive_failed( status, "delete" );
> -}
> -
> -rtems_task Wait_task(
> -    rtems_task_argument argument
> -    )
> -{
> -  char              name[5];
> -  char             *p;
> -  bool               allDone;
> -  int                i;
> -
> -  /* Get the task name */
> -  p = rtems_object_get_name( RTEMS_SELF, 5, name );
> -  rtems_test_assert( p != NULL );
> -
> -  /* Wait on the all tasks to run */
> -  while (1) {
> -    allDone = true;
> -    for ( i=0; i<TASK_NUMS ; i++ ) {
> -      if (TaskRan[i] == false)
> -        allDone = false;
> -    }
> -    if (allDone) {
> -      puts( "\n\n*** END OF TEST spatomic04 ***\n" );
> -      rtems_test_exit( 0 );
> -    }
> -  }
> -}
> -
> diff --git a/testsuites/sptests/spatomic05/Makefile.am b/testsuites/sptests/spatomic05/Makefile.am
> deleted file mode 100644
> index cf72b8e..0000000
> --- a/testsuites/sptests/spatomic05/Makefile.am
> +++ /dev/null
> @@ -1,24 +0,0 @@
> -if ATOMIC
> -rtems_tests_PROGRAMS = spatomic05
> -spatomic05_SOURCES = init.c tasks.c system.h
> -
> -dist_rtems_tests_DATA = spatomic05.scn
> -dist_rtems_tests_DATA += spatomic05.doc
> -endif
> -
> -include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP at .cfg
> -include $(top_srcdir)/../automake/compile.am
> -include $(top_srcdir)/../automake/leaf.am
> -
> -if ATOMIC
> -AM_CPPFLAGS += -I$(top_srcdir)/../support/include
> -
> -LINK_OBJS = $(spatomic05_OBJECTS)
> -LINK_LIBS = $(spatomic05_LDLIBS)
> -
> -spatomic05$(EXEEXT): $(spatomic05_OBJECTS) $(spatomic05_DEPENDENCIES)
> -       @rm -f spatomic05$(EXEEXT)
> -       $(make-exe)
> -endif
> -
> -include $(top_srcdir)/../automake/local.am
> diff --git a/testsuites/sptests/spatomic05/init.c b/testsuites/sptests/spatomic05/init.c
> deleted file mode 100644
> index 328d417..0000000
> --- a/testsuites/sptests/spatomic05/init.c
> +++ /dev/null
> @@ -1,68 +0,0 @@
> -/*
> - * Copyright (c) 2012 Deng Hengyi.
> - *
> - *  This test case is to test atomic and operation.
> - *
> - *  The license and distribution terms for this file may be
> - *  found in the file LICENSE in this distribution or at
> - *  http://www.rtems.com/license/LICENSE.
> - *
> - */
> -#ifdef HAVE_CONFIG_H
> -#include "config.h"
> -#endif
> -
> -#define CONFIGURE_INIT
> -#include "system.h"
> -
> -rtems_task Init(
> -  rtems_task_argument argument
> -)
> -{
> -  int                i;
> -  char               ch;
> -  rtems_id           id;
> -  rtems_status_code  status;
> -
> -  /* Put start of test message */
> -  puts( "\n\n***  spatomic05 TEST ***\n" );
> -
> -  /* Initialize the TaskRan array */
> -  for ( i=0; i<TASK_NUMS ; i++ ) {
> -    TaskRan[i] = false;
> -  }
> -
> -  /* Create and start tasks for each processor */
> -  for ( i=0; i< TASK_NUMS ; i++ ) {
> -    ch = '0' + i;
> -
> -    status = rtems_task_create(
> -      rtems_build_name( 'T', 'A', ch, ' ' ),
> -      1,
> -      RTEMS_MINIMUM_STACK_SIZE,
> -      RTEMS_DEFAULT_MODES,
> -      RTEMS_DEFAULT_ATTRIBUTES,
> -      &id
> -    );
> -    directive_failed( status, "task create" );
> -
> -    status = rtems_task_start( id, Test_task, i );
> -    directive_failed( status, "task start" );
> -  }
> -
> -  status = rtems_task_create(
> -      rtems_build_name( 'A', 'T', '0', ' ' ),
> -      1,
> -      RTEMS_MINIMUM_STACK_SIZE,
> -      RTEMS_DEFAULT_MODES,
> -      RTEMS_DEFAULT_ATTRIBUTES,
> -      &id
> -    );
> -  directive_failed( status, "task create" );
> -
> -  status = rtems_task_start( id, Wait_task, 0 );
> -  directive_failed( status, "task start" );
> -
> -  status = rtems_task_delete( RTEMS_SELF );
> -  directive_failed( status, "delete" );
> -}
> diff --git a/testsuites/sptests/spatomic05/spatomic05.doc b/testsuites/sptests/spatomic05/spatomic05.doc
> deleted file mode 100644
> index 018dd64..0000000
> --- a/testsuites/sptests/spatomic05/spatomic05.doc
> +++ /dev/null
> @@ -1,23 +0,0 @@
> -#  COPYRIGHT (c) 1989-2012.
> -#  On-Line Applications Research Corporation (OAR).
> -#
> -#  The license and distribution terms for this file may be
> -#  found in the file LICENSE in this distribution or at
> -#  http://www.rtems.com/license/LICENSE.
> -#
> -
> -This file describes the directives and concepts tested by this test set.
> -
> -test set name:  spatomic05
> -
> -directives:
> -
> -  _Atomic_Fetch_and_int
> -  _Atomic_Fetch_and_long
> -  _Atomic_Fetch_and_ptr
> -  _Atomic_Fetch_and_32
> -  _Atomic_Fetch_and_64
> -
> -concepts:
> -
> -+ Ensure that the atomic and operations listed above behave as defined.
> diff --git a/testsuites/sptests/spatomic05/spatomic05.scn b/testsuites/sptests/spatomic05/spatomic05.scn
> deleted file mode 100644
> index 84020b9..0000000
> --- a/testsuites/sptests/spatomic05/spatomic05.scn
> +++ /dev/null
> @@ -1,102 +0,0 @@
> -patomic05 TEST ***
> -
> -
> -task0: _Atomic_Fetch_and_int: SUCCESS
> -
> -task0: _Atomic_Fetch_and_long: SUCCESS
> -
> -task0: _Atomic_Fetch_and_ptr: SUCCESS
> -
> -task0: _Atomic_Fetch_and_32: SUCCESS
> -
> -task0: _Atomic_Fetch_and_int: SUCCESS
> -
> -task0: _Atomic_Fetch_and_long: SUCCESS
> -
> -task0: _Atomic_Fetch_and_ptr: SUCCESS
> -
> -task0: _Atomic_Fetch_and_32: SUCCESS
> -
> -task0: _Atomic_Fetch_and_int: SUCCESS
> -
> -task0: _Atomic_Fetch_and_long: SUCCESS
> -
> -task0: _Atomic_Fetch_and_ptr: SUCCESS
> -
> -task0: _Atomic_Fetch_and_32: SUCCESS
> -
> -task1: _Atomic_Fetch_and_int: SUCCESS
> -
> -task1: _Atomic_Fetch_and_long: SUCCESS
> -
> -task1: _Atomic_Fetch_and_ptr: SUCCESS
> -
> -task1: _Atomic_Fetch_and_32: SUCCESS
> -
> -task1: _Atomic_Fetch_and_int: SUCCESS
> -
> -task1: _Atomic_Fetch_and_long: SUCCESS
> -
> -task1: _Atomic_Fetch_and_ptr: SUCCESS
> -
> -task1: _Atomic_Fetch_and_32: SUCCESS
> -
> -task1: _Atomic_Fetch_and_int: SUCCESS
> -
> -task1: _Atomic_Fetch_and_long: SUCCESS
> -
> -task1: _Atomic_Fetch_and_ptr: SUCCESS
> -
> -task1: _Atomic_Fetch_and_32: SUCCESS
> -
> -task2: _Atomic_Fetch_and_int: SUCCESS
> -
> -task2: _Atomic_Fetch_and_long: SUCCESS
> -
> -task2: _Atomic_Fetch_and_ptr: SUCCESS
> -
> -task2: _Atomic_Fetch_and_32: SUCCESS
> -
> -task2: _Atomic_Fetch_and_int: SUCCESS
> -
> -task2: _Atomic_Fetch_and_long: SUCCESS
> -
> -task2: _Atomic_Fetch_and_ptr: SUCCESS
> -
> -task2: _Atomic_Fetch_and_32: SUCCESS
> -
> -task2: _Atomic_Fetch_and_int: SUCCESS
> -
> -task2: _Atomic_Fetch_and_long: SUCCESS
> -
> -task2: _Atomic_Fetch_and_ptr: SUCCESS
> -
> -task2: _Atomic_Fetch_and_32: SUCCESS
> -
> -task3: _Atomic_Fetch_and_int: SUCCESS
> -
> -task3: _Atomic_Fetch_and_long: SUCCESS
> -
> -task3: _Atomic_Fetch_and_ptr: SUCCESS
> -
> -task3: _Atomic_Fetch_and_32: SUCCESS
> -
> -task3: _Atomic_Fetch_and_int: SUCCESS
> -
> -task3: _Atomic_Fetch_and_long: SUCCESS
> -
> -task3: _Atomic_Fetch_and_ptr: SUCCESS
> -
> -task3: _Atomic_Fetch_and_32: SUCCESS
> -
> -task3: _Atomic_Fetch_and_int: SUCCESS
> -
> -task3: _Atomic_Fetch_and_long: SUCCESS
> -
> -task3: _Atomic_Fetch_and_ptr: SUCCESS
> -
> -task3: _Atomic_Fetch_and_32: SUCCESS
> -
> -
> -*** END OF TEST spatomic05 ***
> -
> diff --git a/testsuites/sptests/spatomic05/system.h b/testsuites/sptests/spatomic05/system.h
> deleted file mode 100644
> index 55931f2..0000000
> --- a/testsuites/sptests/spatomic05/system.h
> +++ /dev/null
> @@ -1,51 +0,0 @@
> -/*
> - *  COPYRIGHT (c) 1989-2011.
> - *  On-Line Applications Research Corporation (OAR).
> - *
> - *  The license and distribution terms for this file may be
> - *  found in the file LICENSE in this distribution or at
> - *  http://www.rtems.com/license/LICENSE.
> - */
> -
> -#include "tmacros.h"
> -#include "test_support.h"
> -
> -/* functions */
> -
> -rtems_task Init(
> -  rtems_task_argument argument
> -);
> -
> -rtems_task Test_task(
> -  rtems_task_argument argument
> -);
> -
> -rtems_task Wait_task(
> -  rtems_task_argument argument
> -);
> -/* configuration information */
> -#define TASK_NUMS 4
> -
> -#define CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
> -#define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
> -
> -#define CONFIGURE_MAXIMUM_TASKS            \
> -    (2 + TASK_NUMS)
> -
> -#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
> -
> -#include <rtems/confdefs.h>
> -
> -/* global variables */
> -
> -/*
> - *  Keep the names and IDs in global variables so another task can use them.
> - */
> -
> -TEST_EXTERN volatile bool TaskRan[ TASK_NUMS ];
> -
> -/*
> - *  Handy macros and static inline functions
> - */
> -
> -/* end of include file */
> diff --git a/testsuites/sptests/spatomic05/tasks.c b/testsuites/sptests/spatomic05/tasks.c
> deleted file mode 100644
> index 5f93dae..0000000
> --- a/testsuites/sptests/spatomic05/tasks.c
> +++ /dev/null
> @@ -1,101 +0,0 @@
> -/*
> - * Copyright (c) 2012 Deng Hengyi.
> - *
> - *  This test case is to test atomic and operation.
> - *
> - *  The license and distribution terms for this file may be
> - *  found in the file LICENSE in this distribution or at
> - *  http://www.rtems.com/license/LICENSE.
> - *
> - */
> -
> -#ifdef HAVE_CONFIG_H
> -#include "config.h"
> -#endif
> -
> -#include "system.h"
> -
> -#include <stdlib.h>
> -#include <rtems/rtems/atomic.h>
> -
> -#define TEST_REPEAT 1000
> -
> -#define ATOMIC_FETCH_AND_NO_BARRIER(NAME, TYPE, R_TYPE, task_id, mem_bar)\
> -{                                                        \
> -  Atomic_##TYPE t;                                       \
> -  R_TYPE a;                                              \
> -  R_TYPE b;                                              \
> -  R_TYPE c;                                              \
> -  unsigned int i;                                        \
> -  for (i = 0; i < TEST_REPEAT; i++){                     \
> -    a = (R_TYPE)(rand() % ((R_TYPE)-1 / 2));             \
> -    b = (R_TYPE)(rand() % ((R_TYPE)-1 / 2));             \
> -    _Atomic_Store_##NAME(&t, a, ATOMIC_ORDER_RELAXED);   \
> -    _Atomic_Fetch_and_##NAME(&t, b, mem_bar);            \
> -    c = _Atomic_Load_##NAME(&t, ATOMIC_ORDER_RELAXED);   \
> -    rtems_test_assert(c == (R_TYPE)(a & b));             \
> -  }                                                      \
> -  printf("\ntask%d: Atomic_Fetch_and_" #NAME ": SUCCESS\n", (unsigned int)task_id); \
> -}
> -
> -rtems_task Test_task(
> -    rtems_task_argument argument
> -    )
> -{
> -  char              name[5];
> -  char             *p;
> -  rtems_status_code  status;
> -
> -  /* Get the task name */
> -  p = rtems_object_get_name( RTEMS_SELF, 5, name );
> -  rtems_test_assert( p != NULL );
> -
> -  /* Print that the task is up and running. */
> -  /* test relaxed barrier */
> -  ATOMIC_FETCH_AND_NO_BARRIER(uint, Uint, uint_fast32_t, argument, ATOMIC_ORDER_RELAXED);
> -
> -  ATOMIC_FETCH_AND_NO_BARRIER(ptr, Pointer, uintptr_t, argument, ATOMIC_ORDER_RELAXED);
> -
> -  /* test acquire barrier */
> -  ATOMIC_FETCH_AND_NO_BARRIER(uint, Uint, uint_fast32_t, argument, ATOMIC_ORDER_ACQUIRE);
> -
> -  ATOMIC_FETCH_AND_NO_BARRIER(ptr, Pointer, uintptr_t, argument, ATOMIC_ORDER_ACQUIRE);
> -
> -  /* test release barrier */
> -  ATOMIC_FETCH_AND_NO_BARRIER(uint, Uint, uint_fast32_t, argument, ATOMIC_ORDER_RELEASE);
> -
> -  ATOMIC_FETCH_AND_NO_BARRIER(ptr, Pointer, uintptr_t, argument, ATOMIC_ORDER_RELEASE);
> -
> -  /* Set the flag that the task is up and running */
> -  TaskRan[argument] = true;
> -
> -  status = rtems_task_delete( RTEMS_SELF );
> -  directive_failed( status, "delete" );
> -}
> -
> -rtems_task Wait_task(
> -    rtems_task_argument argument
> -    )
> -{
> -  char              name[5];
> -  char             *p;
> -  bool               allDone;
> -  int                i;
> -
> -  /* Get the task name */
> -  p = rtems_object_get_name( RTEMS_SELF, 5, name );
> -  rtems_test_assert( p != NULL );
> -
> -  /* Wait on the all tasks to run */
> -  while (1) {
> -    allDone = true;
> -    for ( i=0; i<TASK_NUMS ; i++ ) {
> -      if (TaskRan[i] == false)
> -        allDone = false;
> -    }
> -    if (allDone) {
> -      puts( "\n\n*** END OF TEST spatomic05 ***\n" );
> -      rtems_test_exit( 0 );
> -    }
> -  }
> -}
> diff --git a/testsuites/sptests/spatomic06/Makefile.am b/testsuites/sptests/spatomic06/Makefile.am
> deleted file mode 100644
> index 82150f9..0000000
> --- a/testsuites/sptests/spatomic06/Makefile.am
> +++ /dev/null
> @@ -1,24 +0,0 @@
> -if ATOMIC
> -rtems_tests_PROGRAMS = spatomic06
> -spatomic06_SOURCES = init.c tasks.c system.h
> -
> -dist_rtems_tests_DATA = spatomic06.scn
> -dist_rtems_tests_DATA += spatomic06.doc
> -endif
> -
> -include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP at .cfg
> -include $(top_srcdir)/../automake/compile.am
> -include $(top_srcdir)/../automake/leaf.am
> -
> -if ATOMIC
> -AM_CPPFLAGS += -I$(top_srcdir)/../support/include
> -
> -LINK_OBJS = $(spatomic06_OBJECTS)
> -LINK_LIBS = $(spatomic06_LDLIBS)
> -
> -spatomic06$(EXEEXT): $(spatomic06_OBJECTS) $(spatomic06_DEPENDENCIES)
> -       @rm -f spatomic06$(EXEEXT)
> -       $(make-exe)
> -endif
> -
> -include $(top_srcdir)/../automake/local.am
> diff --git a/testsuites/sptests/spatomic06/init.c b/testsuites/sptests/spatomic06/init.c
> deleted file mode 100644
> index 4a7ecfc..0000000
> --- a/testsuites/sptests/spatomic06/init.c
> +++ /dev/null
> @@ -1,68 +0,0 @@
> -/*
> - * Copyright (c) 2012 Deng Hengyi.
> - *
> - *  This test case is to test atomic or operation.
> - *
> - *  The license and distribution terms for this file may be
> - *  found in the file LICENSE in this distribution or at
> - *  http://www.rtems.com/license/LICENSE.
> - *
> - */
> -#ifdef HAVE_CONFIG_H
> -#include "config.h"
> -#endif
> -
> -#define CONFIGURE_INIT
> -#include "system.h"
> -
> -rtems_task Init(
> -  rtems_task_argument argument
> -)
> -{
> -  int                i;
> -  char               ch;
> -  rtems_id           id;
> -  rtems_status_code  status;
> -
> -  /* Put start of test message */
> -  puts( "\n\n***  spatomic06 TEST ***\n" );
> -
> -  /* Initialize the TaskRan array */
> -  for ( i=0; i<TASK_NUMS ; i++ ) {
> -    TaskRan[i] = false;
> -  }
> -
> -  /* Create and start tasks for each processor */
> -  for ( i=0; i< TASK_NUMS ; i++ ) {
> -    ch = '0' + i;
> -
> -    status = rtems_task_create(
> -      rtems_build_name( 'T', 'A', ch, ' ' ),
> -      1,
> -      RTEMS_MINIMUM_STACK_SIZE,
> -      RTEMS_DEFAULT_MODES,
> -      RTEMS_DEFAULT_ATTRIBUTES,
> -      &id
> -    );
> -    directive_failed( status, "task create" );
> -
> -    status = rtems_task_start( id, Test_task, i );
> -    directive_failed( status, "task start" );
> -  }
> -
> -  status = rtems_task_create(
> -      rtems_build_name( 'A', 'T', '0', ' ' ),
> -      1,
> -      RTEMS_MINIMUM_STACK_SIZE,
> -      RTEMS_DEFAULT_MODES,
> -      RTEMS_DEFAULT_ATTRIBUTES,
> -      &id
> -    );
> -  directive_failed( status, "task create" );
> -
> -  status = rtems_task_start( id, Wait_task, 0 );
> -  directive_failed( status, "task start" );
> -
> -  status = rtems_task_delete( RTEMS_SELF );
> -  directive_failed( status, "delete" );
> -}
> diff --git a/testsuites/sptests/spatomic06/spatomic06.doc b/testsuites/sptests/spatomic06/spatomic06.doc
> deleted file mode 100644
> index 5a4d033..0000000
> --- a/testsuites/sptests/spatomic06/spatomic06.doc
> +++ /dev/null
> @@ -1,23 +0,0 @@
> -#  COPYRIGHT (c) 1989-2012.
> -#  On-Line Applications Research Corporation (OAR).
> -#
> -#  The license and distribution terms for this file may be
> -#  found in the file LICENSE in this distribution or at
> -#  http://www.rtems.com/license/LICENSE.
> -#
> -
> -This file describes the directives and concepts tested by this test set.
> -
> -test set name:  spatomic06
> -
> -directives:
> -
> -  _Atomic_Fetch_or_int
> -  _Atomic_Fetch_or_long
> -  _Atomic_Fetch_or_ptr
> -  _Atomic_Fetch_or_32
> -  _Atomic_Fetch_or_64
> -
> -concepts:
> -
> -+ Ensure that the atomic or operations listed above behave as defined.
> diff --git a/testsuites/sptests/spatomic06/spatomic06.scn b/testsuites/sptests/spatomic06/spatomic06.scn
> deleted file mode 100644
> index 1429061..0000000
> --- a/testsuites/sptests/spatomic06/spatomic06.scn
> +++ /dev/null
> @@ -1,102 +0,0 @@
> -***  spatomic06 TEST ***
> -
> -
> -task0: _Atomic_Fetch_or_int: SUCCESS
> -
> -task0: _Atomic_Fetch_or_long: SUCCESS
> -
> -task0: _Atomic_Fetch_or_ptr: SUCCESS
> -
> -task0: _Atomic_Fetch_or_32: SUCCESS
> -
> -task0: _Atomic_Fetch_or_int: SUCCESS
> -
> -task0: _Atomic_Fetch_or_long: SUCCESS
> -
> -task0: _Atomic_Fetch_or_ptr: SUCCESS
> -
> -task0: _Atomic_Fetch_or_32: SUCCESS
> -
> -task0: _Atomic_Fetch_or_int: SUCCESS
> -
> -task0: _Atomic_Fetch_or_long: SUCCESS
> -
> -task0: _Atomic_Fetch_or_ptr: SUCCESS
> -
> -task0: _Atomic_Fetch_or_32: SUCCESS
> -
> -task1: _Atomic_Fetch_or_int: SUCCESS
> -
> -task1: _Atomic_Fetch_or_long: SUCCESS
> -
> -task1: _Atomic_Fetch_or_ptr: SUCCESS
> -
> -task1: _Atomic_Fetch_or_32: SUCCESS
> -
> -task1: _Atomic_Fetch_or_int: SUCCESS
> -
> -task1: _Atomic_Fetch_or_long: SUCCESS
> -
> -task1: _Atomic_Fetch_or_ptr: SUCCESS
> -
> -task1: _Atomic_Fetch_or_32: SUCCESS
> -
> -task1: _Atomic_Fetch_or_int: SUCCESS
> -
> -task1: _Atomic_Fetch_or_long: SUCCESS
> -
> -task1: _Atomic_Fetch_or_ptr: SUCCESS
> -
> -task1: _Atomic_Fetch_or_32: SUCCESS
> -
> -task2: _Atomic_Fetch_or_int: SUCCESS
> -
> -task2: _Atomic_Fetch_or_long: SUCCESS
> -
> -task2: _Atomic_Fetch_or_ptr: SUCCESS
> -
> -task2: _Atomic_Fetch_or_32: SUCCESS
> -
> -task2: _Atomic_Fetch_or_int: SUCCESS
> -
> -task2: _Atomic_Fetch_or_long: SUCCESS
> -
> -task2: _Atomic_Fetch_or_ptr: SUCCESS
> -
> -task2: _Atomic_Fetch_or_32: SUCCESS
> -
> -task2: _Atomic_Fetch_or_int: SUCCESS
> -
> -task2: _Atomic_Fetch_or_long: SUCCESS
> -
> -task2: _Atomic_Fetch_or_ptr: SUCCESS
> -
> -task2: _Atomic_Fetch_or_32: SUCCESS
> -
> -task3: _Atomic_Fetch_or_int: SUCCESS
> -
> -task3: _Atomic_Fetch_or_long: SUCCESS
> -
> -task3: _Atomic_Fetch_or_ptr: SUCCESS
> -
> -task3: _Atomic_Fetch_or_32: SUCCESS
> -
> -task3: _Atomic_Fetch_or_int: SUCCESS
> -
> -task3: _Atomic_Fetch_or_long: SUCCESS
> -
> -task3: _Atomic_Fetch_or_ptr: SUCCESS
> -
> -task3: _Atomic_Fetch_or_32: SUCCESS
> -
> -task3: _Atomic_Fetch_or_int: SUCCESS
> -
> -task3: _Atomic_Fetch_or_long: SUCCESS
> -
> -task3: _Atomic_Fetch_or_ptr: SUCCESS
> -
> -task3: _Atomic_Fetch_or_32: SUCCESS
> -
> -
> -*** END OF TEST spatomic06 ***
> -
> diff --git a/testsuites/sptests/spatomic06/system.h b/testsuites/sptests/spatomic06/system.h
> deleted file mode 100644
> index 55931f2..0000000
> --- a/testsuites/sptests/spatomic06/system.h
> +++ /dev/null
> @@ -1,51 +0,0 @@
> -/*
> - *  COPYRIGHT (c) 1989-2011.
> - *  On-Line Applications Research Corporation (OAR).
> - *
> - *  The license and distribution terms for this file may be
> - *  found in the file LICENSE in this distribution or at
> - *  http://www.rtems.com/license/LICENSE.
> - */
> -
> -#include "tmacros.h"
> -#include "test_support.h"
> -
> -/* functions */
> -
> -rtems_task Init(
> -  rtems_task_argument argument
> -);
> -
> -rtems_task Test_task(
> -  rtems_task_argument argument
> -);
> -
> -rtems_task Wait_task(
> -  rtems_task_argument argument
> -);
> -/* configuration information */
> -#define TASK_NUMS 4
> -
> -#define CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
> -#define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
> -
> -#define CONFIGURE_MAXIMUM_TASKS            \
> -    (2 + TASK_NUMS)
> -
> -#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
> -
> -#include <rtems/confdefs.h>
> -
> -/* global variables */
> -
> -/*
> - *  Keep the names and IDs in global variables so another task can use them.
> - */
> -
> -TEST_EXTERN volatile bool TaskRan[ TASK_NUMS ];
> -
> -/*
> - *  Handy macros and static inline functions
> - */
> -
> -/* end of include file */
> diff --git a/testsuites/sptests/spatomic06/tasks.c b/testsuites/sptests/spatomic06/tasks.c
> deleted file mode 100644
> index b03d3f0..0000000
> --- a/testsuites/sptests/spatomic06/tasks.c
> +++ /dev/null
> @@ -1,101 +0,0 @@
> -/*
> - * Copyright (c) 2012 Deng Hengyi.
> - *
> - *  This test case is to test atomic or operation.
> - *
> - *  The license and distribution terms for this file may be
> - *  found in the file LICENSE in this distribution or at
> - *  http://www.rtems.com/license/LICENSE.
> - *
> - */
> -
> -#ifdef HAVE_CONFIG_H
> -#include "config.h"
> -#endif
> -
> -#include "system.h"
> -
> -#include <stdlib.h>
> -#include <rtems/rtems/atomic.h>
> -
> -#define TEST_REPEAT 1000
> -
> -#define ATOMIC_FETCH_OR_NO_BARRIER(NAME, TYPE, R_TYPE, task_id, mem_bar) \
> -{                                                        \
> -  Atomic_##TYPE t;                                       \
> -  R_TYPE a;                                              \
> -  R_TYPE b;                                              \
> -  R_TYPE c;                                              \
> -  unsigned int i;                                        \
> -  for (i = 0; i < TEST_REPEAT; i++){                     \
> -    a = (R_TYPE)(rand() % ((R_TYPE)-1 / 2));             \
> -    b = (R_TYPE)(rand() % ((R_TYPE)-1 / 2));             \
> -    _Atomic_Store_##NAME(&t, a, ATOMIC_ORDER_RELAXED);   \
> -    _Atomic_Fetch_or_##NAME(&t, b, mem_bar);             \
> -    c = _Atomic_Load_##NAME(&t, ATOMIC_ORDER_RELAXED);   \
> -    rtems_test_assert(c == (R_TYPE)(a | b));             \
> -  }                                                      \
> -  printf("\ntask%d: Atomic_Fetch_or_" #NAME ": SUCCESS\n", (unsigned int)task_id); \
> -}
> -
> -rtems_task Test_task(
> -    rtems_task_argument argument
> -    )
> -{
> -  char              name[5];
> -  char             *p;
> -  rtems_status_code  status;
> -
> -  /* Get the task name */
> -  p = rtems_object_get_name( RTEMS_SELF, 5, name );
> -  rtems_test_assert( p != NULL );
> -
> -  /* Print that the task is up and running. */
> -  /* test relaxed barrier */
> -  ATOMIC_FETCH_OR_NO_BARRIER(uint, Uint, uint_fast32_t, argument, ATOMIC_ORDER_RELAXED);
> -
> -  ATOMIC_FETCH_OR_NO_BARRIER(ptr, Pointer, uintptr_t, argument, ATOMIC_ORDER_RELAXED);
> -
> -  /* test acquire barrier */
> -  ATOMIC_FETCH_OR_NO_BARRIER(uint, Uint, uint_fast32_t, argument, ATOMIC_ORDER_ACQUIRE);
> -
> -  ATOMIC_FETCH_OR_NO_BARRIER(ptr, Pointer, uintptr_t, argument, ATOMIC_ORDER_ACQUIRE);
> -
> -  /* test release barrier */
> -  ATOMIC_FETCH_OR_NO_BARRIER(uint, Uint, uint_fast32_t, argument, ATOMIC_ORDER_RELEASE);
> -
> -  ATOMIC_FETCH_OR_NO_BARRIER(ptr, Pointer, uintptr_t, argument, ATOMIC_ORDER_RELEASE);
> -
> -  /* Set the flag that the task is up and running */
> -  TaskRan[argument] = true;
> -
> -  status = rtems_task_delete( RTEMS_SELF );
> -  directive_failed( status, "delete" );
> -}
> -
> -rtems_task Wait_task(
> -    rtems_task_argument argument
> -    )
> -{
> -  char              name[5];
> -  char             *p;
> -  bool               allDone;
> -  int                i;
> -
> -  /* Get the task name */
> -  p = rtems_object_get_name( RTEMS_SELF, 5, name );
> -  rtems_test_assert( p != NULL );
> -
> -  /* Wait on the all tasks to run */
> -  while (1) {
> -    allDone = true;
> -    for ( i=0; i<TASK_NUMS ; i++ ) {
> -      if (TaskRan[i] == false)
> -        allDone = false;
> -    }
> -    if (allDone) {
> -      puts( "\n\n*** END OF TEST spatomic06 ***\n" );
> -      rtems_test_exit( 0 );
> -    }
> -  }
> -}
> diff --git a/testsuites/sptests/spatomic07/Makefile.am b/testsuites/sptests/spatomic07/Makefile.am
> deleted file mode 100644
> index bd63c52..0000000
> --- a/testsuites/sptests/spatomic07/Makefile.am
> +++ /dev/null
> @@ -1,24 +0,0 @@
> -if ATOMIC
> -rtems_tests_PROGRAMS = spatomic07
> -spatomic07_SOURCES = init.c tasks.c system.h
> -
> -dist_rtems_tests_DATA = spatomic07.scn
> -dist_rtems_tests_DATA += spatomic07.doc
> -endif
> -
> -include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP at .cfg
> -include $(top_srcdir)/../automake/compile.am
> -include $(top_srcdir)/../automake/leaf.am
> -
> -if ATOMIC
> -AM_CPPFLAGS += -I$(top_srcdir)/../support/include
> -
> -LINK_OBJS = $(spatomic07_OBJECTS)
> -LINK_LIBS = $(spatomic07_LDLIBS)
> -
> -spatomic07$(EXEEXT): $(spatomic07_OBJECTS) $(spatomic07_DEPENDENCIES)
> -       @rm -f spatomic07$(EXEEXT)
> -       $(make-exe)
> -endif
> -
> -include $(top_srcdir)/../automake/local.am
> diff --git a/testsuites/sptests/spatomic07/init.c b/testsuites/sptests/spatomic07/init.c
> deleted file mode 100644
> index 3cc1b27..0000000
> --- a/testsuites/sptests/spatomic07/init.c
> +++ /dev/null
> @@ -1,68 +0,0 @@
> -/*
> - * Copyright (c) 2012 Deng Hengyi.
> - *
> - *  This test case is to test atomic compare and exchange operation.
> - *
> - *  The license and distribution terms for this file may be
> - *  found in the file LICENSE in this distribution or at
> - *  http://www.rtems.com/license/LICENSE.
> - *
> - */
> -#ifdef HAVE_CONFIG_H
> -#include "config.h"
> -#endif
> -
> -#define CONFIGURE_INIT
> -#include "system.h"
> -
> -rtems_task Init(
> -  rtems_task_argument argument
> -)
> -{
> -  int                i;
> -  char               ch;
> -  rtems_id           id;
> -  rtems_status_code  status;
> -
> -  /* Put start of test message */
> -  puts( "\n\n***  spatomic07 TEST ***\n" );
> -
> -  /* Initialize the TaskRan array */
> -  for ( i=0; i<TASK_NUMS ; i++ ) {
> -    TaskRan[i] = false;
> -  }
> -
> -  /* Create and start tasks for each processor */
> -  for ( i=0; i< TASK_NUMS ; i++ ) {
> -    ch = '0' + i;
> -
> -    status = rtems_task_create(
> -      rtems_build_name( 'T', 'A', ch, ' ' ),
> -      1,
> -      RTEMS_MINIMUM_STACK_SIZE,
> -      RTEMS_DEFAULT_MODES,
> -      RTEMS_DEFAULT_ATTRIBUTES,
> -      &id
> -    );
> -    directive_failed( status, "task create" );
> -
> -    status = rtems_task_start( id, Test_task, i );
> -    directive_failed( status, "task start" );
> -  }
> -
> -  status = rtems_task_create(
> -      rtems_build_name( 'A', 'T', '0', ' ' ),
> -      1,
> -      RTEMS_MINIMUM_STACK_SIZE,
> -      RTEMS_DEFAULT_MODES,
> -      RTEMS_DEFAULT_ATTRIBUTES,
> -      &id
> -    );
> -  directive_failed( status, "task create" );
> -
> -  status = rtems_task_start( id, Wait_task, 0 );
> -  directive_failed( status, "task start" );
> -
> -  status = rtems_task_delete( RTEMS_SELF );
> -  directive_failed( status, "delete" );
> -}
> diff --git a/testsuites/sptests/spatomic07/spatomic07.doc b/testsuites/sptests/spatomic07/spatomic07.doc
> deleted file mode 100644
> index 4ade88f..0000000
> --- a/testsuites/sptests/spatomic07/spatomic07.doc
> +++ /dev/null
> @@ -1,24 +0,0 @@
> -#  COPYRIGHT (c) 1989-2012.
> -#  On-Line Applications Research Corporation (OAR).
> -#
> -#  The license and distribution terms for this file may be
> -#  found in the file LICENSE in this distribution or at
> -#  http://www.rtems.com/license/LICENSE.
> -#
> -
> -This file describes the directives and concepts tested by this test set.
> -
> -test set name:  spatomic07
> -
> -directives:
> -
> -  _Atomic_Compare_exchange_int
> -  _Atomic_Compare_exchange_long
> -  _Atomic_Compare_exchange_ptr
> -  _Atomic_Compare_exchange_32
> -  _Atomic_Compare_exchange_64
> -
> -concepts:
> -
> -+ Ensure that the atomic compare and exchange operations listed above behave
> -  as defined.
> diff --git a/testsuites/sptests/spatomic07/spatomic07.scn b/testsuites/sptests/spatomic07/spatomic07.scn
> deleted file mode 100644
> index bb37ba6..0000000
> --- a/testsuites/sptests/spatomic07/spatomic07.scn
> +++ /dev/null
> @@ -1,102 +0,0 @@
> -patomic07 TEST ***
> -
> -
> -task0: _Atomic_Compare_exchange_int: SUCCESS
> -
> -task0: _Atomic_Compare_exchange_long: SUCCESS
> -
> -task0: _Atomic_Compare_exchange_ptr: SUCCESS
> -
> -task0: _Atomic_Compare_exchange_32: SUCCESS
> -
> -task0: _Atomic_Compare_exchange_int: SUCCESS
> -
> -task0: _Atomic_Compare_exchange_long: SUCCESS
> -
> -task0: _Atomic_Compare_exchange_ptr: SUCCESS
> -
> -task0: _Atomic_Compare_exchange_32: SUCCESS
> -
> -task0: _Atomic_Compare_exchange_int: SUCCESS
> -
> -task0: _Atomic_Compare_exchange_long: SUCCESS
> -
> -task0: _Atomic_Compare_exchange_ptr: SUCCESS
> -
> -task0: _Atomic_Compare_exchange_32: SUCCESS
> -
> -task1: _Atomic_Compare_exchange_int: SUCCESS
> -
> -task1: _Atomic_Compare_exchange_long: SUCCESS
> -
> -task1: _Atomic_Compare_exchange_ptr: SUCCESS
> -
> -task1: _Atomic_Compare_exchange_32: SUCCESS
> -
> -task1: _Atomic_Compare_exchange_int: SUCCESS
> -
> -task1: _Atomic_Compare_exchange_long: SUCCESS
> -
> -task1: _Atomic_Compare_exchange_ptr: SUCCESS
> -
> -task1: _Atomic_Compare_exchange_32: SUCCESS
> -
> -task1: _Atomic_Compare_exchange_int: SUCCESS
> -
> -task1: _Atomic_Compare_exchange_long: SUCCESS
> -
> -task1: _Atomic_Compare_exchange_ptr: SUCCESS
> -
> -task1: _Atomic_Compare_exchange_32: SUCCESS
> -
> -task2: _Atomic_Compare_exchange_int: SUCCESS
> -
> -task2: _Atomic_Compare_exchange_long: SUCCESS
> -
> -task2: _Atomic_Compare_exchange_ptr: SUCCESS
> -
> -task2: _Atomic_Compare_exchange_32: SUCCESS
> -
> -task2: _Atomic_Compare_exchange_int: SUCCESS
> -
> -task2: _Atomic_Compare_exchange_long: SUCCESS
> -
> -task2: _Atomic_Compare_exchange_ptr: SUCCESS
> -
> -task2: _Atomic_Compare_exchange_32: SUCCESS
> -
> -task2: _Atomic_Compare_exchange_int: SUCCESS
> -
> -task2: _Atomic_Compare_exchange_long: SUCCESS
> -
> -task2: _Atomic_Compare_exchange_ptr: SUCCESS
> -
> -task2: _Atomic_Compare_exchange_32: SUCCESS
> -
> -task3: _Atomic_Compare_exchange_int: SUCCESS
> -
> -task3: _Atomic_Compare_exchange_long: SUCCESS
> -
> -task3: _Atomic_Compare_exchange_ptr: SUCCESS
> -
> -task3: _Atomic_Compare_exchange_32: SUCCESS
> -
> -task3: _Atomic_Compare_exchange_int: SUCCESS
> -
> -task3: _Atomic_Compare_exchange_long: SUCCESS
> -
> -task3: _Atomic_Compare_exchange_ptr: SUCCESS
> -
> -task3: _Atomic_Compare_exchange_32: SUCCESS
> -
> -task3: _Atomic_Compare_exchange_int: SUCCESS
> -
> -task3: _Atomic_Compare_exchange_long: SUCCESS
> -
> -task3: _Atomic_Compare_exchange_ptr: SUCCESS
> -
> -task3: _Atomic_Compare_exchange_32: SUCCESS
> -
> -
> -*** END OF TEST spatomic07 ***
> -
> diff --git a/testsuites/sptests/spatomic07/system.h b/testsuites/sptests/spatomic07/system.h
> deleted file mode 100644
> index 55931f2..0000000
> --- a/testsuites/sptests/spatomic07/system.h
> +++ /dev/null
> @@ -1,51 +0,0 @@
> -/*
> - *  COPYRIGHT (c) 1989-2011.
> - *  On-Line Applications Research Corporation (OAR).
> - *
> - *  The license and distribution terms for this file may be
> - *  found in the file LICENSE in this distribution or at
> - *  http://www.rtems.com/license/LICENSE.
> - */
> -
> -#include "tmacros.h"
> -#include "test_support.h"
> -
> -/* functions */
> -
> -rtems_task Init(
> -  rtems_task_argument argument
> -);
> -
> -rtems_task Test_task(
> -  rtems_task_argument argument
> -);
> -
> -rtems_task Wait_task(
> -  rtems_task_argument argument
> -);
> -/* configuration information */
> -#define TASK_NUMS 4
> -
> -#define CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
> -#define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
> -
> -#define CONFIGURE_MAXIMUM_TASKS            \
> -    (2 + TASK_NUMS)
> -
> -#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
> -
> -#include <rtems/confdefs.h>
> -
> -/* global variables */
> -
> -/*
> - *  Keep the names and IDs in global variables so another task can use them.
> - */
> -
> -TEST_EXTERN volatile bool TaskRan[ TASK_NUMS ];
> -
> -/*
> - *  Handy macros and static inline functions
> - */
> -
> -/* end of include file */
> diff --git a/testsuites/sptests/spatomic07/tasks.c b/testsuites/sptests/spatomic07/tasks.c
> deleted file mode 100644
> index 286a994..0000000
> --- a/testsuites/sptests/spatomic07/tasks.c
> +++ /dev/null
> @@ -1,117 +0,0 @@
> -/*
> - * Copyright (c) 2012 Deng Hengyi.
> - *
> - *  This test case is to test atomic compare and exchange operation.
> - *
> - *  The license and distribution terms for this file may be
> - *  found in the file LICENSE in this distribution or at
> - *  http://www.rtems.com/license/LICENSE.
> - *
> - */
> -
> -#ifdef HAVE_CONFIG_H
> -#include "config.h"
> -#endif
> -
> -#include "system.h"
> -
> -#include <stdlib.h>
> -#include <rtems/rtems/atomic.h>
> -
> -#define TEST_REPEAT 1000
> -
> -#define ATOMIC_CAS_NO_BARRIER(NAME, TYPE, R_TYPE, task_id, mem_bar)     \
> -{                                                       \
> -  Atomic_##TYPE t;                                      \
> -  R_TYPE a;                                             \
> -  R_TYPE b;                                             \
> -  unsigned int i;                                       \
> -  int r;                                                \
> -  for (i = 0; i < TEST_REPEAT; i++){                    \
> -    a = rand() % (R_TYPE)-1;                            \
> -    _Atomic_Store_##NAME(&t, a, ATOMIC_ORDER_RELAXED);  \
> -    b = a + 1;                                                           \
> -    r = _Atomic_Compare_exchange_##NAME(&t, &b, a - 1, mem_bar, memory_order_relaxed); \
> -    if(r != 0){                                                          \
> -      printf("\ntask%d: Atomic_Compare_exchange_" #NAME ": FAILED\n", (unsigned int)task_id); \
> -      rtems_test_exit( 0 );                                              \
> -    }                                                                    \
> -    _Atomic_Store_##NAME(&t, a, ATOMIC_ORDER_RELAXED);                   \
> -    r = _Atomic_Compare_exchange_##NAME(&t, &a, a - 1, mem_bar, memory_order_relaxed); \
> -    b = _Atomic_Load_##NAME(&t, ATOMIC_ORDER_RELAXED);                   \
> -    if((r == 0) ||((r != 0) && ((a - 1) != b))){                         \
> -      printf("\ntask%d: Atomic_Compare_exchange_" #NAME ": FAILED\n", (unsigned int)task_id); \
> -      rtems_test_exit( 0 );                                              \
> -    }                                                                    \
> -    _Atomic_Store_##NAME(&t, a, ATOMIC_ORDER_RELAXED);                   \
> -    b = a + 1;                                                           \
> -    r = _Atomic_Compare_exchange_##NAME(&t, &b, a, mem_bar, memory_order_relaxed); \
> -    if(r != 0){                                                          \
> -      printf("\ntask%d: Atomic_Compare_exchange_" #NAME ": FAILED\n", (unsigned int)task_id); \
> -      rtems_test_exit( 0 );                                              \
> -    }                                                                    \
> -  }                                                                      \
> -  printf("\ntask%d: Atomic_Compare_exchange_" #NAME ": SUCCESS\n", (unsigned int)task_id);    \
> -}
> -
> -rtems_task Test_task(
> -    rtems_task_argument argument
> -    )
> -{
> -  char              name[5];
> -  char             *p;
> -  rtems_status_code  status;
> -
> -  /* Get the task name */
> -  p = rtems_object_get_name( RTEMS_SELF, 5, name );
> -  rtems_test_assert( p != NULL );
> -
> -  /* Print that the task is up and running. */
> -  /* test relaxed barrier */
> -  ATOMIC_CAS_NO_BARRIER(uint, Uint, uint_fast32_t, argument, ATOMIC_ORDER_RELAXED);
> -
> -  ATOMIC_CAS_NO_BARRIER(ptr, Pointer, uintptr_t, argument, ATOMIC_ORDER_RELAXED);
> -
> -  /* test acquire barrier */
> -  ATOMIC_CAS_NO_BARRIER(uint, Uint, uint_fast32_t, argument, ATOMIC_ORDER_ACQUIRE);
> -
> -  ATOMIC_CAS_NO_BARRIER(ptr, Pointer, uintptr_t, argument, ATOMIC_ORDER_ACQUIRE);
> -
> -  /* test release barrier */
> -  ATOMIC_CAS_NO_BARRIER(uint, Uint, uint_fast32_t, argument, ATOMIC_ORDER_RELEASE);
> -
> -  ATOMIC_CAS_NO_BARRIER(ptr, Pointer, uintptr_t, argument, ATOMIC_ORDER_RELEASE);
> -
> -  /* Set the flag that the task is up and running */
> -  TaskRan[argument] = true;
> -
> -  status = rtems_task_delete( RTEMS_SELF );
> -  directive_failed( status, "delete" );
> -}
> -
> -rtems_task Wait_task(
> -    rtems_task_argument argument
> -    )
> -{
> -  char              name[5];
> -  char             *p;
> -  bool               allDone;
> -  int                i;
> -
> -  /* Get the task name */
> -  p = rtems_object_get_name( RTEMS_SELF, 5, name );
> -  rtems_test_assert( p != NULL );
> -
> -  /* Wait on the all tasks to run */
> -  while (1) {
> -    allDone = true;
> -    for ( i=0; i<TASK_NUMS ; i++ ) {
> -      if (TaskRan[i] == false)
> -        allDone = false;
> -    }
> -    if (allDone) {
> -      puts( "\n\n*** END OF TEST spatomic07 ***\n" );
> -      rtems_test_exit( 0 );
> -    }
> -  }
> -}
> --
> 1.7.9.5
> 
> _______________________________________________
> rtems-devel mailing list
> rtems-devel at rtems.org
> http://www.rtems.org/mailman/listinfo/rtems-devel
> 
> 





More information about the devel mailing list