sptests: New tests split from sp09 screen 1 and screen 2.

Split sp09 screen 1 into new test sptask_err04.
Split sp09 screen 2 into new tests sptask__err02 and spclock_err01,
as well as moving one verification into sptimer_err01.
This commit is contained in:
Bjorn Larsson
2014-03-28 13:05:57 -05:00
committed by Jennifer Averett
parent 719c7e55e4
commit df367faddb
27 changed files with 444 additions and 435 deletions

View File

@@ -3,7 +3,7 @@ ACLOCAL_AMFLAGS = -I ../aclocal
## Test names are spaced to indicate gaps in numbering from tests being
## deleted over the years.
SUBDIRS = \
sp01 sp02 sp03 sp04 sp05 sp06 sp07 sp08 sp09 \
sp01 sp02 sp03 sp04 sp05 sp06 sp07 sp08 \
sp10 sp11 sp12 sp13 sp14 sp15 sp16 sp17 sp18 sp19 \
sp20 sp21 sp22 sp23 sp24 sp25 sp26 sp27 sp27a sp28 sp29 \
sp30 sp31 sp32 sp33 sp34 sp35 sp37 sp38 sp39 \
@@ -31,7 +31,8 @@ SUBDIRS = \
spcbssched01 spcbssched02 spcbssched03 spqreslib sptimespec01 \
spregion_err01 sppartition_err01 spratemon_err01 spintr_err01 \
spsignal_err01 spport_err01 spmsgq_err01 spmsgq_err02 spsem_err01 \
spsem_err02 sptask_err01 spevent_err03 sptask_err03
spsem_err02 sptask_err01 spevent_err03 sptask_err03 sptask_err02 \
sptask_err04 spclock_err01
SUBDIRS += spprofiling01
SUBDIRS += spcache01
SUBDIRS += sptls03

View File

@@ -59,7 +59,6 @@ sp05/Makefile
sp06/Makefile
sp07/Makefile
sp08/Makefile
sp09/Makefile
sp10/Makefile
sp11/Makefile
sp12/Makefile
@@ -135,6 +134,7 @@ spcbssched02/Makefile
spcbssched03/Makefile
spchain/Makefile
spclockget/Makefile
spclock_err01/Makefile
spclock_err02/Makefile
spcoverage/Makefile
spedfsched01/Makefile
@@ -223,7 +223,9 @@ sptimespec01/Makefile
spwatchdog/Makefile
spwkspace/Makefile
sptask_err01/Makefile
sptask_err02/Makefile
sptask_err03/Makefile
sptask_err04/Makefile
sptimer_err01/Makefile
sptimer_err02/Makefile
spcpuset01/Makefile

View File

@@ -1,24 +0,0 @@
rtems_tests_PROGRAMS = sp09
sp09_SOURCES = init.c delay.c isr.c screen01.c screen02.c \
task1.c task2.c task3.c \
system.h
dist_rtems_tests_DATA = sp09.scn
dist_rtems_tests_DATA += sp09.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 = $(sp09_OBJECTS)
LINK_LIBS = $(sp09_LDLIBS)
sp09$(EXEEXT): $(sp09_OBJECTS) $(sp09_DEPENDENCIES)
@rm -f sp09$(EXEEXT)
$(make-exe)
include $(top_srcdir)/../automake/local.am

View File

@@ -1,28 +0,0 @@
/* Service_routine
*
* This routine is used as the timer routine for Interrupt Manager tests.
*
* Input parameters:
* ignored - this parameter is ignored
*
* 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.org/license/LICENSE.
*/
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include "system.h"
rtems_isr Service_routine(
rtems_vector_number ignored
)
{
}

View File

@@ -1,59 +0,0 @@
*** TEST 9 ***
INIT - rtems_task_create - priority of 0 - RTEMS_INVALID_PRIORITY
INIT - rtems_task_create - priority too high - RTEMS_INVALID_PRIORITY
INIT - rtems_task_restart - RTEMS_INCORRECT_STATE
TA1 - rtems_task_is_suspended - RTEMS_INVALID_ID
TA1 - rtems_task_delete - RTEMS_INVALID_ID
TA1 - rtems_task_get_note - RTEMS_INVALID_ADDRESS
TA1 - rtems_task_get_note - RTEMS_INVALID_NUMBER
TA1 - rtems_task_get_note - RTEMS_INVALID_ID
TA1 - rtems_task_get_note - RTEMS_INVALID_ID
TA1 - rtems_task_ident - RTEMS_INVALID_ADDRESS
TA1 - rtems_task_ident - current task RTEMS_SUCCESSFUL
TA1 - rtems_task_ident - global RTEMS_INVALID_NAME
TA1 - rtems_task_ident - local RTEMS_INVALID_NAME
TA1 - rtems_task_ident - RTEMS_INVALID_NODE
TA1 - rtems_task_restart - RTEMS_INVALID_ID
TA1 - rtems_task_resume - RTEMS_INVALID_ID
TA1 - rtems_task_resume - RTEMS_INCORRECT_STATE
TA1 - rtems_task_set_priority - RTEMS_INVALID_ADDRESS
TA1 - rtems_task_set_priority - RTEMS_INVALID_PRIORITY
TA1 - rtems_task_set_priority - RTEMS_INVALID_ID
TA1 - rtems_task_set_note - RTEMS_INVALID_NUMBER
TA1 - rtems_task_set_note - RTEMS_INVALID_ID
TA1 - rtems_task_start - RTEMS_INVALID_ID
TA1 - rtems_task_start - RTEMS_INCORRECT_STATE
TA1 - rtems_task_suspend - RTEMS_INVALID_ID
TA1 - rtems_task_mode - RTEMS_INVALID_ADDRESS
<pause - screen 2>
TA1 - rtems_clock_get_tod - RTEMS_INVALID_ADDRESS
TA1 - rtems_clock_get_tod - RTEMS_NOT_DEFINED
TA1 - rtems_clock_get_seconds_since_epoch - RTEMS_INVALID_ADDRESS
TA1 - rtems_clock_get_seconds_since_epoch - RTEMS_NOT_DEFINED
TA1 - rtems_clock_get_uptime - RTEMS_INVALID_ADDRESS
TA1 - rtems_clock_get_uptime_timeval
TA1 - rtems_clock_get_uptime_seconds
TA1 - rtems_clock_get_uptime_nanoseconds
TA1 - rtems_clock_get_tod_timeval - RTEMS_INVALID_ADDRESS
TA1 - rtems_clock_get_tod_timeval - RTEMS_NOT_DEFINED
TA1 - rtems_clock_set_nanoseconds_extension - RTEMS_INVALID_ADDRESS
TA1 - rtems_clock_set - RTEMS_INVALID_ADDRESS
TA1 - rtems_task_wake_when - RTEMS_INVALID_ADDRESS
TA1 - rtems_task_wake_when - RTEMS_NOT_DEFINED
TA1 - rtems_timer_fire_when - RTEMS_NOT_DEFINED
TA1 - rtems_clock_set - 08:30:45 02/05/1987 - RTEMS_INVALID_CLOCK
TA1 - rtems_clock_set - 08:30:45 15/05/1988 - RTEMS_INVALID_CLOCK
TA1 - rtems_clock_set - 08:30:45 02/32/1988 - RTEMS_INVALID_CLOCK
TA1 - rtems_clock_set - 25:30:45 02/05/1988 - RTEMS_INVALID_CLOCK
TA1 - rtems_clock_set - 08:61:45 02/05/1988 - RTEMS_INVALID_CLOCK
TA1 - rtems_clock_set - 08:30:61 02/05/1988 - RTEMS_INVALID_CLOCK
TA1 - rtems_clock_set - 08:30:45 02/05/1988 - RTEMS_INVALID_CLOCK
TA1 - rtems_clock_set - 08:30:45 02/05/1988 - RTEMS_SUCCESSFUL
TA1 - rtems_task_wake_when - TICKINVALID - sleep about 3 seconds
TA1 - rtems_task_wake_when - RTEMS_INVALID_ADDRESS
TA1 - rtems_task_wake_when - TICKINVALID - woke up RTEMS_SUCCESSFUL
TA1 - rtems_task_wake_when - 08:30:48 02/05/1961 - RTEMS_INVALID_CLOCK
TA1 - rtems_task_wake_when - 25:30:48 02/05/1988 - RTEMS_INVALID_CLOCK
TA1 - current time - 08:30:51 02/05/1988
TA1 - rtems_task_wake_when - 08:30:51 01/05/1988 - RTEMS_INVALID_CLOCK
*** END OF TEST 9 ***

View File

@@ -1,36 +0,0 @@
/* Task_1
*
* This task generates all possible errors for the RTEMS executive.
*
* 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.org/license/LICENSE.
*/
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include "system.h"
rtems_task Task_1(
rtems_task_argument argument
)
{
Screen1();
rtems_test_pause_and_screen_number( 2 );
Screen2();
TEST_END();
rtems_test_exit( 0 );
}

View File

@@ -1,49 +0,0 @@
/* Task_2
*
* This routine serves as a test task. Its only purpose is to generate the
* error where a semaphore is deleted while a task is waiting for it.
*
* 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.org/license/LICENSE.
*/
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include "system.h"
rtems_task Task_2(
rtems_task_argument argument
)
{
rtems_status_code status;
puts( "TA2 - rtems_semaphore_obtain - sem 1 - RTEMS_WAIT FOREVER" );
status = rtems_semaphore_obtain(
Semaphore_id[ 1 ],
RTEMS_DEFAULT_OPTIONS,
RTEMS_NO_TIMEOUT
);
fatal_directive_status(
status,
RTEMS_OBJECT_WAS_DELETED,
"rtems_semaphore_obtain waiting to be deleted"
);
puts(
"TA2 - rtems_semaphore_obtain - woke up with RTEMS_OBJECT_WAS_DELETED"
);
puts( "TA2 - rtems_task_delete - delete self - RTEMS_SUCCESSFUL" );
status = rtems_task_delete( RTEMS_SELF );
directive_failed( status, "rtems_task_delete of TA2" );
}

View File

@@ -1,54 +0,0 @@
/* Task_3
*
* This routine serves as a test task. Its only purpose in life is to
* generate the error where a message queue is deleted while a task
* is waiting there for a message.
*
* Input parameters:
* argument - task argument
*
* Output parameters: NONE
*
* COPYRIGHT (c) 1989-2007.
* 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.org/license/LICENSE.
*/
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include "system.h"
rtems_task Task_3(
rtems_task_argument argument
)
{
rtems_status_code status;
long buffer[ 4 ];
size_t size;
puts( "TA3 - rtems_message_queue_receive - Q 1 - RTEMS_WAIT FOREVER" );
status = rtems_message_queue_receive(
Queue_id[ 1 ],
(long (*)[4])buffer,
&size,
RTEMS_DEFAULT_OPTIONS,
RTEMS_NO_TIMEOUT
);
fatal_directive_status(
status,
RTEMS_OBJECT_WAS_DELETED,
"rtems_message_queue_receive waiting to be deleted"
);
puts(
"TA3 - rtems_message_queue_receive - woke up with RTEMS_OBJECT_WAS_DELETED"
);
puts( "TA3 - rtems_task_delete - delete self - RTEMS_SUCCESSFUL" );
status = rtems_task_delete( RTEMS_SELF );
directive_failed( status, "rtems_task_delete of TA3" );
}

View File

@@ -0,0 +1,22 @@
rtems_tests_PROGRAMS = spclock_err01
spclock_err01_SOURCES = init.c delay.c system.h
dist_rtems_tests_DATA = spclock_err01.scn
dist_rtems_tests_DATA += spclock_err01.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 = $(spclock_err01_OBJECTS)
LINK_LIBS = $(spclock_err01_LDLIBS)
spclock_err01$(EXEEXT): $(spclock_err01_OBJECTS) $(spclock_err01_DEPENDENCIES)
@rm -f spclock_err01$(EXEEXT)
$(make-exe)
include $(top_srcdir)/../automake/local.am

View File

@@ -12,7 +12,7 @@
*
* 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.
* http://www.rtems.com/license/LICENSE.
*/
#ifdef HAVE_CONFIG_H

View File

@@ -1,32 +1,32 @@
/* Screen2
*
* This routine generates error screen 2 for test 9.
*
* Input parameters: NONE
*
* Output parameters: NONE
*
* COPYRIGHT (c) 1989-2011.
/*
* COPYRIGHT (c) 2014.
* 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.org/license/LICENSE.
* http://www.rtems.com/license/LICENSE.
*/
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#define CONFIGURE_INIT
#include "system.h"
void Screen2()
const char rtems_test_name[] = "SP CLOCK ERROR 2";
rtems_task Init(
rtems_task_argument argument
)
{
rtems_time_of_day time;
rtems_interval interval;
struct timeval tv;
rtems_status_code status;
TEST_BEGIN();
puts( "TA1 - rtems_clock_get_tod - RTEMS_INVALID_ADDRESS" );
status = rtems_clock_get_tod( NULL );
fatal_directive_status(
@@ -132,46 +132,6 @@ void Screen2()
);
puts( "TA1 - rtems_clock_set - RTEMS_INVALID_ADDRESS" );
/* wake when NULL param */
status = rtems_task_wake_when( NULL );
fatal_directive_status(
status,
RTEMS_NOT_DEFINED,
"rtems_task_wake_when NULL param"
);
puts( "TA1 - rtems_task_wake_when - RTEMS_INVALID_ADDRESS" );
/* wake when before set */
status = rtems_task_wake_when( &time );
if ( status == RTEMS_SUCCESSFUL ) {
puts(
"TA1 - rtems_task_wake_when - RTEMS_NOT_DEFINED -- "
"DID BSP SET THE TIME OF DAY?"
);
} else {
fatal_directive_status(
status,
RTEMS_NOT_DEFINED,
"rtems_task_wake_when before clock is set"
);
puts( "TA1 - rtems_task_wake_when - RTEMS_NOT_DEFINED" );
}
/* before time set */
status = rtems_timer_fire_when( 0, &time, Delayed_routine, NULL );
if ( status == RTEMS_SUCCESSFUL ) {
puts(
"TA1 - timer_wake_when - RTEMS_NOT_DEFINED -- DID BSP SET THE TIME OF DAY?"
);
} else {
fatal_directive_status(
status,
RTEMS_NOT_DEFINED,
"task_fire_when before clock is set"
);
puts( "TA1 - rtems_timer_fire_when - RTEMS_NOT_DEFINED" );
}
build_time( &time, 2, 5, 1987, 8, 30, 45, 0 );
print_time( "TA1 - rtems_clock_set - ", &time, "" );
status = rtems_clock_set( &time );
@@ -251,63 +211,8 @@ void Screen2()
directive_failed( status, "rtems_clock_set successful" );
puts( " - RTEMS_SUCCESSFUL" );
/* rtems_task_wake_when */
build_time(
&time,
2, 5, 1988, 8, 30, 48,
rtems_clock_get_ticks_per_second() + 1
);
time.second += 3;
puts( "TA1 - rtems_task_wake_when - TICKINVALID - sleep about 3 seconds" );
/* NULL time */
status = rtems_task_wake_when( NULL );
fatal_directive_status(
status,
RTEMS_INVALID_ADDRESS,
"rtems_task_wake_when with NULL"
);
puts( "TA1 - rtems_task_wake_when - RTEMS_INVALID_ADDRESS" );
/* invalid ticks */
status = rtems_task_wake_when( &time );
directive_failed(
status,
"rtems_task_wake_when with invalid ticks per second"
);
puts( "TA1 - rtems_task_wake_when - TICKINVALID - woke up RTEMS_SUCCESSFUL" );
build_time( &time, 2, 5, 1961, 8, 30, 48, 0 );
print_time( "TA1 - rtems_task_wake_when - ", &time, "" );
status = rtems_task_wake_when( &time );
fatal_directive_status(
status,
RTEMS_INVALID_CLOCK,
"rtems_task_wake_when with invalid year"
);
puts( " - RTEMS_INVALID_CLOCK" );
build_time( &time, 2, 5, 1988, 25, 30, 48, 0 );
print_time( "TA1 - rtems_task_wake_when - ", &time, "" );
status = rtems_task_wake_when( &time );
fatal_directive_status(
status,
RTEMS_INVALID_CLOCK,
"rtems_task_wake_when with invalid hour"
);
puts( " - RTEMS_INVALID_CLOCK" );
rtems_clock_get_tod( &time );
print_time( "TA1 - current time - ", &time, "\n" );
time.month = 1;
print_time( "TA1 - rtems_task_wake_when - ", &time, "" );
status = rtems_task_wake_when( &time );
fatal_directive_status(
status,
RTEMS_INVALID_CLOCK,
"rtems_task_wake_when before current time"
);
puts( " - RTEMS_INVALID_CLOCK" );
TEST_END();
}

View File

@@ -3,20 +3,17 @@
#
# 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.
# http://www.rtems.com/license/LICENSE.
#
This file describes the directives and concepts tested by this test set.
test set name: test9
test set name: spclock_err01
directives:
tm_tick, t_resume, t_setpri, t_setreg, t_start, t_suspend, tm_wkafter,
tm_wkwhen, ev_receive, ev_send, sm_create, sm_delete, sm_ident,
sm_p, sm_v, q_broadcast, q_create, q_delete, q_ident, q_receive,
q_send, q_urgent, as_catch, as_send, as_return
de_init, de_open, de_read, de_write, de_close, de_cntrl
c_gettod, c_secspoch, c_uptime, c_uptimeval, c_upsec, c_upnanosec,
c_todtimeval, c_nsecexten, c_set, tm_firewhen, c_ticksps,
concepts:

View File

@@ -0,0 +1,23 @@
*** TEST CLOCK ERROR 01 ***
TA1 - rtems_clock_get_tod - RTEMS_INVALID_ADDRESS
TA1 - rtems_clock_get_tod - RTEMS_NOT_DEFINED
TA1 - rtems_clock_get_seconds_since_epoch - RTEMS_INVALID_ADDRESS
TA1 - rtems_clock_get_seconds_since_epoch - RTEMS_NOT_DEFINED
TA1 - rtems_clock_get_uptime - RTEMS_INVALID_ADDRESS
TA1 - rtems_clock_get_uptime_timeval
TA1 - rtems_clock_get_uptime_seconds
TA1 - rtems_clock_get_uptime_nanoseconds
TA1 - rtems_clock_get_tod_timeval - RTEMS_INVALID_ADDRESS
TA1 - rtems_clock_get_tod_timeval - RTEMS_NOT_DEFINED
TA1 - rtems_clock_set_nanoseconds_extension - RTEMS_INVALID_ADDRESS
TA1 - rtems_clock_set - RTEMS_INVALID_ADDRESS
TA1 - rtems_clock_set - 08:30:45 02/05/1987 - RTEMS_INVALID_CLOCK
TA1 - rtems_clock_set - 08:30:45 15/05/1988 - RTEMS_INVALID_CLOCK
TA1 - rtems_clock_set - 08:30:45 02/32/1988 - RTEMS_INVALID_CLOCK
TA1 - rtems_clock_set - 25:30:45 02/05/1988 - RTEMS_INVALID_CLOCK
TA1 - rtems_clock_set - 08:61:45 02/05/1988 - RTEMS_INVALID_CLOCK
TA1 - rtems_clock_set - 08:30:61 02/05/1988 - RTEMS_INVALID_CLOCK
TA1 - rtems_clock_set - 08:30:45 02/05/1988 - RTEMS_INVALID_CLOCK
TA1 - rtems_clock_set - 08:30:45 02/05/1988 - RTEMS_SUCCESSFUL
TA1 - current time - 08:30:45 02/05/1988
*** END TEST CLOCK ERROR 01 ***

View File

@@ -9,7 +9,7 @@
*
* 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.
* http://www.rtems.com/license/LICENSE.
*/
#include <tmacros.h>
@@ -25,44 +25,12 @@ rtems_timer_service_routine Delayed_routine(
void *ignored_address
);
rtems_task Task_1(
rtems_task_argument argument
);
rtems_task Task_2(
rtems_task_argument argument
);
rtems_task Task_3(
rtems_task_argument argument
);
rtems_isr Service_routine(
rtems_vector_number ignored
);
rtems_timer_service_routine Io_during_interrupt(
rtems_id ignored
);
void Screen1( void );
void Screen2( void );
void Screen3( void );
void Screen4( void );
void Screen5( void );
void Screen6( void );
/* configuration information */
#define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
#define CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
#define CONFIGURE_MAXIMUM_TASKS 9
#define CONFIGURE_MAXIMUM_TASKS 10
#define CONFIGURE_MAXIMUM_TIMERS 1
#define CONFIGURE_MAXIMUM_SEMAPHORES 2
#define CONFIGURE_MAXIMUM_MESSAGE_QUEUES 1

View File

@@ -0,0 +1,22 @@
rtems_tests_PROGRAMS = sptask_err02
sptask_err02_SOURCES = init.c system.h
dist_rtems_tests_DATA = sptask_err02.scn
dist_rtems_tests_DATA += sptask_err02.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 = $(sptask_err02_OBJECTS)
LINK_LIBS = $(sptask_err02_LDLIBS)
sptask_err02$(EXEEXT): $(sptask_err02_OBJECTS) $(sptask_err02_DEPENDENCIES)
@rm -f sptask_err02$(EXEEXT)
$(make-exe)
include $(top_srcdir)/../automake/local.am

View File

@@ -0,0 +1,119 @@
/*
* COPYRIGHT (c) 2014.
* 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.
*/
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#define CONFIGURE_INIT
#include "system.h"
const char rtems_test_name[] = "SP TASK ERROR 02";
rtems_task Init(
rtems_task_argument argument
)
{
rtems_time_of_day time;
rtems_status_code status;
TEST_BEGIN();
/* wake when NULL param */
status = rtems_task_wake_when( NULL );
fatal_directive_status(
status,
RTEMS_NOT_DEFINED,
"rtems_task_wake_when NULL param"
);
puts( "TA1 - rtems_task_wake_when - RTEMS_INVALID_ADDRESS" );
/* wake when before set */
status = rtems_task_wake_when( &time );
if ( status == RTEMS_SUCCESSFUL ) {
puts(
"TA1 - rtems_task_wake_when - RTEMS_NOT_DEFINED -- "
"DID BSP SET THE TIME OF DAY?"
);
} else {
fatal_directive_status(
status,
RTEMS_NOT_DEFINED,
"rtems_task_wake_when before clock is set"
);
puts( "TA1 - rtems_task_wake_when - RTEMS_NOT_DEFINED" );
}
/* rtems_task_wake_when */
build_time( &time, 2, 5, 1988, 8, 30, 45, 0 );
print_time( "TA1 - rtems_clock_set - ", &time, "" );
status = rtems_clock_set( &time );
directive_failed( status, "rtems_clock_set successful" );
puts( " - RTEMS_SUCCESSFUL" );
build_time(
&time,
2, 5, 1988, 8, 30, 48,
rtems_clock_get_ticks_per_second() + 1
);
time.second += 3;
puts( "TA1 - rtems_task_wake_when - TICKINVALID - sleep about 3 seconds" );
/* NULL time */
status = rtems_task_wake_when( NULL );
fatal_directive_status(
status,
RTEMS_INVALID_ADDRESS,
"rtems_task_wake_when with NULL"
);
puts( "TA1 - rtems_task_wake_when - RTEMS_INVALID_ADDRESS" );
/* invalid ticks */
status = rtems_task_wake_when( &time );
directive_failed(
status,
"rtems_task_wake_when with invalid ticks per second"
);
puts( "TA1 - rtems_task_wake_when - TICKINVALID - woke up RTEMS_SUCCESSFUL" );
build_time( &time, 2, 5, 1961, 8, 30, 48, 0 );
print_time( "TA1 - rtems_task_wake_when - ", &time, "" );
status = rtems_task_wake_when( &time );
fatal_directive_status(
status,
RTEMS_INVALID_CLOCK,
"rtems_task_wake_when with invalid year"
);
puts( " - RTEMS_INVALID_CLOCK" );
build_time( &time, 2, 5, 1988, 25, 30, 48, 0 );
print_time( "TA1 - rtems_task_wake_when - ", &time, "" );
status = rtems_task_wake_when( &time );
fatal_directive_status(
status,
RTEMS_INVALID_CLOCK,
"rtems_task_wake_when with invalid hour"
);
puts( " - RTEMS_INVALID_CLOCK" );
rtems_clock_get_tod( &time );
print_time( "TA1 - current time - ", &time, "\n" );
time.month = 1;
print_time( "TA1 - rtems_task_wake_when - ", &time, "" );
status = rtems_task_wake_when( &time );
fatal_directive_status(
status,
RTEMS_INVALID_CLOCK,
"rtems_task_wake_when before current time"
);
puts( " - RTEMS_INVALID_CLOCK" );
TEST_END();
}

View File

@@ -0,0 +1,25 @@
# COPYRIGHT (c) 1989-2014.
# 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: sptask_err02
directives:
t_wkwhen, c_set, c_getticksps, c_gettod
concepts:
a. Verifies all error codes returned by the executive in single
processor configurations.
b. Verifies error conditions in the following kernel routines or macros:
_Ck_date_time, _Expired, _Q_submit, _Get_mnodes, _Get_node,
_Free_mem, _Get_mem, _Valid_block, _Set_tcb, _Set_resource,
_In_range, _On_boundary

View File

@@ -0,0 +1,12 @@
*** TEST TASK ERROR 02 ***
TA1 - rtems_task_wake_when - RTEMS_INVALID_ADDRESS
TA1 - rtems_task_wake_when - RTEMS_NOT_DEFINED
TA1 - rtems_clock_set - 08:30:45 02/05/1988 - RTEMS_SUCCESSFUL
TA1 - rtems_task_wake_when - TICKINVALID - sleep about 3 seconds
TA1 - rtems_task_wake_when - RTEMS_INVALID_ADDRESS
TA1 - rtems_task_wake_when - TICKINVALID - woke up RTEMS_SUCCESSFUL
TA1 - rtems_task_wake_when - 08:30:48 02/05/1961 - RTEMS_INVALID_CLOCK
TA1 - rtems_task_wake_when - 25:30:48 02/05/1988 - RTEMS_INVALID_CLOCK
TA1 - current time - 08:30:51 02/05/1988
TA1 - rtems_task_wake_when - 08:30:51 01/05/1988 - RTEMS_INVALID_CLOCK
*** END TEST TASK ERROR 02 ***

View File

@@ -0,0 +1,37 @@
/*
* This include file contains information that is included in every
* function in the test set.
*/
/*
* COPYRIGHT (c) 1989-2014.
* 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.
*/
#include <tmacros.h>
/* functions */
rtems_task Init(
rtems_task_argument argument
);
/* configuration information */
#define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
#define CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
#define CONFIGURE_MAXIMUM_TASKS 1
#define CONFIGURE_TICKS_PER_TIMESLICE 100
#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
#include <rtems/confdefs.h>
/* global variables */
/* end of include file */

View File

@@ -0,0 +1,22 @@
rtems_tests_PROGRAMS = sptask_err04
sptask_err04_SOURCES = init.c task1.c system.h
dist_rtems_tests_DATA = sptask_err04.scn
dist_rtems_tests_DATA += sptask_err04.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 = $(sptask_err04_OBJECTS)
LINK_LIBS = $(sptask_err04_LDLIBS)
sptask_err04$(EXEEXT): $(sptask_err04_OBJECTS) $(sptask_err04_DEPENDENCIES)
@rm -f sptask_err04$(EXEEXT)
$(make-exe)
include $(top_srcdir)/../automake/local.am

View File

@@ -1,10 +1,10 @@
/*
* COPYRIGHT (c) 1989-2014.
* COPYRIGHT (c) 2014.
* 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.org/license/LICENSE.
* http://www.rtems.com/license/LICENSE.
*/
#ifdef HAVE_CONFIG_H
@@ -14,37 +14,19 @@
#define CONFIGURE_INIT
#include "system.h"
const char rtems_test_name[] = "SP 9";
#include <rtems/rtems/tasksimpl.h>
const char rtems_test_name[] = "TASK ERROR 04";
rtems_task Init(
rtems_task_argument argument
)
{
rtems_status_code status;
rtems_status_code status;
TEST_BEGIN();
Task_name[ 1 ] = rtems_build_name( 'T', 'A', '1', ' ' );
Task_name[ 2 ] = rtems_build_name( 'T', 'A', '2', ' ' );
Task_name[ 3 ] = rtems_build_name( 'T', 'A', '3', ' ' );
Task_name[ 4 ] = rtems_build_name( 'T', 'A', '4', ' ' );
Task_name[ 5 ] = rtems_build_name( 'T', 'A', '5', ' ' );
Task_name[ 6 ] = rtems_build_name( 'T', 'A', '6', ' ' );
Task_name[ 7 ] = rtems_build_name( 'T', 'A', '7', ' ' );
Task_name[ 8 ] = rtems_build_name( 'T', 'A', '8', ' ' );
Task_name[ 9 ] = rtems_build_name( 'T', 'A', '9', ' ' );
Task_name[ 10 ] = rtems_build_name( 'T', 'A', 'A', ' ' );
Semaphore_name[ 1 ] = rtems_build_name( 'S', 'M', '1', ' ' );
Semaphore_name[ 2 ] = rtems_build_name( 'S', 'M', '2', ' ' );
Semaphore_name[ 3 ] = rtems_build_name( 'S', 'M', '3', ' ' );
Queue_name[ 1 ] = rtems_build_name( 'M', 'Q', '1', ' ' );
Queue_name[ 2 ] = rtems_build_name( 'M', 'Q', '2', ' ' );
Port_name[ 1 ] = rtems_build_name( 'D', 'P', '1', ' ' );
Period_name[ 1 ] = rtems_build_name( 'T', 'M', '1', ' ' );
/* priority of 0 error */
status = rtems_task_create(
@@ -102,5 +84,5 @@ rtems_task Init(
directive_failed( status, "rtems_task_start of TA1" );
status = rtems_task_delete( RTEMS_SELF );
directive_failed( status, "rtems_task_delete of RTEMS_SELF" );
directive_failed( status, "rtems_task_delete of RTEMS_SELF" );
}

View File

@@ -0,0 +1,27 @@
# COPYRIGHT (c) 1989-2014.
# 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: sptask_err04
directives:
t_delete, t_getnote, t_ident, t_restart, t_resume, t_setpriority,
t_mode, t_start, t_suspend,
concepts:
a. Verifies all error codes returned by the executive in single
processor configurations.
b. Verifies error conditions in the following kernel routines or macros:
_Ck_date_time, _Expired, _Q_submit, _Get_mnodes, _Get_node,
_Free_mem, _Get_mem, _Valid_block, _Set_tcb, _Set_resource,
_In_range, _On_boundary

View File

@@ -0,0 +1,24 @@
*** TEST TASK ERROR 04 ***
TA1 - rtems_task_is_suspended - RTEMS_INVALID_ID
TA1 - rtems_task_delete - RTEMS_INVALID_ID
TA1 - rtems_task_get_note - RTEMS_INVALID_ADDRESS
TA1 - rtems_task_get_note - RTEMS_INVALID_NUMBER
TA1 - rtems_task_get_note - RTEMS_INVALID_ID
TA1 - rtems_task_get_note - RTEMS_INVALID_ID
TA1 - rtems_task_ident - RTEMS_INVALID_ADDRESS
TA1 - rtems_task_ident - global RTEMS_INVALID_NAME
TA1 - rtems_task_ident - local RTEMS_INVALID_NAME
TA1 - rtems_task_ident - RTEMS_INVALID_NODE
TA1 - rtems_task_restart - RTEMS_INVALID_ID
TA1 - rtems_task_resume - RTEMS_INVALID_ID
TA1 - rtems_task_resume - RTEMS_INCORRECT_STATE
TA1 - rtems_task_set_priority - RTEMS_INVALID_ADDRESS
TA1 - rtems_task_set_priority - RTEMS_INVALID_PRIORITY
TA1 - rtems_task_set_priority - RTEMS_INVALID_ID
TA1 - rtems_task_set_note - RTEMS_INVALID_NUMBER
TA1 - rtems_task_set_note - RTEMS_INVALID_ID
TA1 - rtems_task_start - RTEMS_INVALID_ID
TA1 - rtems_task_start - RTEMS_INCORRECT_STATE
TA1 - rtems_task_suspend - RTEMS_INVALID_ID
TA1 - rtems_task_mode - RTEMS_INVALID_ADDRESS
*** END TEST TASK DELETE ERROR 04 ***

View File

@@ -0,0 +1,45 @@
/*
* This include file contains information that is included in every
* function in the test set.
*/
/*
* COPYRIGHT (c) 1989-2014.
* 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.
*/
#include <tmacros.h>
/* functions */
rtems_task Init(
rtems_task_argument argument
);
rtems_task Task_1(
rtems_task_argument argument
);
/* configuration information */
#define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
#define CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
#define CONFIGURE_MAXIMUM_TASKS 3
#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
#include <rtems/confdefs.h>
/* global variables */
TEST_EXTERN rtems_id Task_id[ 2 ]; /* array of task ids */
TEST_EXTERN rtems_name Task_name[ 2 ]; /* array of task names */
TEST_EXTERN rtems_id Junk_id; /* id used to return errors */
/* end of include file */

View File

@@ -1,8 +1,13 @@
/* Screen1
/* Task_1
*
* This routine generates error screen 1 for test 9.
* This task generates all possible errors for the RTEMS executive.
*
* COPYRIGHT (c) 1989-2009.
* 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
@@ -15,10 +20,12 @@
#endif
#include "system.h"
#include <rtems/rtems/tasksimpl.h>
void Screen1()
rtems_task Task_1(
rtems_task_argument argument
)
{
uint32_t notepad_value;
rtems_id self_id;
@@ -263,4 +270,8 @@ void Screen1()
"rtems_task_mode with NULL param"
);
puts( "TA1 - rtems_task_mode - RTEMS_INVALID_ADDRESS" );
TEST_END();
rtems_test_exit( 0 );
}

View File

@@ -38,6 +38,21 @@ rtems_task Init(
timer_name = rtems_build_name( 'T', 'M', '1', ' ' );
/* before time set */
status = rtems_timer_fire_when( 0, &time, Delayed_routine, NULL );
if ( status == RTEMS_SUCCESSFUL ) {
puts(
"TA1 - timer_wake_when - RTEMS_NOT_DEFINED -- DID BSP SET THE TIME OF DAY?"
);
} else {
fatal_directive_status(
status,
RTEMS_NOT_DEFINED,
"task_fire_when before clock is set"
);
puts( "TA1 - rtems_timer_fire_when - RTEMS_NOT_DEFINED" );
}
/* Set System time */
build_time( &time, 12, 31, 1992, 9, 0, 0, 0 );
status = rtems_clock_set( &time );

View File

@@ -1,4 +1,5 @@
*** TEST SPTIMER_ERR01 ***
TA1 - rtems_timer_fire_when - RTEMS_NOT_DEFINED
TA1 - rtems_timer_create - RTEMS_INVALID_ADDRESS
TA1 - rtems_timer_create - RTEMS_INVALID_NAME
TA1 - rtems_timer_create - 1 - RTEMS_SUCCESSFUL
@@ -20,4 +21,3 @@ TA1 - rtems_timer_fire_when - 08:30:45 02/05/1990 - before RTEMS_INVALID_CLOCK
TA1 - rtems_timer_get_information - RTEMS_INVALID_ADDRESS
TA1 - rtems_timer_get_information - RTEMS_INVALID_ID
*** END OF TEST SPTIMER_ERR01 ***