mirror of
https://gitlab.rtems.org/rtems/rtos/rtems.git
synced 2026-09-24 04:16:05 +08:00
2007-12-17 Joel Sherrill <joel.sherrill@OARcorp.com>
* Makefile.am, configure.ac: Rename psxtimer to psxtimer01 to indicate addition of second POSIX Timer test. Add initial version of psxtimer02 to cover some conditions missed in psxtimer01. More cases left to add. * psxtimer01/.cvsignore, psxtimer01/Makefile.am, psxtimer01/psxtimer.c, psxtimer01/psxtimer01.scn, psxtimer01/system.h, psxtimer02/.cvsignore, psxtimer02/Makefile.am, psxtimer02/psxtimer.c, psxtimer02/psxtimer02.scn, psxtimer02/system.h: New files. * psxtimer/.cvsignore, psxtimer/Makefile.am, psxtimer/psxtimer.c, psxtimer/psxtimer.scn, psxtimer/system.h: Removed.
This commit is contained in:
@@ -1,3 +1,16 @@
|
||||
2007-12-17 Joel Sherrill <joel.sherrill@OARcorp.com>
|
||||
|
||||
* Makefile.am, configure.ac: Rename psxtimer to psxtimer01 to indicate
|
||||
addition of second POSIX Timer test. Add initial version of
|
||||
psxtimer02 to cover some conditions missed in psxtimer01. More cases
|
||||
left to add.
|
||||
* psxtimer01/.cvsignore, psxtimer01/Makefile.am, psxtimer01/psxtimer.c,
|
||||
psxtimer01/psxtimer01.scn, psxtimer01/system.h,
|
||||
psxtimer02/.cvsignore, psxtimer02/Makefile.am, psxtimer02/psxtimer.c,
|
||||
psxtimer02/psxtimer02.scn, psxtimer02/system.h: New files.
|
||||
* psxtimer/.cvsignore, psxtimer/Makefile.am, psxtimer/psxtimer.c,
|
||||
psxtimer/psxtimer.scn, psxtimer/system.h: Removed.
|
||||
|
||||
2007-12-13 Joel Sherrill <joel.sherrill@OARcorp.com>
|
||||
|
||||
* psx01/init.c, psx01/psx01.scn: Add usleep() test.
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
ACLOCAL_AMFLAGS = -I ../aclocal
|
||||
|
||||
SUBDIRS = psxhdrs psx01 psx02 psx03 psx04 psx05 psx06 psx07 psx08 psx09 \
|
||||
psx10 psx11 psx12 psxtime psxtimer psxcancel psxbarrier01 psxmsgq01 \
|
||||
psxrwlock01 psxsem01 psxspin01 psxenosys
|
||||
psx10 psx11 psx12 psxtime psxtimer01 psxtimer02 psxcancel psxbarrier01 \
|
||||
psxmsgq01 psxrwlock01 psxsem01 psxspin01 psxenosys
|
||||
|
||||
## File IO tests
|
||||
SUBDIRS += psxfile01 psxreaddir psxstat psxmount psx13 psxchroot01
|
||||
|
||||
@@ -55,6 +55,7 @@ psxsem01/Makefile
|
||||
psxspin01/Makefile
|
||||
psxstat/Makefile
|
||||
psxtime/Makefile
|
||||
psxtimer/Makefile
|
||||
psxtimer01/Makefile
|
||||
psxtimer02/Makefile
|
||||
])
|
||||
AC_OUTPUT
|
||||
|
||||
@@ -1,28 +0,0 @@
|
||||
##
|
||||
## $Id$
|
||||
##
|
||||
|
||||
MANAGERS = all
|
||||
|
||||
rtems_tests_PROGRAMS = psxtimer.exe
|
||||
psxtimer_exe_SOURCES = psxtimer.c system.h ../include/pmacros.h
|
||||
|
||||
dist_rtems_tests_DATA = psxtimer.scn
|
||||
|
||||
include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
|
||||
include $(top_srcdir)/../automake/compile.am
|
||||
include $(top_srcdir)/../automake/leaf.am
|
||||
|
||||
psxtimer_exe_LDADD = $(MANAGERS_NOT_WANTED:%=$(PROJECT_LIB)/no-%.rel)
|
||||
|
||||
AM_CPPFLAGS += -I$(top_srcdir)/include
|
||||
AM_CPPFLAGS += -I$(top_srcdir)/../support/include
|
||||
|
||||
LINK_OBJS = $(psxtimer_exe_OBJECTS) $(psxtimer_exe_LDADD)
|
||||
LINK_LIBS = $(psxtimer_exe_LDLIBS)
|
||||
|
||||
psxtimer.exe$(EXEEXT): $(psxtimer_exe_OBJECTS) $(psxtimer_exe_DEPENDENCIES)
|
||||
@rm -f psxtimer.exe$(EXEEXT)
|
||||
$(make-exe)
|
||||
|
||||
include $(top_srcdir)/../automake/local.am
|
||||
@@ -0,0 +1,28 @@
|
||||
##
|
||||
## $Id$
|
||||
##
|
||||
|
||||
MANAGERS = all
|
||||
|
||||
rtems_tests_PROGRAMS = psxtimer01.exe
|
||||
psxtimer01_exe_SOURCES = psxtimer.c system.h ../include/pmacros.h
|
||||
|
||||
dist_rtems_tests_DATA = psxtimer01.scn
|
||||
|
||||
include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
|
||||
include $(top_srcdir)/../automake/compile.am
|
||||
include $(top_srcdir)/../automake/leaf.am
|
||||
|
||||
psxtimer01_exe_LDADD = $(MANAGERS_NOT_WANTED:%=$(PROJECT_LIB)/no-%.rel)
|
||||
|
||||
AM_CPPFLAGS += -I$(top_srcdir)/include
|
||||
AM_CPPFLAGS += -I$(top_srcdir)/../support/include
|
||||
|
||||
LINK_OBJS = $(psxtimer01_exe_OBJECTS) $(psxtimer01_exe_LDADD)
|
||||
LINK_LIBS = $(psxtimer01_exe_LDLIBS)
|
||||
|
||||
psxtimer01.exe$(EXEEXT): $(psxtimer01_exe_OBJECTS) $(psxtimer01_exe_DEPENDENCIES)
|
||||
@rm -f psxtimer01.exe$(EXEEXT)
|
||||
$(make-exe)
|
||||
|
||||
include $(top_srcdir)/../automake/local.am
|
||||
@@ -231,7 +231,7 @@ void *POSIX_Init (
|
||||
struct sched_param sch_param; /* schedule parameters */
|
||||
struct periodic_params params_a, params_b, params_c;
|
||||
|
||||
puts( "\n\n*** POSIX Timers Test ***" );
|
||||
puts( "\n\n*** POSIX Timers Test 01 ***" );
|
||||
|
||||
data.updated = FALSE;
|
||||
data.x = 0;
|
||||
@@ -334,6 +334,6 @@ void *POSIX_Init (
|
||||
|
||||
/* execute 20 seconds and finish */
|
||||
sleep (20);
|
||||
puts( "\n\n*** END OF POSIX Timers Test ***" );
|
||||
puts( "*** END OF POSIX Timers Test 01 ***" );
|
||||
rtems_test_exit (0);
|
||||
}
|
||||
+2
-2
@@ -1,4 +1,4 @@
|
||||
*** POSIX Timers Test ***
|
||||
*** POSIX Timers Test 01 ***
|
||||
Executing task A Fri Jan 1 00:00:01 1988
|
||||
Executing task B with x = 1 Fri Jan 1 00:00:02 1988
|
||||
Executing task A Fri Jan 1 00:00:02 1988
|
||||
@@ -34,4 +34,4 @@ Executing task C with x = 9 Fri Jan 1 00:00:18 1988
|
||||
Executing task A Fri Jan 1 00:00:18 1988
|
||||
Executing task A Fri Jan 1 00:00:19 1988
|
||||
Executing task B with x = 10 Fri Jan 1 00:00:20 1988
|
||||
*** END OF POSIX Timers Test ***
|
||||
*** END OF POSIX Timers Test 01 ***
|
||||
@@ -7,7 +7,7 @@
|
||||
* found in the file LICENSE in this distribution or at
|
||||
* http://www.rtems.com/license/LICENSE.
|
||||
*
|
||||
* system.h,v 1.9 1996/08/09 18:48:33 joel Exp
|
||||
* $Id}
|
||||
*/
|
||||
|
||||
/* functions */
|
||||
@@ -0,0 +1,2 @@
|
||||
Makefile
|
||||
Makefile.in
|
||||
@@ -0,0 +1,28 @@
|
||||
##
|
||||
## $Id$
|
||||
##
|
||||
|
||||
MANAGERS = all
|
||||
|
||||
rtems_tests_PROGRAMS = psxtimer02.exe
|
||||
psxtimer02_exe_SOURCES = psxtimer.c system.h ../include/pmacros.h
|
||||
|
||||
dist_rtems_tests_DATA = psxtimer02.scn
|
||||
|
||||
include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
|
||||
include $(top_srcdir)/../automake/compile.am
|
||||
include $(top_srcdir)/../automake/leaf.am
|
||||
|
||||
psxtimer02_exe_LDADD = $(MANAGERS_NOT_WANTED:%=$(PROJECT_LIB)/no-%.rel)
|
||||
|
||||
AM_CPPFLAGS += -I$(top_srcdir)/include
|
||||
AM_CPPFLAGS += -I$(top_srcdir)/../support/include
|
||||
|
||||
LINK_OBJS = $(psxtimer02_exe_OBJECTS) $(psxtimer02_exe_LDADD)
|
||||
LINK_LIBS = $(psxtimer02_exe_LDLIBS)
|
||||
|
||||
psxtimer02.exe$(EXEEXT): $(psxtimer02_exe_OBJECTS) $(psxtimer02_exe_DEPENDENCIES)
|
||||
@rm -f psxtimer02.exe$(EXEEXT)
|
||||
$(make-exe)
|
||||
|
||||
include $(top_srcdir)/../automake/local.am
|
||||
@@ -0,0 +1,110 @@
|
||||
/*
|
||||
*
|
||||
* This is a simple real-time applications which contains 3 periodic tasks.
|
||||
*
|
||||
* Task A is an independent task.
|
||||
*
|
||||
* Task B and C share a data.
|
||||
*
|
||||
* Tasks are implemented as POSIX threads.
|
||||
*
|
||||
* The share data is protected with a POSIX mutex.
|
||||
*
|
||||
* Other POSIX facilities such as timers, condition, .. is also used
|
||||
*
|
||||
* 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 CONFIGURE_INIT
|
||||
#include "system.h"
|
||||
#include "tmacros.h"
|
||||
#include <signal.h> /* signal facilities */
|
||||
#include <unistd.h> /* sleep facilities */
|
||||
#include <time.h> /* time facilities */
|
||||
#include <stdio.h> /* console facilities */
|
||||
|
||||
void *POSIX_Init (
|
||||
void *argument
|
||||
)
|
||||
|
||||
{
|
||||
struct sigevent event;
|
||||
int status;
|
||||
timer_t timer;
|
||||
timer_t timer1;
|
||||
struct itimerspec itimer;
|
||||
|
||||
/*
|
||||
* If these are not filled in correctly, we don't pass its error checking.
|
||||
*/
|
||||
event.sigev_notify = SIGEV_SIGNAL;
|
||||
event.sigev_signo = SIGUSR1;
|
||||
|
||||
puts( "\n\n*** POSIX Timers Test 02 ***" );
|
||||
|
||||
puts( "timer_create - bad clock id - EINVAL" );
|
||||
status = timer_create( -1, &event, &timer );
|
||||
fatal_posix_service_status_errno( status, EINVAL, "bad clock id" );
|
||||
|
||||
puts( "timer_create - bad timer id pointer - EINVAL" );
|
||||
status = timer_create( CLOCK_REALTIME, &event, NULL );
|
||||
fatal_posix_service_status_errno( status, EINVAL, "bad timer id" );
|
||||
|
||||
puts( "timer_create - OK" );
|
||||
status = timer_create( CLOCK_REALTIME, NULL, &timer );
|
||||
posix_service_failed( status, "timer_create OK" );
|
||||
|
||||
puts( "timer_create - too many - EAGAIN" );
|
||||
status = timer_create( CLOCK_REALTIME, NULL, &timer1 );
|
||||
fatal_posix_service_status_errno( status, EAGAIN, "too many" );
|
||||
|
||||
puts( "timer_delete - bad id - EINVAL" );
|
||||
status = timer_delete( timer1 + 1 );
|
||||
fatal_posix_service_status_errno( status, EINVAL, "bad id" );
|
||||
|
||||
puts( "timer_getoverrun - bad id - EINVAL" );
|
||||
status = timer_getoverrun( timer1 + 1 );
|
||||
fatal_posix_service_status_errno( status, EINVAL, "bad id" );
|
||||
|
||||
puts( "timer_gettime - bad itimer - EINVAL" );
|
||||
status = timer_gettime( timer1, NULL );
|
||||
fatal_posix_service_status_errno( status, EINVAL, "bad id" );
|
||||
|
||||
puts( "timer_gettime - bad id - EINVAL" );
|
||||
status = timer_gettime( timer1 + 1, &itimer );
|
||||
fatal_posix_service_status_errno( status, EINVAL, "bad id" );
|
||||
|
||||
puts( "timer_settime - bad itimer pointer - EINVAL" );
|
||||
status = timer_settime( timer, TIMER_ABSTIME, &itimer, NULL );
|
||||
fatal_posix_service_status_errno( status, EINVAL, "bad itimer pointer" );
|
||||
|
||||
itimer.it_value.tv_nsec = 2000000000;
|
||||
puts( "timer_settime - bad itimer value - too many nanosecond - EINVAL" );
|
||||
status = timer_settime( timer, TIMER_ABSTIME, &itimer, NULL );
|
||||
fatal_posix_service_status_errno( status, EINVAL, "bad itimer value #1" );
|
||||
|
||||
itimer.it_value.tv_nsec = -1;
|
||||
puts( "timer_settime - bad itimer value - negative nanosecond - EINVAL" );
|
||||
status = timer_settime( timer, TIMER_ABSTIME, &itimer, NULL );
|
||||
fatal_posix_service_status_errno( status, EINVAL, "bad itimer value #2" );
|
||||
|
||||
itimer.it_value.tv_nsec = 0;
|
||||
puts( "timer_settime - bad clock value - EINVAL" );
|
||||
status = timer_settime( timer, 0x80, &itimer, NULL );
|
||||
fatal_posix_service_status_errno( status, EINVAL, "bad clock value" );
|
||||
|
||||
puts( "timer_delete - OK" );
|
||||
status = timer_delete( timer );
|
||||
posix_service_failed( status, "timer_delete OK" );
|
||||
|
||||
puts( "timer_delete - bad id - EINVAL" );
|
||||
status = timer_delete( timer );
|
||||
fatal_posix_service_status_errno( status, EINVAL, "bad id" );
|
||||
|
||||
puts( "*** END OF POSIX Timers Test 02 ***" );
|
||||
rtems_test_exit (0);
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
*** POSIX Timers Test 02 ***
|
||||
timer_create - bad clock id - EINVAL
|
||||
timer_create - bad timer id pointer - EINVAL
|
||||
timer_create - OK
|
||||
timer_create - too many - EAGAIN
|
||||
timer_delete - bad id - EINVAL
|
||||
timer_getoverrun - bad id - EINVAL
|
||||
timer_gettime - bad itimer - EINVAL
|
||||
timer_gettime - bad id - EINVAL
|
||||
timer_settime - bad itimer pointer - EINVAL
|
||||
timer_settime - bad itimer value - too many nanosecond - EINVAL
|
||||
timer_settime - bad itimer value - negative nanosecond - EINVAL
|
||||
timer_settime - bad clock value - EINVAL
|
||||
timer_delete - OK
|
||||
timer_delete - bad id - EINVAL
|
||||
*** END OF POSIX Timers Test 02 ***
|
||||
@@ -0,0 +1,37 @@
|
||||
/* system.h
|
||||
*
|
||||
* This include file contains information that is included in every
|
||||
* function in the test set.
|
||||
*
|
||||
* 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$
|
||||
*/
|
||||
|
||||
/* functions */
|
||||
|
||||
#include <pmacros.h>
|
||||
#include <unistd.h>
|
||||
#include <errno.h>
|
||||
#include <sched.h>
|
||||
|
||||
void *POSIX_Init (
|
||||
void *arg
|
||||
);
|
||||
|
||||
/* configuration information */
|
||||
|
||||
#define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
|
||||
#define CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
|
||||
|
||||
#define CONFIGURE_POSIX_INIT_THREAD_TABLE
|
||||
|
||||
#define CONFIGURE_MAXIMUM_POSIX_THREADS 1
|
||||
#define CONFIGURE_MAXIMUM_POSIX_TIMERS 1
|
||||
|
||||
|
||||
#include <rtems/confdefs.h>
|
||||
|
||||
/* end of include file */
|
||||
Reference in New Issue
Block a user