summaryrefslogtreecommitdiffstats
path: root/testsuites/sptests/spfatal03
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>2009-07-16 14:57:36 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>2009-07-16 14:57:36 +0000
commit1c5d8f494936a4e3fe86cc084b9ae01dbeeaac49 (patch)
tree483c9af86c6cd3b0daa2e02a7bc7ec7b68bbf924 /testsuites/sptests/spfatal03
parentHousekeeping. (diff)
downloadrtems-1c5d8f494936a4e3fe86cc084b9ae01dbeeaac49.tar.bz2
2009-07-16 Joel Sherrill <joel.sherrill@oarcorp.com>
* spfatal03/spfatal03.scn, spfatal03/testcase.h: Fix spfatal03 to do what it was intended to do.
Diffstat (limited to 'testsuites/sptests/spfatal03')
-rw-r--r--testsuites/sptests/spfatal03/spfatal03.scn4
-rw-r--r--testsuites/sptests/spfatal03/testcase.h44
2 files changed, 13 insertions, 35 deletions
diff --git a/testsuites/sptests/spfatal03/spfatal03.scn b/testsuites/sptests/spfatal03/spfatal03.scn
index af4ee9a631..d110a04df6 100644
--- a/testsuites/sptests/spfatal03/spfatal03.scn
+++ b/testsuites/sptests/spfatal03/spfatal03.scn
@@ -1,2 +1,2 @@
-Create S0
-Fatal error (Core Mutex obtain in critical section) hit
+Create semaphore S0
+Obtain semaphore in dispatching critical section
diff --git a/testsuites/sptests/spfatal03/testcase.h b/testsuites/sptests/spfatal03/testcase.h
index 0eb8589e4e..aaced199c3 100644
--- a/testsuites/sptests/spfatal03/testcase.h
+++ b/testsuites/sptests/spfatal03/testcase.h
@@ -1,5 +1,5 @@
/*
- * Classic API Init task create failure
+ * Semaphore Obtain in Critical Section
*
* COPYRIGHT (c) 1989-2009.
* On-Line Applications Research Corporation (OAR).
@@ -11,25 +11,7 @@
* $Id$
*/
-/*
- * Way too much stack space. Should generate a fatal error
- * on the init task create.
- */
-#define CONFIGURE_HAS_OWN_INIT_TASK_TABLE
-#define CONFIGURE_INIT_TASK_STACK_SIZE RTEMS_MINIMUM_STACK_SIZE
-rtems_initialization_tasks_table Initialization_tasks[] = {
- { rtems_build_name('I', 'N', 'I', ' '),
- RTEMS_MINIMUM_STACK_SIZE,
- 1,
- RTEMS_DEFAULT_ATTRIBUTES,
- Init,
- RTEMS_DEFAULT_MODES,
- 0
- }
-};
-#define CONFIGURE_INIT_TASK_TABLE Initialization_tasks
-#define CONFIGURE_INIT_TASK_TABLE_SIZE \
- sizeof(CONFIGURE_INIT_TASK_TABLE) / sizeof(rtems_initialization_tasks_table)
+#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
#define CONFIGURE_MAXIMUM_SEMAPHORES 10
@@ -38,34 +20,30 @@ rtems_initialization_tasks_table Initialization_tasks[] = {
#define FATAL_ERROR_EXPECTED_IS_INTERNAL FALSE
#define FATAL_ERROR_EXPECTED_ERROR INTERNAL_ERROR_MUTEX_OBTAIN_FROM_BAD_STATE
-rtems_id Mutex_id[1];
-rtems_name Mutex_name[1];
-
void force_error(void)
{
+
rtems_status_code status;
+ rtems_id mutex;
- Mutex_name[0] = rtems_build_name( 'S','0',' ',' ');
status = rtems_semaphore_create(
- Mutex_name[0],
+ rtems_build_name( 'S','0',' ',' '),
1,
RTEMS_LOCAL|
- RTEMS_SIMPLE_BINARY_SEMAPHORE|
- RTEMS_PRIORITY_CEILING |
- RTEMS_PRIORITY,
+ RTEMS_SIMPLE_BINARY_SEMAPHORE,
0,
- &Mutex_id[0]
+ &mutex
);
directive_failed( status, "rtems_semaphore_create of S0");
- printf("Create S0\n");
-
+ puts("Create semaphore S0");
+ puts("Obtain semaphore in dispatching critical section");
_Thread_Disable_dispatch();
- status = rtems_semaphore_obtain( Mutex_id[0], RTEMS_DEFAULT_OPTIONS, 0 );
+ status = rtems_semaphore_obtain( mutex, RTEMS_DEFAULT_OPTIONS, 0 );
/* !!! SHOULD NOT RETURN FROM THE ABOVE CALL */
_Thread_Enable_dispatch();
- directive_failed( status, "rtems_semaphore_obtain" );
+ puts("ERROR -- Obtain semaphore should not have returned");
/* we will not run this far */
}