diff options
Diffstat (limited to 'testsuites/sptests/spfatal28')
-rw-r--r-- | testsuites/sptests/spfatal28/Makefile.am | 19 | ||||
-rw-r--r-- | testsuites/sptests/spfatal28/spfatal28.doc | 12 | ||||
-rw-r--r-- | testsuites/sptests/spfatal28/spfatal28.scn | 3 | ||||
-rw-r--r-- | testsuites/sptests/spfatal28/testcase.h | 39 |
4 files changed, 73 insertions, 0 deletions
diff --git a/testsuites/sptests/spfatal28/Makefile.am b/testsuites/sptests/spfatal28/Makefile.am new file mode 100644 index 0000000000..a20d936f5f --- /dev/null +++ b/testsuites/sptests/spfatal28/Makefile.am @@ -0,0 +1,19 @@ +rtems_tests_PROGRAMS = spfatal28 +spfatal28_SOURCES = ../spfatal_support/init.c ../spfatal_support/system.h testcase.h + +dist_rtems_tests_DATA = spfatal28.scn spfatal28.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 = $(spfatal28_OBJECTS) +LINK_LIBS = $(spfatal28_LDLIBS) + +spfatal28$(EXEEXT): $(spfatal28_OBJECTS) $(spfatal28_DEPENDENCIES) + @rm -f spfatal28$(EXEEXT) + $(make-exe) + +include $(top_srcdir)/../automake/local.am diff --git a/testsuites/sptests/spfatal28/spfatal28.doc b/testsuites/sptests/spfatal28/spfatal28.doc new file mode 100644 index 0000000000..7514dd9903 --- /dev/null +++ b/testsuites/sptests/spfatal28/spfatal28.doc @@ -0,0 +1,12 @@ +This file describes the directives and concepts tested by this test set. + +test set name: spfatal28 + +directives: + + - rtems_task_delete() + +concepts: + + - Ensure that deletion of a task with a semaphore in use leads to a fatal + error. diff --git a/testsuites/sptests/spfatal28/spfatal28.scn b/testsuites/sptests/spfatal28/spfatal28.scn new file mode 100644 index 0000000000..6fcae10340 --- /dev/null +++ b/testsuites/sptests/spfatal28/spfatal28.scn @@ -0,0 +1,3 @@ +*** BEGIN OF TEST SPFATAL 28 *** +Fatal error (delete a task with a semaphore in use) hit +*** END OF TEST SPFATAL 28 *** diff --git a/testsuites/sptests/spfatal28/testcase.h b/testsuites/sptests/spfatal28/testcase.h new file mode 100644 index 0000000000..fc721003e2 --- /dev/null +++ b/testsuites/sptests/spfatal28/testcase.h @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2014 embedded brains GmbH. All rights reserved. + * + * embedded brains GmbH + * Dornierstr. 4 + * 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.org/license/LICENSE. + */ + +#define FATAL_ERROR_TEST_NAME "28" +#define FATAL_ERROR_DESCRIPTION "delete a task with a semaphore in use" +#define FATAL_ERROR_EXPECTED_SOURCE INTERNAL_ERROR_CORE +#define FATAL_ERROR_EXPECTED_IS_INTERNAL FALSE +#define FATAL_ERROR_EXPECTED_ERROR INTERNAL_ERROR_RESOURCE_IN_USE + +#define CONFIGURE_MAXIMUM_SEMAPHORES 1 + +void force_error() +{ + rtems_status_code sc; + rtems_id id; + + sc = rtems_semaphore_create( + rtems_build_name('S', 'E', 'M', 'A'), + 0, + RTEMS_BINARY_SEMAPHORE | RTEMS_PRIORITY | RTEMS_INHERIT_PRIORITY, + 0, + &id + ); + rtems_test_assert(sc == RTEMS_SUCCESSFUL); + + sc = rtems_task_delete(RTEMS_SELF); + rtems_test_assert(sc == RTEMS_SUCCESSFUL); +} |