2010-07-05 Joel Sherrill <joel.sherrill@oarcorp.com>

* Makefile.am, configure.ac: Add test for various forms of times() and
	getrusage().
	* psxgetrusage01/.cvsignore, psxgetrusage01/Makefile.am,
	psxgetrusage01/init.c, psxgetrusage01/psxgetrusage01.doc,
	psxgetrusage01/psxgetrusage01.scn, psxtimes01/.cvsignore,
	psxtimes01/Makefile.am, psxtimes01/init.c, psxtimes01/psxtimes01.doc,
	psxtimes01/psxtimes01.scn: New files.
This commit is contained in:
Joel Sherrill
2010-07-06 01:01:42 +00:00
parent 8eb24e7f3e
commit 85c8e754f1
13 changed files with 292 additions and 2 deletions

View File

@@ -1,3 +1,13 @@
2010-07-05 Joel Sherrill <joel.sherrill@oarcorp.com>
* Makefile.am, configure.ac: Add test for various forms of times() and
getrusage().
* psxgetrusage01/.cvsignore, psxgetrusage01/Makefile.am,
psxgetrusage01/init.c, psxgetrusage01/psxgetrusage01.doc,
psxgetrusage01/psxgetrusage01.scn, psxtimes01/.cvsignore,
psxtimes01/Makefile.am, psxtimes01/init.c, psxtimes01/psxtimes01.doc,
psxtimes01/psxtimes01.scn: New files.
2010-07-05 Joel Sherrill <joel.sherrill@oarcorp.com>
* psxid01/init.c, psxid01/psxid01.scn: Actually match an entry in

View File

@@ -19,8 +19,9 @@ SUBDIRS += psxhdrs psx01 psx02 psx03 psx04 psx05 psx06 psx07 psx08 psx09 \
endif
## File IO tests
SUBDIRS += psxfile01 psxfile02 psxfilelock01 psxid01 psximfs01 psxreaddir \
psxstat psxmount psx13 psxchroot01 psxpasswd01 psxpasswd02
SUBDIRS += psxfile01 psxfile02 psxfilelock01 psxgetrusage01 psxid01 \
psximfs01 psxreaddir psxstat psxmount psx13 psxchroot01 psxpasswd01 \
psxpasswd02 psxtimes01
## Until sys/uio.h is moved to libcsupport, we have to have networking
## enabled to support readv and writev. Hopefully this is a temporary

View File

@@ -89,6 +89,7 @@ psxfatal02/Makefile
psxfile01/Makefile
psxfile02/Makefile
psxfilelock01/Makefile
psxgetrusage01/Makefile
psxhdrs/Makefile
psxid01/Makefile
psximfs01/Makefile
@@ -123,6 +124,7 @@ psxsysconf/Makefile
psxtime/Makefile
psxtimer01/Makefile
psxtimer02/Makefile
psxtimes01/Makefile
psxualarm/Makefile
psxusleep/Makefile
])

View File

@@ -0,0 +1,2 @@
Makefile
Makefile.in

View File

@@ -0,0 +1,26 @@
##
## $Id$
##
MANAGERS = all
rtems_tests_PROGRAMS = psxgetrusage01
psxgetrusage01_SOURCES = init.c ../../support/src/spin.c
dist_rtems_tests_DATA = psxgetrusage01.scn
dist_rtems_tests_DATA += psxgetrusage01.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 = $(psxgetrusage01_OBJECTS) $(psxgetrusage01_LDADD)
LINK_LIBS = $(psxgetrusage01_LDLIBS)
psxgetrusage01$(EXEEXT): $(psxgetrusage01_OBJECTS) $(psxgetrusage01_DEPENDENCIES)
@rm -f psxgetrusage01$(EXEEXT)
$(make-exe)
include $(top_srcdir)/../automake/local.am

View File

@@ -0,0 +1,76 @@
/*
* COPYRIGHT (c) 1989-2010.
* 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>
#include "test_support.h"
#include <sys/time.h>
#include <sys/resource.h>
#include <errno.h>
int getrusage(int who, struct rusage *usage);
rtems_task Init(
rtems_task_argument argument
)
{
int sc;
struct rusage usage;
puts( "\n\n*** TEST GETRUSAGE 01 ***" );
puts( "getrusage( RUSAGE_SELF, NULL ) -- EFAULT" );
sc = getrusage( RUSAGE_SELF, NULL );
rtems_test_assert( sc == -1 );
rtems_test_assert( errno == EFAULT );
puts( "getrusage( RUSAGE_CHILDREN, &usage ) -- ENOSYS" );
sc = getrusage( RUSAGE_CHILDREN, &usage );
rtems_test_assert( sc == -1 );
rtems_test_assert( errno == ENOSYS );
puts( "getrusage( 77, &usage ) -- EINVAL" );
sc = getrusage( 77, &usage );
rtems_test_assert( sc == -1 );
rtems_test_assert( errno == EINVAL );
puts( "Consume CPU long enough to have non-zero usage" );
rtems_test_spin_for_ticks( 5 );
puts( "getrusage( RUSAGE_SELF, &usage ) -- EINVAL" );
sc = getrusage( RUSAGE_SELF, &usage );
rtems_test_assert( sc == 0 );
/* CPU usage is non-zero */
rtems_test_assert( usage.ru_utime.tv_sec == 0 );
rtems_test_assert( usage.ru_utime.tv_usec != 0 );
/* System and user time is the same */
rtems_test_assert( usage.ru_utime.tv_sec == usage.ru_stime.tv_sec );
rtems_test_assert( usage.ru_utime.tv_usec == usage.ru_stime.tv_usec );
puts( "*** END OF TEST GETRUSAGE 01 ***" );
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_RTEMS_INIT_TASKS_TABLE
#define CONFIGURE_INIT
#include <rtems/confdefs.h>
/* end of file */

View File

@@ -0,0 +1,22 @@
#
# $Id$
#
# COPYRIGHT (c) 1989-2010.
# 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: psxgetrusage01
directives:
getrusage
concepts:
+ fully exercise getrusage()

View File

@@ -0,0 +1,7 @@
*** TEST GETRUSAGE 01 ***
getrusage( RUSAGE_SELF, NULL ) -- EFAULT
getrusage( RUSAGE_CHILDREN, &usage ) -- ENOSYS
getrusage( 77, &usage ) -- EINVAL
Consume CPU long enough to have non-zero usage
getrusage( RUSAGE_SELF, &usage ) -- EINVAL
*** END OF TEST GETRUSAGE 01 ***

View File

@@ -0,0 +1,2 @@
Makefile
Makefile.in

View File

@@ -0,0 +1,24 @@
##
## $Id$
##
rtems_tests_PROGRAMS = psxtimes01
psxtimes01_SOURCES = init.c ../../support/src/spin.c
dist_rtems_tests_DATA = psxtimes01.scn
dist_rtems_tests_DATA += psxtimes01.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 = $(psxtimes01_OBJECTS) $(psxtimes01_LDADD)
LINK_LIBS = $(psxtimes01_LDLIBS)
psxtimes01$(EXEEXT): $(psxtimes01_OBJECTS) $(psxtimes01_DEPENDENCIES)
@rm -f psxtimes01$(EXEEXT)
$(make-exe)
include $(top_srcdir)/../automake/local.am

View File

@@ -0,0 +1,87 @@
/*
* COPYRIGHT (c) 1989-2010.
* 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>
#include "test_support.h"
#include <sys/times.h>
#include <errno.h>
clock_t _times_r(
struct _reent *ptr,
struct tms *ptms
);
clock_t _times(
struct tms *ptms
);
rtems_task Init(
rtems_task_argument argument
)
{
clock_t start;
clock_t now;
clock_t sc;
clock_t difference;
struct tms start_tm;
struct tms end_tm;
puts( "\n\n*** TEST TIMES 01 ***" );
puts( "times( NULL ) -- EFAULT" );
sc = times( NULL );
rtems_test_assert( sc == -1 );
rtems_test_assert( errno == EFAULT );
puts( "_times_r( NULL, NULL ) -- EFAULT" );
start = _times_r( NULL, NULL );
rtems_test_assert( sc == -1 );
rtems_test_assert( errno == EFAULT );
while ( rtems_clock_get_ticks_since_boot() == 0 )
;
puts( "_times( &start_tm ) -- OK" );
now = _times( &start_tm );
rtems_test_assert( start != 0 );
rtems_test_spin_for_ticks(5);
puts( "_times( &end_tm ) -- OK" );
end = _times( &end_tm );
rtems_test_assert( end != 0 );
puts( "Check various values" );
difference = end - start;
rtems_test_assert( difference >= 5 );
rtems_test_assert( end_tm.tms_utime >= start_tm.tms_utime );
rtems_test_assert( end_tm.tms_stime >= start_tm.tms_stime );
rtems_test_assert( end_tm.tms_cutime == 0 );
rtems_test_assert( end_tm.tms_cstime == 0 );
puts( "*** END OF TEST TIMES 01 ***" );
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_RTEMS_INIT_TASKS_TABLE
#define CONFIGURE_INIT
#include <rtems/confdefs.h>
/* end of file */

View File

@@ -0,0 +1,24 @@
#
# $Id$
#
# COPYRIGHT (c) 1989-2010.
# 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: psxtimes01
directives:
times
_times
_times_r
concepts:
+ exercise the above routines

View File

@@ -0,0 +1,7 @@
*** TEST TIMES 01 ***
times( NULL ) -- EFAULT
_times_r( NULL, NULL ) -- EFAULT
_times( &start_tm ) -- OK
_times( &end_tm ) -- OK
Check various values
*** END OF TEST TIMES 01 ***