summaryrefslogtreecommitdiffstats
path: root/testsuites/sptests
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>2011-03-11 20:26:59 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>2011-03-11 20:26:59 +0000
commit6a4ccdf998fe0774df08d614dc61366f4bfea867 (patch)
treed6cbadcfb925cf4ee11bcea58aa63ffc08e44ceb /testsuites/sptests
parent2011-03-11 Joel Sherrill <joel.sherrilL@OARcorp.com> (diff)
downloadrtems-6a4ccdf998fe0774df08d614dc61366f4bfea867.tar.bz2
2011-03-11 Joel Sherrill <joel.sherrilL@OARcorp.com>
* sp08/Makefile.am, sp08/init.c, sp08/sp08.scn, sp09/screen07.c, sp09/sp09.scn: Improve coverage. Change mode while system not up and broadcast a message that is too large. * sp08/system.h, sp08/task1.c: Removed.
Diffstat (limited to 'testsuites/sptests')
-rw-r--r--testsuites/sptests/ChangeLog7
-rw-r--r--testsuites/sptests/sp08/Makefile.am6
-rw-r--r--testsuites/sptests/sp08/init.c300
-rw-r--r--testsuites/sptests/sp08/sp08.scn58
-rw-r--r--testsuites/sptests/sp08/system.h53
-rw-r--r--testsuites/sptests/sp08/task1.c259
-rw-r--r--testsuites/sptests/sp09/screen07.c21
-rw-r--r--testsuites/sptests/sp09/sp09.scn6
8 files changed, 336 insertions, 374 deletions
diff --git a/testsuites/sptests/ChangeLog b/testsuites/sptests/ChangeLog
index 11262059e7..ea8c8a0af6 100644
--- a/testsuites/sptests/ChangeLog
+++ b/testsuites/sptests/ChangeLog
@@ -1,5 +1,12 @@
2011-03-11 Joel Sherrill <joel.sherrilL@OARcorp.com>
+ * sp08/Makefile.am, sp08/init.c, sp08/sp08.scn, sp09/screen07.c,
+ sp09/sp09.scn: Improve coverage. Change mode while system not up and
+ broadcast a message that is too large.
+ * sp08/system.h, sp08/task1.c: Removed.
+
+2011-03-11 Joel Sherrill <joel.sherrilL@OARcorp.com>
+
* Makefile.am, configure.ac: Add sp73. This is a new test designed
to improve coverage of the thread yield logic.
* sp73/.cvsignore, sp73/Makefile.am, sp73/init.c, sp73/sp73.doc,
diff --git a/testsuites/sptests/sp08/Makefile.am b/testsuites/sptests/sp08/Makefile.am
index e61c96d63a..0e195c2a13 100644
--- a/testsuites/sptests/sp08/Makefile.am
+++ b/testsuites/sptests/sp08/Makefile.am
@@ -2,10 +2,8 @@
## $Id$
##
-MANAGERS = io semaphore clock
-
rtems_tests_PROGRAMS = sp08
-sp08_SOURCES = init.c task1.c system.h
+sp08_SOURCES = init.c
dist_rtems_tests_DATA = sp08.scn
dist_rtems_tests_DATA += sp08.doc
@@ -14,8 +12,6 @@ include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
include $(top_srcdir)/../automake/compile.am
include $(top_srcdir)/../automake/leaf.am
-sp08_LDADD = $(MANAGERS_NOT_WANTED:%=$(PROJECT_LIB)/no-%.rel)
-
AM_CPPFLAGS += -I$(top_srcdir)/../support/include
LINK_OBJS = $(sp08_OBJECTS) $(sp08_LDADD)
diff --git a/testsuites/sptests/sp08/init.c b/testsuites/sptests/sp08/init.c
index d8a1cd820e..f15076aa56 100644
--- a/testsuites/sptests/sp08/init.c
+++ b/testsuites/sptests/sp08/init.c
@@ -1,17 +1,5 @@
-/* Init
- *
- * This routine is the initialization task for this test program.
- * It is a user initialization task and has the responsibility for creating
- * and starting the tasks that make up the test. If the time of day
- * clock is required for the test, it should also be set to a known
- * value by this function.
- *
- * Input parameters:
- * argument - task argument
- *
- * Output parameters: NONE
- *
- * COPYRIGHT (c) 1989-1999.
+/*
+ * COPYRIGHT (c) 1989-2011.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
@@ -25,32 +13,286 @@
#include "config.h"
#endif
-#define CONFIGURE_INIT
-#include "system.h"
+#include <tmacros.h>
+
+#define PRIxModes_Control PRIx32
+#define PRIxrtems_mode PRIxModes_Control
+
+#define put_mode( _comment, _output_mode ) \
+ printf( "%s %08" PRIxrtems_mode "\n", _comment, _output_mode );
rtems_task Init(
rtems_task_argument argument
)
{
+ rtems_mode previous_mode;
rtems_status_code status;
puts( "\n\n*** TEST 8 ***" );
- Task_name[ 1 ] = rtems_build_name( 'T', 'A', '1', ' ' );
+/* BEGINNING OF RTEMS_ASR */
+
+ status = rtems_task_mode( RTEMS_ASR, RTEMS_ASR_MASK, &previous_mode );
+ directive_failed( status, "rtems_task_mode" );
+ put_mode(
+ "TA1 - rtems_task_mode - RTEMS_ASR - previous mode: ",
+ previous_mode
+ );
+
+ status = rtems_task_mode(
+ RTEMS_NO_ASR,
+ RTEMS_ASR_MASK,
+ &previous_mode
+ );
+ directive_failed( status, "rtems_task_mode" );
+ put_mode(
+ "TA1 - rtems_task_mode - RTEMS_NO_ASR - previous mode: ",
+ previous_mode
+ );
+
+ status = rtems_task_mode(
+ RTEMS_NO_ASR,
+ RTEMS_ASR_MASK,
+ &previous_mode
+ );
+ directive_failed( status, "rtems_task_mode" );
+ put_mode(
+ "TA1 - rtems_task_mode - RTEMS_NO_ASR - previous mode: ",
+ previous_mode
+ );
+
+ status = rtems_task_mode(
+ RTEMS_ASR,
+ RTEMS_ASR_MASK,
+ &previous_mode
+ );
+ directive_failed( status, "rtems_task_mode" );
+ put_mode(
+ "TA1 - rtems_task_mode - RTEMS_ASR - previous mode: ",
+ previous_mode
+ );
+
+/* END OF RTEMS_ASR */
+
+/* BEGINNING OF RTEMS_TIMESLICE */
+
+ status = rtems_task_mode(
+ RTEMS_NO_TIMESLICE,
+ RTEMS_TIMESLICE_MASK,
+ &previous_mode
+ );
+ directive_failed( status, "rtems_task_mode" );
+ put_mode(
+ "TA1 - rtems_task_mode - RTEMS_NO_TIMESLICE - previous mode: ",
+ previous_mode
+ );
+
+ status = rtems_task_mode(
+ RTEMS_TIMESLICE,
+ RTEMS_TIMESLICE_MASK,
+ &previous_mode
+ );
+ directive_failed( status, "rtems_task_mode" );
+ put_mode(
+ "TA1 - rtems_task_mode - RTEMS_TIMESLICE - previous mode: ",
+ previous_mode
+ );
+
+ status = rtems_task_mode(
+ RTEMS_TIMESLICE,
+ RTEMS_TIMESLICE_MASK,
+ &previous_mode
+ );
+ directive_failed( status, "rtems_task_mode" );
+ put_mode(
+ "TA1 - rtems_task_mode - RTEMS_TIMESLICE - previous mode: ",
+ previous_mode
+ );
+
+ status = rtems_task_mode(
+ RTEMS_NO_TIMESLICE,
+ RTEMS_TIMESLICE_MASK,
+ &previous_mode
+ );
+ directive_failed( status, "rtems_task_mode" );
+ put_mode(
+ "TA1 - rtems_task_mode - RTEMS_NO_TIMESLICE - previous mode: ",
+ previous_mode
+ );
+
+/* END OF RTEMS_TIMESLICE */
+
+/* BEGINNING OF RTEMS_PREEMPT */
+
+ status = rtems_task_mode(
+ RTEMS_PREEMPT,
+ RTEMS_PREEMPT_MASK,
+ &previous_mode
+ );
+ directive_failed( status, "rtems_task_mode" );
+ put_mode(
+ "TA1 - rtems_task_mode - RTEMS_PREEMPT - previous mode: ",
+ previous_mode
+ );
+
+ status = rtems_task_mode(
+ RTEMS_NO_PREEMPT,
+ RTEMS_PREEMPT_MASK,
+ &previous_mode
+ );
+ directive_failed( status, "rtems_task_mode" );
+ put_mode(
+ "TA1 - rtems_task_mode - RTEMS_NO_PREEMPT - previous mode: ",
+ previous_mode
+ );
+
+ status = rtems_task_mode(
+ RTEMS_NO_PREEMPT,
+ RTEMS_PREEMPT_MASK,
+ &previous_mode
+ );
+ directive_failed( status, "rtems_task_mode" );
+ put_mode(
+ "TA1 - rtems_task_mode - RTEMS_NO_PREEMPT - previous mode: ",
+ previous_mode
+ );
+
+ status = rtems_task_mode(
+ RTEMS_PREEMPT,
+ RTEMS_PREEMPT_MASK,
+ &previous_mode
+ );
+ directive_failed( status, "rtems_task_mode" );
+ put_mode(
+ "TA1 - rtems_task_mode - RTEMS_PREEMPT - previous mode: ",
+ previous_mode
+ );
+
+/* END OF RTEMS_PREEMPT */
+
+/* BEGINNING OF RTEMS_INTERRUPT_LEVEL */
+
+ status = rtems_task_mode(
+ RTEMS_INTERRUPT_LEVEL(3),
+ RTEMS_INTERRUPT_MASK,
+ &previous_mode
+ );
+ directive_failed( status, "rtems_task_mode" );
+ put_mode(
+ "TA1 - rtems_task_mode - RTEMS_INTERRUPT_LEVEL( 3 ) - previous mode: ",
+ previous_mode
+ );
+
+ status = rtems_task_mode(
+ RTEMS_INTERRUPT_LEVEL(5),
+ RTEMS_INTERRUPT_MASK,
+ &previous_mode
+ );
+ directive_failed( status, "rtems_task_mode" );
+ put_mode(
+ "TA1 - rtems_task_mode - RTEMS_INTERRUPT_LEVEL( 5 ) - previous mode: ",
+ previous_mode
+ );
+
+/* END OF RTEMS_INTERRUPT_LEVEL */
+
+/* BEGINNING OF COMBINATIONS */
+
+ status = rtems_task_mode(
+ RTEMS_INTERRUPT_LEVEL(3) | RTEMS_NO_ASR |
+ RTEMS_TIMESLICE | RTEMS_NO_PREEMPT,
+ RTEMS_INTERRUPT_MASK | RTEMS_ASR_MASK |
+ RTEMS_TIMESLICE_MASK | RTEMS_PREEMPT_MASK,
+ &previous_mode
+ );
+ directive_failed( status, "rtems_task_mode" );
+ put_mode(
+ "TA1 - rtems_task_mode - set all modes - previous mode: ",
+ previous_mode
+ );
+
+ status = rtems_task_mode(
+ RTEMS_INTERRUPT_LEVEL(3) | RTEMS_NO_ASR |
+ RTEMS_TIMESLICE | RTEMS_NO_PREEMPT,
+ RTEMS_INTERRUPT_MASK | RTEMS_ASR_MASK |
+ RTEMS_TIMESLICE_MASK | RTEMS_PREEMPT_MASK,
+ &previous_mode
+ );
+ directive_failed( status, "rtems_task_mode" );
+ put_mode(
+ "TA1 - rtems_task_mode - set all modes - previous mode: ",
+ previous_mode
+ );
+
+ status = rtems_task_mode(
+ RTEMS_INTERRUPT_LEVEL(0) | RTEMS_ASR | RTEMS_NO_TIMESLICE | RTEMS_PREEMPT,
+ RTEMS_INTERRUPT_MASK | RTEMS_ASR_MASK |
+ RTEMS_TIMESLICE_MASK | RTEMS_PREEMPT_MASK,
+ &previous_mode
+ );
+ directive_failed( status, "rtems_task_mode" );
+ put_mode(
+ "TA1 - rtems_task_mode - clear all modes - previous mode: ",
+ previous_mode
+ );
+
+/* END OF COMBINATIONS */
+
+/* BEGINNING OF CURRENT MODE */
+
+ status = rtems_task_mode(
+ RTEMS_CURRENT_MODE,
+ RTEMS_CURRENT_MODE,
+ &previous_mode
+ );
+ directive_failed( status, "rtems_task_mode" );
+ put_mode(
+ "TA1 - rtems_task_mode - get current mode - previous mode: ",
+ previous_mode
+ );
- status = rtems_task_create(
- Task_name[ 1 ],
- 1,
- RTEMS_MINIMUM_STACK_SIZE * 2,
- RTEMS_DEFAULT_MODES,
- RTEMS_DEFAULT_ATTRIBUTES,
- &Task_id[ 1 ]
+/* END OF CURRENT MODE */
+
+/* TEST BEING IN A SYSTEM STATE OTHER THAN UP */
+ puts( "TA1 - FORCE system state to before multitasking" );
+ _System_state_Set( SYSTEM_STATE_BEFORE_MULTITASKING );
+
+ puts( "TA1 - enable preemption mode" );
+ status = rtems_task_mode(
+ RTEMS_PREEMPT,
+ RTEMS_PREEMPT_MASK,
+ &previous_mode
+ );
+ directive_failed( status, "rtems_task_mode" );
+ put_mode(
+ "TA1 - rtems_task_mode - RTEMS_PREEMPT - previous mode: ",
+ previous_mode
+ );
+
+ puts( "TA1 - disable preemption mode" );
+ status = rtems_task_mode(
+ RTEMS_NO_PREEMPT,
+ RTEMS_PREEMPT_MASK,
+ &previous_mode
);
- directive_failed( status, "rtems_task_create of TA1" );
+ directive_failed( status, "rtems_task_mode" );
- status = rtems_task_start( Task_id[ 1 ], Task_1, 0 );
- directive_failed( status, "rtems_task_start of TA1" );
+ puts( "TA1 - Restore system state" );
+ _System_state_Set( SYSTEM_STATE_UP );
- status = rtems_task_delete( RTEMS_SELF );
- directive_failed( status, "rtems_task_delete of RTEMS_SELF" );
+/* END OF TEST BEING IN A SYSTEM STATE OTHER THAN UP */
+
+ puts( "*** END OF TEST 8 ***" );
+ rtems_test_exit( 0 );
}
+
+/* configuration information */
+#define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
+#define CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER
+
+#define CONFIGURE_MAXIMUM_TASKS 1
+#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
+
+#define CONFIGURE_INIT
+#include <rtems/confdefs.h>
+/* end of file */
diff --git a/testsuites/sptests/sp08/sp08.scn b/testsuites/sptests/sp08/sp08.scn
index d85ccc384f..bb7f76ed0a 100644
--- a/testsuites/sptests/sp08/sp08.scn
+++ b/testsuites/sptests/sp08/sp08.scn
@@ -1,22 +1,36 @@
-*** TEST 8 ***
-TA1 - rtems_task_mode - RTEMS_ASR - previous mode: 00000000
-TA1 - rtems_task_mode - RTEMS_NO_ASR - previous mode: 00000000
-TA1 - rtems_task_mode - RTEMS_NO_ASR - previous mode: 00000400
-TA1 - rtems_task_mode - RTEMS_ASR - previous mode: 00000400
-TA1 - rtems_task_mode - RTEMS_NO_TIMESLICE - previous mode: 00000000
-TA1 - rtems_task_mode - RTEMS_TIMESLICE - previous mode: 00000000
-TA1 - rtems_task_mode - RTEMS_TIMESLICE - previous mode: 00000200
-TA1 - rtems_task_mode - RTEMS_NO_TIMESLICE - previous mode: 00000200
-TA1 - rtems_task_mode - RTEMS_PREEMPT - previous mode: 00000000
-TA1 - rtems_task_mode - RTEMS_NO_PREEMPT - previous mode: 00000000
-TA1 - rtems_task_mode - RTEMS_NO_PREEMPT - previous mode: 00000100
-TA1 - rtems_task_mode - RTEMS_PREEMPT - previous mode: 00000100
-TA1 - rtems_task_mode - RTEMS_INTERRUPT_LEVEL( 3 ) - previous mode: 00000000
-TA1 - rtems_task_mode - RTEMS_INTERRUPT_LEVEL( 5 ) - previous mode: 00000003
-TA1 - rtems_task_mode - set all modes - previous mode: 00000005
-TA1 - rtems_task_mode - set all modes - previous mode: 00000703
-TA1 - rtems_task_mode - clear all modes - previous mode: 00000703
-TA1 - rtems_task_mode - get current mode - previous mode: 00000000
-*** END OF TEST 8 ***
-
-NOTE: The interrupt level lines will be different on CPUs with few levels.
+
+
+*** TEST 8 ***
+TA1 - rtems_task_mode - RTEMS_ASR - previous mode: 00000100
+TA1 - rtems_task_mode - RTEMS_NO_ASR - previous mode: 00000100
+TA1 - rtems_task_mode - RTEMS_NO_ASR - previous mode: 00000500
+TA1 - rtems_task_mode - RTEMS_ASR - previous mode: 00000500
+TA1 - rtems_task_mode - RTEMS_NO_TIMESLICE - previous mode: 00000100
+TA1 - rtems_task_mode - RTEMS_TIMESLICE - previous mode: 00000100
+TA1 - rtems_task_mode - RTEMS_TIMESLICE - previous mode: 00000300
+TA1 - rtems_task_mode - RTEMS_NO_TIMESLICE - previous mode: 00000300
+TA1 - rtems_task_mode - RTEMS_PREEMPT - previous mode: 00000100
+TA1 - rtems_task_mode - RTEMS_NO_PREEMPT - previous mode: 00000000
+TA1 - rtems_task_mode - RTEMS_NO_PREEMPT - previous mode: 00000100
+TA1 - rtems_task_mode - RTEMS_PREEMPT - previous mode: 00000100
+TA1 - rtems_task_mode - RTEMS_INTERRUPT_LEVEL( 3 ) - previous mode: 00000000
+TA1 - rtems_task_mode - RTEMS_INTERRUPT_LEVEL( 5 ) - previous mode: 00000000
+TA1 - rtems_task_mode - set all modes - previous mode: 00000000
+TA1 - rtems_task_mode - set all modes - previous mode: 00000700
+TA1 - rtems_task_mode - clear all modes - previous mode: 00000700
+TA1 - rtems_task_mode - get current mode - previous mode: 00000000
+TA1 - FORCE system state to before multitasking
+TA1 - enable preemption mode
+TA1 - rtems_task_mode - RTEMS_PREEMPT - previous mode: 00000000
+TA1 - disable preemption mode
+TA1 - Restore system state
+*** END OF TEST 8 ***
+0 size = 0x000404f6 .
+not load section .debug_frame: addr = 0x00000000 size = 0x00004820 .
+not load section .debug_str: addr = 0x00000000 size = 0x0000f673 .
+not load section .debug_loc: addr = 0x00000000 size = 0x0001c59c .
+not load section .debug_pubtypes: addr = 0x00000000 size = 0x0005eac5 .
+not load section .debug_ranges: addr = 0x00000000 size = 0x000015e0 .
+not load section .ARM.attributes: addr = 0x00000000 size = 0x00000010 .
+call ARMul_InitSymTable,kernel filename is sp08.ralf.
+start addr is set to 0x00000058 by exec file.
diff --git a/testsuites/sptests/sp08/system.h b/testsuites/sptests/sp08/system.h
deleted file mode 100644
index e4f3122d55..0000000000
--- a/testsuites/sptests/sp08/system.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/* system.h
- *
- * This include file contains information that is included in every
- * function in the test set.
- *
- * COPYRIGHT (c) 1989-1999.
- * 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.
- *
- * $Id$
- */
-
-#include <tmacros.h>
-
-/* functions */
-
-rtems_task Init(
- rtems_task_argument argument
-);
-
-rtems_task Task_1(
- rtems_task_argument argument
-);
-
-#define PRIxModes_Control PRIx32
-#define PRIxrtems_mode PRIxModes_Control
-
-#define put_mode( _comment, _output_mode ) \
- printf( "%s %08" PRIxrtems_mode "\n", _comment, _output_mode );
-
-/* configuration information */
-
-#define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
-#define CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
-
-#define CONFIGURE_TICKS_PER_TIMESLICE 100
-
-#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
-
-#define CONFIGURE_EXTRA_TASK_STACKS (1 * RTEMS_MINIMUM_STACK_SIZE)
-#define CONFIGURE_MAXIMUM_TASKS 2
-
-#include <rtems/confdefs.h>
-
-/* global variables */
-
-TEST_EXTERN rtems_id Task_id[ 4 ]; /* array of task ids */
-TEST_EXTERN rtems_name Task_name[ 4 ]; /* array of task names */
-
-/* end of include file */
diff --git a/testsuites/sptests/sp08/task1.c b/testsuites/sptests/sp08/task1.c
deleted file mode 100644
index 2d35ebab40..0000000000
--- a/testsuites/sptests/sp08/task1.c
+++ /dev/null
@@ -1,259 +0,0 @@
-/* Task_1
- *
- * This routine serves as a test task. It verifies all combinations of
- * task mode changes.
- *
- * Input parameters:
- * argument - task argument
- *
- * Output parameters: NONE
- *
- * COPYRIGHT (c) 1989-1999.
- * 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.
- *
- * $Id$
- */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include "system.h"
-
-rtems_task Task_1(
- rtems_task_argument argument
-)
-{
- rtems_mode previous_mode;
- rtems_status_code status;
-
-/* BEGINNING OF RTEMS_ASR */
-
- status = rtems_task_mode( RTEMS_ASR, RTEMS_ASR_MASK, &previous_mode );
- directive_failed( status, "rtems_task_mode" );
- put_mode(
- "TA1 - rtems_task_mode - RTEMS_ASR - previous mode: ",
- previous_mode
- );
-
- status = rtems_task_mode(
- RTEMS_NO_ASR,
- RTEMS_ASR_MASK,
- &previous_mode
- );
- directive_failed( status, "rtems_task_mode" );
- put_mode(
- "TA1 - rtems_task_mode - RTEMS_NO_ASR - previous mode: ",
- previous_mode
- );
-
- status = rtems_task_mode(
- RTEMS_NO_ASR,
- RTEMS_ASR_MASK,
- &previous_mode
- );
- directive_failed( status, "rtems_task_mode" );
- put_mode(
- "TA1 - rtems_task_mode - RTEMS_NO_ASR - previous mode: ",
- previous_mode
- );
-
- status = rtems_task_mode(
- RTEMS_ASR,
- RTEMS_ASR_MASK,
- &previous_mode
- );
- directive_failed( status, "rtems_task_mode" );
- put_mode(
- "TA1 - rtems_task_mode - RTEMS_ASR - previous mode: ",
- previous_mode
- );
-
-/* END OF RTEMS_ASR */
-
-/* BEGINNING OF RTEMS_TIMESLICE */
-
- status = rtems_task_mode(
- RTEMS_NO_TIMESLICE,
- RTEMS_TIMESLICE_MASK,
- &previous_mode
- );
- directive_failed( status, "rtems_task_mode" );
- put_mode(
- "TA1 - rtems_task_mode - RTEMS_NO_TIMESLICE - previous mode: ",
- previous_mode
- );
-
- status = rtems_task_mode(
- RTEMS_TIMESLICE,
- RTEMS_TIMESLICE_MASK,
- &previous_mode
- );
- directive_failed( status, "rtems_task_mode" );
- put_mode(
- "TA1 - rtems_task_mode - RTEMS_TIMESLICE - previous mode: ",
- previous_mode
- );
-
- status = rtems_task_mode(
- RTEMS_TIMESLICE,
- RTEMS_TIMESLICE_MASK,
- &previous_mode
- );
- directive_failed( status, "rtems_task_mode" );
- put_mode(
- "TA1 - rtems_task_mode - RTEMS_TIMESLICE - previous mode: ",
- previous_mode
- );
-
- status = rtems_task_mode(
- RTEMS_NO_TIMESLICE,
- RTEMS_TIMESLICE_MASK,
- &previous_mode
- );
- directive_failed( status, "rtems_task_mode" );
- put_mode(
- "TA1 - rtems_task_mode - RTEMS_NO_TIMESLICE - previous mode: ",
- previous_mode
- );
-
-/* END OF RTEMS_TIMESLICE */
-
-/* BEGINNING OF RTEMS_PREEMPT */
-
- status = rtems_task_mode(
- RTEMS_PREEMPT,
- RTEMS_PREEMPT_MASK,
- &previous_mode
- );
- directive_failed( status, "rtems_task_mode" );
- put_mode(
- "TA1 - rtems_task_mode - RTEMS_PREEMPT - previous mode: ",
- previous_mode
- );
-
- status = rtems_task_mode(
- RTEMS_NO_PREEMPT,
- RTEMS_PREEMPT_MASK,
- &previous_mode
- );
- directive_failed( status, "rtems_task_mode" );
- put_mode(
- "TA1 - rtems_task_mode - RTEMS_NO_PREEMPT - previous mode: ",
- previous_mode
- );
-
- status = rtems_task_mode(
- RTEMS_NO_PREEMPT,
- RTEMS_PREEMPT_MASK,
- &previous_mode
- );
- directive_failed( status, "rtems_task_mode" );
- put_mode(
- "TA1 - rtems_task_mode - RTEMS_NO_PREEMPT - previous mode: ",
- previous_mode
- );
-
- status = rtems_task_mode(
- RTEMS_PREEMPT,
- RTEMS_PREEMPT_MASK,
- &previous_mode
- );
- directive_failed( status, "rtems_task_mode" );
- put_mode(
- "TA1 - rtems_task_mode - RTEMS_PREEMPT - previous mode: ",
- previous_mode
- );
-
-/* END OF RTEMS_PREEMPT */
-
-/* BEGINNING OF RTEMS_INTERRUPT_LEVEL */
-
- status = rtems_task_mode(
- RTEMS_INTERRUPT_LEVEL(3),
- RTEMS_INTERRUPT_MASK,
- &previous_mode
- );
- directive_failed( status, "rtems_task_mode" );
- put_mode(
- "TA1 - rtems_task_mode - RTEMS_INTERRUPT_LEVEL( 3 ) - previous mode: ",
- previous_mode
- );
-
- status = rtems_task_mode(
- RTEMS_INTERRUPT_LEVEL(5),
- RTEMS_INTERRUPT_MASK,
- &previous_mode
- );
- directive_failed( status, "rtems_task_mode" );
- put_mode(
- "TA1 - rtems_task_mode - RTEMS_INTERRUPT_LEVEL( 5 ) - previous mode: ",
- previous_mode
- );
-
-/* END OF RTEMS_INTERRUPT_LEVEL */
-
-/* BEGINNING OF COMBINATIONS */
-
- status = rtems_task_mode(
- RTEMS_INTERRUPT_LEVEL(3) | RTEMS_NO_ASR |
- RTEMS_TIMESLICE | RTEMS_NO_PREEMPT,
- RTEMS_INTERRUPT_MASK | RTEMS_ASR_MASK |
- RTEMS_TIMESLICE_MASK | RTEMS_PREEMPT_MASK,
- &previous_mode
- );
- directive_failed( status, "rtems_task_mode" );
- put_mode(
- "TA1 - rtems_task_mode - set all modes - previous mode: ",
- previous_mode
- );
-
- status = rtems_task_mode(
- RTEMS_INTERRUPT_LEVEL(3) | RTEMS_NO_ASR |
- RTEMS_TIMESLICE | RTEMS_NO_PREEMPT,
- RTEMS_INTERRUPT_MASK | RTEMS_ASR_MASK |
- RTEMS_TIMESLICE_MASK | RTEMS_PREEMPT_MASK,
- &previous_mode
- );
- directive_failed( status, "rtems_task_mode" );
- put_mode(
- "TA1 - rtems_task_mode - set all modes - previous mode: ",
- previous_mode
- );
-
- status = rtems_task_mode(
- RTEMS_INTERRUPT_LEVEL(0) | RTEMS_ASR | RTEMS_NO_TIMESLICE | RTEMS_PREEMPT,
- RTEMS_INTERRUPT_MASK | RTEMS_ASR_MASK |
- RTEMS_TIMESLICE_MASK | RTEMS_PREEMPT_MASK,
- &previous_mode
- );
- directive_failed( status, "rtems_task_mode" );
- put_mode(
- "TA1 - rtems_task_mode - clear all modes - previous mode: ",
- previous_mode
- );
-
-/* END OF COMBINATIONS */
-
-/* BEGINNING OF CURRENT MODE */
-
- status = rtems_task_mode(
- RTEMS_CURRENT_MODE,
- RTEMS_CURRENT_MODE,
- &previous_mode
- );
- directive_failed( status, "rtems_task_mode" );
- put_mode(
- "TA1 - rtems_task_mode - get current mode - previous mode: ",
- previous_mode
- );
-
-/* END OF CURRENT MODE */
-
- puts( "*** END OF TEST 8 ***" );
- rtems_test_exit( 0 );
-}
diff --git a/testsuites/sptests/sp09/screen07.c b/testsuites/sptests/sp09/screen07.c
index 0dedfbf2f1..25b1057196 100644
--- a/testsuites/sptests/sp09/screen07.c
+++ b/testsuites/sptests/sp09/screen07.c
@@ -349,15 +349,30 @@ void Screen7()
);
puts( "TA1 - rtems_message_queue_urgent - RTEMS_INVALID_ID" );
- status = rtems_message_queue_broadcast( Queue_id[ 1 ], NULL, MESSAGE_SIZE, &count );
+ status = rtems_message_queue_broadcast(
+ Queue_id[ 1 ], NULL, MESSAGE_SIZE, &count );
fatal_directive_status(
status,
RTEMS_INVALID_ADDRESS,
"rtems_message_queue_broadcast with NULL count"
);
- puts( "TA1 - rtems_message_queue_broadcast - NULL buffer - RTEMS_INVALID_ADDRESS" );
+ puts(
+ "TA1 - rtems_message_queue_broadcast - NULL buffer - RTEMS_INVALID_ADDRESS"
+ );
+
+ status = rtems_message_queue_broadcast(
+ Queue_id[ 1 ], buffer, MESSAGE_SIZE + 1, &count );
+ fatal_directive_status(
+ status,
+ RTEMS_INVALID_SIZE,
+ "rtems_message_queue_broadcast with too large"
+ );
+ puts(
+ "TA1 - rtems_message_queue_broadcast - too large - RTEMS_INVALID_SIZE"
+ );
- status = rtems_message_queue_broadcast( Queue_id[ 1 ], buffer, MESSAGE_SIZE, NULL );
+ status = rtems_message_queue_broadcast(
+ Queue_id[ 1 ], buffer, MESSAGE_SIZE, NULL );
fatal_directive_status(
status,
RTEMS_INVALID_ADDRESS,
diff --git a/testsuites/sptests/sp09/sp09.scn b/testsuites/sptests/sp09/sp09.scn
index 17b31bb9fd..1deb986f54 100644
--- a/testsuites/sptests/sp09/sp09.scn
+++ b/testsuites/sptests/sp09/sp09.scn
@@ -151,6 +151,7 @@ TA1 - rtems_message_queue_send - BUFFER 3 TO Q 1 - RTEMS_TOO_MANY
TA1 - rtems_message_queue_urgent - NULL buffer - RTEMS_INVALID_ADDRESS
TA1 - rtems_message_queue_urgent - RTEMS_INVALID_ID
TA1 - rtems_message_queue_broadcast - NULL buffer - RTEMS_INVALID_ADDRESS
+TA1 - rtems_message_queue_broadcast - too large - RTEMS_INVALID_SIZE
TA1 - rtems_message_queue_broadcast - NULL count - RTEMS_INVALID_ADDRESS
<pause - screen 8>
TA1 - rtems_message_queue_delete - Q 1 - RTEMS_SUCCESSFUL
@@ -174,9 +175,8 @@ TA1 - rtems_task_wake_after - yield processor - RTEMS_SUCCESSFUL
TA3 - rtems_message_queue_receive - woke up with RTEMS_OBJECT_WAS_DELETED
TA3 - rtems_task_delete - delete self - RTEMS_SUCCESSFUL
<pause - screen 9>
-TA1 - rtems_interrupt_catch - RTEMS_INVALID_NUMBER
-TA1 - rtems_interrupt_catch - bad handler RTEMS_INVALID_ADDRESS
-TA1 - rtems_interrupt_catch - old isr RTEMS_INVALID_ADDRESS
+TA1 - rtems_interrupt_catch - bad handler RTEMS_INVALID_ADDRESS -- SKIPPED
+TA1 - rtems_interrupt_catch - old isr RTEMS_INVALID_ADDRESS - SKIPPED
TA1 - rtems_signal_send - RTEMS_INVALID_ID
TA1 - rtems_signal_send - RTEMS_INVALID_NUMBER
TA1 - rtems_signal_send - RTEMS_NOT_DEFINED