diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2012-11-07 12:31:27 +0100 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2012-11-13 09:37:57 +0100 |
commit | 44633fd65cf04f64203cb6137435a18135502842 (patch) | |
tree | e22dee2766eba3b259aeaf1b443cb6eb825103d0 | |
parent | score: Move global variables definition (diff) | |
download | rtems-44633fd65cf04f64203cb6137435a18135502842.tar.bz2 |
sptests/spinternalerror01: New test
-rw-r--r-- | testsuites/sptests/Makefile.am | 1 | ||||
-rw-r--r-- | testsuites/sptests/configure.ac | 1 | ||||
-rw-r--r-- | testsuites/sptests/spinternalerror01/Makefile.am | 19 | ||||
-rw-r--r-- | testsuites/sptests/spinternalerror01/init.c | 87 | ||||
-rw-r--r-- | testsuites/sptests/spinternalerror01/spinternalerror01.doc | 11 | ||||
-rw-r--r-- | testsuites/sptests/spinternalerror01/spinternalerror01.scn | 2 |
6 files changed, 121 insertions, 0 deletions
diff --git a/testsuites/sptests/Makefile.am b/testsuites/sptests/Makefile.am index dd79451dab..b596961ee7 100644 --- a/testsuites/sptests/Makefile.am +++ b/testsuites/sptests/Makefile.am @@ -30,6 +30,7 @@ SUBDIRS = \ spcbssched01 spcbssched02 spcbssched03 spqreslib sptimespec01 SUBDIRS += speventtransient01 SUBDIRS += speventsystem01 +SUBDIRS += spinternalerror01 include $(top_srcdir)/../automake/subdirs.am include $(top_srcdir)/../automake/local.am diff --git a/testsuites/sptests/configure.ac b/testsuites/sptests/configure.ac index 5bee64c92d..0f0c9bdf97 100644 --- a/testsuites/sptests/configure.ac +++ b/testsuites/sptests/configure.ac @@ -27,6 +27,7 @@ AC_CHECK_SIZEOF([time_t]) # Explicitly list all Makefiles here AC_CONFIG_FILES([Makefile +spinternalerror01/Makefile speventsystem01/Makefile speventtransient01/Makefile spintrcritical18/Makefile diff --git a/testsuites/sptests/spinternalerror01/Makefile.am b/testsuites/sptests/spinternalerror01/Makefile.am new file mode 100644 index 0000000000..0f8d985aa5 --- /dev/null +++ b/testsuites/sptests/spinternalerror01/Makefile.am @@ -0,0 +1,19 @@ +rtems_tests_PROGRAMS = spinternalerror01 +spinternalerror01_SOURCES = init.c + +dist_rtems_tests_DATA = spinternalerror01.scn spinternalerror01.doc + +include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg +include $(top_srcdir)/../automake/compile.am +include $(top_srcdir)/../automake/leaf.am + +AM_CPPFLAGS += -I$(top_srcdir)/../support/include + +LINK_OBJS = $(spinternalerror01_OBJECTS) +LINK_LIBS = $(spinternalerror01_LDLIBS) + +spinternalerror01$(EXEEXT): $(spinternalerror01_OBJECTS) $(spinternalerror01_DEPENDENCIES) + @rm -f spinternalerror01$(EXEEXT) + $(make-exe) + +include $(top_srcdir)/../automake/local.am diff --git a/testsuites/sptests/spinternalerror01/init.c b/testsuites/sptests/spinternalerror01/init.c new file mode 100644 index 0000000000..f10b947222 --- /dev/null +++ b/testsuites/sptests/spinternalerror01/init.c @@ -0,0 +1,87 @@ +/* + * Copyright (c) 2012 embedded brains GmbH. All rights reserved. + * + * embedded brains GmbH + * Obere Lagerstr. 30 + * 82178 Puchheim + * Germany + * <rtems@embedded-brains.de> + * + * 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 <bsp.h> +#include <bsp/bootcard.h> + +#define FATAL_SOURCE 0xdeadbeef + +#define FATAL_IS_INTERNAL false + +#define FATAL_ERROR 0x600df00d + +uint32_t boot_card( const char *cmdline ) +{ + _Internal_error_Occurred( FATAL_SOURCE, FATAL_IS_INTERNAL, FATAL_ERROR ); + + return 0; +} + +static void fatal_extension( + Internal_errors_Source source, + bool is_internal, + Internal_errors_t error +) +{ + printk( "\n\n*** TEST SPINTERNALERROR 1 ***\n" ); + + if ( + source == FATAL_SOURCE + && is_internal == FATAL_IS_INTERNAL + && error == FATAL_ERROR + ) { + printk( "*** END OF TEST SPINTERNALERROR 1 ***\n" ); + } +} + +static void *idle_body(uintptr_t ignored) +{ + while ( true ) { + /* Do nothing */ + } + + return NULL; +} + +#define CONFIGURE_INITIAL_EXTENSIONS { .fatal = fatal_extension } + +#define CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER + +#define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM + +#define CONFIGURE_DISABLE_NEWLIB_REENTRANCY + +#define CONFIGURE_SCHEDULER_ENTRY_POINTS NULL + +#define CONFIGURE_SCHEDULER_USER + +#define CONFIGURE_MEMORY_FOR_SCHEDULER 0 + +#define CONFIGURE_MEMORY_PER_TASK_FOR_SCHEDULER 0 + +#define CONFIGURE_TASK_STACK_ALLOCATOR NULL + +#define CONFIGURE_TASK_STACK_DEALLOCATOR NULL + +#define CONFIGURE_IDLE_TASK_INITIALIZES_APPLICATION + +#define CONFIGURE_IDLE_TASK_BODY idle_body + +#define CONFIGURE_INIT + +#include <rtems/confdefs.h> diff --git a/testsuites/sptests/spinternalerror01/spinternalerror01.doc b/testsuites/sptests/spinternalerror01/spinternalerror01.doc new file mode 100644 index 0000000000..a37c5b01d9 --- /dev/null +++ b/testsuites/sptests/spinternalerror01/spinternalerror01.doc @@ -0,0 +1,11 @@ +This file describes the directives and concepts tested by this test set. + +test set name: spinternalerror01 + +directives: + + _Internal_error_Occurred() + +concepts: + + - Ensure that _Internal_error_Occurred() works right after low-level start. diff --git a/testsuites/sptests/spinternalerror01/spinternalerror01.scn b/testsuites/sptests/spinternalerror01/spinternalerror01.scn new file mode 100644 index 0000000000..ecdae59be7 --- /dev/null +++ b/testsuites/sptests/spinternalerror01/spinternalerror01.scn @@ -0,0 +1,2 @@ +*** TEST SPINTERNALERROR 1 *** +*** END OF TEST SPINTERNALERROR 1 *** |