From 6a4ccdf998fe0774df08d614dc61366f4bfea867 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Fri, 11 Mar 2011 20:26:59 +0000 Subject: 2011-03-11 Joel Sherrill * 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. --- testsuites/sptests/ChangeLog | 7 + testsuites/sptests/sp08/Makefile.am | 6 +- testsuites/sptests/sp08/init.c | 300 ++++++++++++++++++++++++++++++++---- testsuites/sptests/sp08/sp08.scn | 58 ++++--- testsuites/sptests/sp08/system.h | 53 ------- testsuites/sptests/sp08/task1.c | 259 ------------------------------- testsuites/sptests/sp09/screen07.c | 21 ++- testsuites/sptests/sp09/sp09.scn | 6 +- 8 files changed, 336 insertions(+), 374 deletions(-) delete mode 100644 testsuites/sptests/sp08/system.h delete mode 100644 testsuites/sptests/sp08/task1.c (limited to 'testsuites/sptests') diff --git a/testsuites/sptests/ChangeLog b/testsuites/sptests/ChangeLog index 11262059e7..ea8c8a0af6 100644 --- a/testsuites/sptests/ChangeLog +++ b/testsuites/sptests/ChangeLog @@ -1,3 +1,10 @@ +2011-03-11 Joel Sherrill + + * 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 * Makefile.am, configure.ac: Add sp73. This is a new test designed 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 + +#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 +/* 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 - -/* 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 - -/* 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 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 -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 -- cgit v1.2.3