mirror of
https://gitlab.rtems.org/rtems/rtos/rtems.git
synced 2025-12-05 15:15:44 +00:00
2009-07-19 Joel Sherrill <joel.sherrill@oarcorp.com>
* Makefile.am, configure.ac: Add sp60 to exercise case where a task is blocked on one period while another expires. Add sp61 which exercises the case where a call is made to rtems_shutdown_executive when the system is not up. * sp60/.cvsignore, sp60/Makefile.am, sp60/init.c, sp60/sp60.doc, sp60/sp60.scn, sp61/.cvsignore, sp61/Makefile.am, sp61/init.c, sp61/sp61.doc, sp61/sp61.scn: New files.
This commit is contained in:
@@ -1,3 +1,13 @@
|
|||||||
|
2009-07-19 Joel Sherrill <joel.sherrill@oarcorp.com>
|
||||||
|
|
||||||
|
* Makefile.am, configure.ac: Add sp60 to exercise case where a task is
|
||||||
|
blocked on one period while another expires. Add sp61 which exercises
|
||||||
|
the case where a call is made to rtems_shutdown_executive when the
|
||||||
|
system is not up.
|
||||||
|
* sp60/.cvsignore, sp60/Makefile.am, sp60/init.c, sp60/sp60.doc,
|
||||||
|
sp60/sp60.scn, sp61/.cvsignore, sp61/Makefile.am, sp61/init.c,
|
||||||
|
sp61/sp61.doc, sp61/sp61.scn: New files.
|
||||||
|
|
||||||
2009-07-19 Joel Sherrill <joel.sherrill@oarcorp.com>
|
2009-07-19 Joel Sherrill <joel.sherrill@oarcorp.com>
|
||||||
|
|
||||||
* sp04/init.c: To be timesliced, tasks must also me preemptible.
|
* sp04/init.c: To be timesliced, tasks must also me preemptible.
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ SUBDIRS = \
|
|||||||
sp30 sp31 sp32 sp33 sp34 sp35 sp37 sp38 sp39 \
|
sp30 sp31 sp32 sp33 sp34 sp35 sp37 sp38 sp39 \
|
||||||
sp40 sp42 sp43 sp44 sp45 sp46 sp47 sp48 sp49 \
|
sp40 sp42 sp43 sp44 sp45 sp46 sp47 sp48 sp49 \
|
||||||
sp50 sp51 sp52 sp53 sp54 sp55 sp56 sp57 sp58 sp59 \
|
sp50 sp51 sp52 sp53 sp54 sp55 sp56 sp57 sp58 sp59 \
|
||||||
|
sp60 sp61 \
|
||||||
spchain spobjgetnext spprintk spsize spstkalloc spthreadq01 \
|
spchain spobjgetnext spprintk spsize spstkalloc spthreadq01 \
|
||||||
spwatchdog spwkspace \
|
spwatchdog spwkspace \
|
||||||
spfatal01 spfatal02 spfatal03 spfatal04 spfatal05 spfatal06 spfatal07 \
|
spfatal01 spfatal02 spfatal03 spfatal04 spfatal05 spfatal06 spfatal07 \
|
||||||
|
|||||||
@@ -83,6 +83,8 @@ sp56/Makefile
|
|||||||
sp57/Makefile
|
sp57/Makefile
|
||||||
sp58/Makefile
|
sp58/Makefile
|
||||||
sp59/Makefile
|
sp59/Makefile
|
||||||
|
sp60/Makefile
|
||||||
|
sp61/Makefile
|
||||||
spchain/Makefile
|
spchain/Makefile
|
||||||
spfatal01/Makefile
|
spfatal01/Makefile
|
||||||
spfatal02/Makefile
|
spfatal02/Makefile
|
||||||
|
|||||||
2
testsuites/sptests/sp60/.cvsignore
Normal file
2
testsuites/sptests/sp60/.cvsignore
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
Makefile
|
||||||
|
Makefile.in
|
||||||
28
testsuites/sptests/sp60/Makefile.am
Normal file
28
testsuites/sptests/sp60/Makefile.am
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
##
|
||||||
|
## $Id$
|
||||||
|
##
|
||||||
|
|
||||||
|
MANAGERS = all
|
||||||
|
|
||||||
|
rtems_tests_PROGRAMS = sp60
|
||||||
|
sp60_SOURCES = init.c
|
||||||
|
|
||||||
|
dist_rtems_tests_DATA = sp60.scn
|
||||||
|
dist_rtems_tests_DATA += sp60.doc
|
||||||
|
|
||||||
|
include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
|
||||||
|
include $(top_srcdir)/../automake/compile.am
|
||||||
|
include $(top_srcdir)/../automake/leaf.am
|
||||||
|
|
||||||
|
sp60_LDADD = $(MANAGERS_NOT_WANTED:%=$(PROJECT_LIB)/no-%.rel)
|
||||||
|
|
||||||
|
AM_CPPFLAGS += -I$(top_srcdir)/../support/include
|
||||||
|
|
||||||
|
LINK_OBJS = $(sp60_OBJECTS) $(sp60_LDADD)
|
||||||
|
LINK_LIBS = $(sp60_LDLIBS)
|
||||||
|
|
||||||
|
sp60$(EXEEXT): $(sp60_OBJECTS) $(sp60_DEPENDENCIES)
|
||||||
|
@rm -f sp60$(EXEEXT)
|
||||||
|
$(make-exe)
|
||||||
|
|
||||||
|
include $(top_srcdir)/../automake/local.am
|
||||||
70
testsuites/sptests/sp60/init.c
Normal file
70
testsuites/sptests/sp60/init.c
Normal file
@@ -0,0 +1,70 @@
|
|||||||
|
/*
|
||||||
|
* COPYRIGHT (c) 1989-2009.
|
||||||
|
* 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>
|
||||||
|
|
||||||
|
rtems_task Init(
|
||||||
|
rtems_task_argument ignored
|
||||||
|
)
|
||||||
|
{
|
||||||
|
rtems_status_code sc;
|
||||||
|
rtems_id period1;
|
||||||
|
rtems_id period2;
|
||||||
|
|
||||||
|
puts( "\n\n*** TEST 60 ***" );
|
||||||
|
|
||||||
|
puts( "Init - rtems_rate_monotonic_create - first period" );
|
||||||
|
sc = rtems_rate_monotonic_create(
|
||||||
|
rtems_build_name( 'P', 'E', 'R', '1' ),
|
||||||
|
&period1
|
||||||
|
);
|
||||||
|
directive_failed( sc, "rtems_rate_monotonic_create 1" );
|
||||||
|
|
||||||
|
puts( "Init - rtems_rate_monotonic_create - second period" );
|
||||||
|
sc = rtems_rate_monotonic_create(
|
||||||
|
rtems_build_name( 'P', 'E', 'R', '2' ),
|
||||||
|
&period2
|
||||||
|
);
|
||||||
|
directive_failed( sc, "rtems_rate_monotonic_create 1" );
|
||||||
|
|
||||||
|
puts( "Init - rtems_rate_monotonic_period - short period" );
|
||||||
|
sc = rtems_rate_monotonic_period(period1, RTEMS_MILLISECONDS_TO_TICKS(200) );
|
||||||
|
directive_failed( sc, "rtems_rate_monotonic_period" );
|
||||||
|
|
||||||
|
puts( "Init - rtems_rate_monotonic_period - long period initiated" );
|
||||||
|
sc = rtems_rate_monotonic_period(period2, RTEMS_MILLISECONDS_TO_TICKS(1000) );
|
||||||
|
directive_failed( sc, "rtems_rate_monotonic_period" );
|
||||||
|
|
||||||
|
puts( "Init - rtems_rate_monotonic_period - long period block" );
|
||||||
|
sc = rtems_rate_monotonic_period(period2, RTEMS_MILLISECONDS_TO_TICKS(1000) );
|
||||||
|
directive_failed( sc, "rtems_rate_monotonic_period" );
|
||||||
|
|
||||||
|
puts( "Init - rtems_rate_monotonic_period - verify long period expired" );
|
||||||
|
sc = rtems_rate_monotonic_period(period1, RTEMS_PERIOD_STATUS );
|
||||||
|
fatal_directive_status(sc, RTEMS_TIMEOUT, "rtems_task_period status");
|
||||||
|
|
||||||
|
puts( "*** END OF TEST 60 ***" );
|
||||||
|
rtems_test_exit(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* configuration information */
|
||||||
|
|
||||||
|
#define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
|
||||||
|
#define CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
|
||||||
|
|
||||||
|
#define CONFIGURE_MAXIMUM_TASKS 1
|
||||||
|
#define CONFIGURE_MAXIMUM_PERIODS 2
|
||||||
|
#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
|
||||||
|
|
||||||
|
#define CONFIGURE_INIT
|
||||||
|
#include <rtems/confdefs.h>
|
||||||
|
|
||||||
|
/* global variables */
|
||||||
25
testsuites/sptests/sp60/sp60.doc
Normal file
25
testsuites/sptests/sp60/sp60.doc
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
#
|
||||||
|
# $Id$
|
||||||
|
#
|
||||||
|
# COPYRIGHT (c) 1989-2009.
|
||||||
|
# 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.
|
||||||
|
#
|
||||||
|
|
||||||
|
This file describes the directives and concepts tested by this test set.
|
||||||
|
|
||||||
|
test set name: sp60
|
||||||
|
|
||||||
|
directives:
|
||||||
|
|
||||||
|
rtems_rate_monotonic_create
|
||||||
|
rtems_rate_monotonic_period
|
||||||
|
|
||||||
|
concepts:
|
||||||
|
|
||||||
|
+ Ensure that when a task is blocked on one period while another period
|
||||||
|
expires which is associated with the same task, that the task remains
|
||||||
|
blocked.
|
||||||
11
testsuites/sptests/sp60/sp60.scn
Normal file
11
testsuites/sptests/sp60/sp60.scn
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
sparc-rtems4.10-run is /opt/rtems-4.10/bin/sparc-rtems4.10-run
|
||||||
|
|
||||||
|
|
||||||
|
*** TEST 60 ***
|
||||||
|
Init - rtems_rate_monotonic_create - first period
|
||||||
|
Init - rtems_rate_monotonic_create - second period
|
||||||
|
Init - rtems_rate_monotonic_period - short period
|
||||||
|
Init - rtems_rate_monotonic_period - long period initiated
|
||||||
|
Init - rtems_rate_monotonic_period - long period block
|
||||||
|
Init - rtems_rate_monotonic_period - verify long period expired
|
||||||
|
*** END OF TEST 60 ***
|
||||||
2
testsuites/sptests/sp61/.cvsignore
Normal file
2
testsuites/sptests/sp61/.cvsignore
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
Makefile
|
||||||
|
Makefile.in
|
||||||
28
testsuites/sptests/sp61/Makefile.am
Normal file
28
testsuites/sptests/sp61/Makefile.am
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
##
|
||||||
|
## $Id$
|
||||||
|
##
|
||||||
|
|
||||||
|
MANAGERS = all
|
||||||
|
|
||||||
|
rtems_tests_PROGRAMS = sp61
|
||||||
|
sp61_SOURCES = init.c
|
||||||
|
|
||||||
|
dist_rtems_tests_DATA = sp61.scn
|
||||||
|
dist_rtems_tests_DATA += sp61.doc
|
||||||
|
|
||||||
|
include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
|
||||||
|
include $(top_srcdir)/../automake/compile.am
|
||||||
|
include $(top_srcdir)/../automake/leaf.am
|
||||||
|
|
||||||
|
sp61_LDADD = $(MANAGERS_NOT_WANTED:%=$(PROJECT_LIB)/no-%.rel)
|
||||||
|
|
||||||
|
AM_CPPFLAGS += -I$(top_srcdir)/../support/include
|
||||||
|
|
||||||
|
LINK_OBJS = $(sp61_OBJECTS) $(sp61_LDADD)
|
||||||
|
LINK_LIBS = $(sp61_LDLIBS)
|
||||||
|
|
||||||
|
sp61$(EXEEXT): $(sp61_OBJECTS) $(sp61_DEPENDENCIES)
|
||||||
|
@rm -f sp61$(EXEEXT)
|
||||||
|
$(make-exe)
|
||||||
|
|
||||||
|
include $(top_srcdir)/../automake/local.am
|
||||||
47
testsuites/sptests/sp61/init.c
Normal file
47
testsuites/sptests/sp61/init.c
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
/*
|
||||||
|
* COPYRIGHT (c) 1989-2009.
|
||||||
|
* 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$
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define __RTEMS_VIOLATE_KERNEL_VISIBILITY__
|
||||||
|
#include <tmacros.h>
|
||||||
|
|
||||||
|
|
||||||
|
rtems_task Init(
|
||||||
|
rtems_task_argument ignored
|
||||||
|
)
|
||||||
|
{
|
||||||
|
puts( "\n\n*** TEST 61 ***" );
|
||||||
|
|
||||||
|
puts( "Init - Set current System State to Shutdown" );
|
||||||
|
_System_state_Set( SYSTEM_STATE_SHUTDOWN );
|
||||||
|
|
||||||
|
puts( "Init - rtems_shutdown_executive when already shutdown" );
|
||||||
|
rtems_shutdown_executive( 0 );
|
||||||
|
|
||||||
|
puts( "Init - restore System State and shutdown for real" );
|
||||||
|
_System_state_Set( SYSTEM_STATE_UP );
|
||||||
|
|
||||||
|
puts( "*** END OF TEST 61 ***" );
|
||||||
|
rtems_test_exit(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* configuration information */
|
||||||
|
|
||||||
|
#define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
|
||||||
|
#define CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
|
||||||
|
|
||||||
|
#define CONFIGURE_MAXIMUM_TASKS 2
|
||||||
|
#define CONFIGURE_MAXIMUM_REGIONS 1
|
||||||
|
#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
|
||||||
|
|
||||||
|
#define CONFIGURE_INIT
|
||||||
|
#include <rtems/confdefs.h>
|
||||||
|
|
||||||
|
/* global variables */
|
||||||
24
testsuites/sptests/sp61/sp61.doc
Normal file
24
testsuites/sptests/sp61/sp61.doc
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
#
|
||||||
|
# $Id$
|
||||||
|
#
|
||||||
|
# COPYRIGHT (c) 1989-2009.
|
||||||
|
# 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.
|
||||||
|
#
|
||||||
|
|
||||||
|
This file describes the directives and concepts tested by this test set.
|
||||||
|
|
||||||
|
test set name: sp61
|
||||||
|
|
||||||
|
directives:
|
||||||
|
|
||||||
|
_System_state_Set
|
||||||
|
rtems_shutdown_executive
|
||||||
|
|
||||||
|
concepts:
|
||||||
|
|
||||||
|
+ Ensure that shutting RTEMS down when the system state indicates it is
|
||||||
|
already shutdown does not do anything.
|
||||||
5
testsuites/sptests/sp61/sp61.scn
Normal file
5
testsuites/sptests/sp61/sp61.scn
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
*** TEST 61 ***
|
||||||
|
Init - Set current System State to Shutdown
|
||||||
|
Init - rtems_shutdown_executive when already shutdown
|
||||||
|
Init - restore System State and shutdown for real
|
||||||
|
*** END OF TEST 61 ***
|
||||||
Reference in New Issue
Block a user