2009-09-13 Joel Sherrill <joel.sherrill@oarcorp.com>

* psxclock/init.c, psxclock/psxclock.scn, psxenosys/init.c,
	psxenosys/psxenosys.scn, psxsignal03/Makefile.am, psxsignal03/init.c,
	psxsignal04/Makefile.am: Move test cases which needed to be executed
	when POSIX is disabled to psxclock so they will be.
This commit is contained in:
Joel Sherrill
2009-09-14 00:15:55 +00:00
parent e7de563acf
commit 1e2d751036
8 changed files with 119 additions and 79 deletions
+7
View File
@@ -1,3 +1,10 @@
2009-09-13 Joel Sherrill <joel.sherrill@oarcorp.com>
* psxclock/init.c, psxclock/psxclock.scn, psxenosys/init.c,
psxenosys/psxenosys.scn, psxsignal03/Makefile.am, psxsignal03/init.c,
psxsignal04/Makefile.am: Move test cases which needed to be executed
when POSIX is disabled to psxclock so they will be.
2009-09-13 Joel Sherrill <joel.sherrill@oarcorp.com>
* Makefile.am, configure.ac, psx01/init.c, psx01/psx01.scn: Add new
+75 -37
View File
@@ -13,13 +13,23 @@
#include <time.h>
#include <errno.h>
void check_enosys(int status);
void check_enosys(int status)
{
if ( (status == -1) && (errno == ENOSYS) )
return;
puts( "ERROR -- did not return ENOSYS as expected" );
rtems_test_exit(0);
}
rtems_task Init(
rtems_task_argument argument
)
{
struct timespec tv;
struct timespec tr;
int status;
int sc;
int priority;
pthread_t thread_id;
time_t seconds;
@@ -35,18 +45,18 @@ rtems_task Init(
/* error cases in clock_gettime and clock_settime */
puts( "Init: clock_gettime - EINVAL (NULL timespec)" );
status = clock_gettime( CLOCK_REALTIME, NULL );
rtems_test_assert( status == -1 );
sc = clock_gettime( CLOCK_REALTIME, NULL );
rtems_test_assert( sc == -1 );
rtems_test_assert( errno == EINVAL );
puts( "Init: clock_gettime - EINVAL (invalid clockid)" );
status = clock_gettime( (clockid_t)-1, &tv );
rtems_test_assert( status == -1 );
sc = clock_gettime( (clockid_t)-1, &tv );
rtems_test_assert( sc == -1 );
rtems_test_assert( errno == EINVAL );
puts( "Init: clock_settime - EINVAL (invalid clockid)" );
status = clock_settime( (clockid_t)-1, &tv );
rtems_test_assert( status == -1 );
sc = clock_settime( (clockid_t)-1, &tv );
rtems_test_assert( sc == -1 );
rtems_test_assert( errno == EINVAL );
/* way back near the dawn of time :D */
@@ -54,26 +64,26 @@ rtems_task Init(
tv.tv_nsec = 0;
printf( ctime( &tv.tv_sec ) );
puts( "Init: clock_settime - before 1988 EINVAL" );
status = clock_settime( CLOCK_REALTIME, &tv );
rtems_test_assert( status == -1 );
sc = clock_settime( CLOCK_REALTIME, &tv );
rtems_test_assert( sc == -1 );
rtems_test_assert( errno == EINVAL );
/* exercise clock_getres */
puts( "Init: clock_getres - EINVAL (invalid clockid)" );
status = clock_getres( (clockid_t) -1, &tv );
rtems_test_assert( status == -1 );
sc = clock_getres( (clockid_t) -1, &tv );
rtems_test_assert( sc == -1 );
rtems_test_assert( errno == EINVAL );
puts( "Init: clock_getres - EINVAL (NULL resolution)" );
status = clock_getres( CLOCK_REALTIME, NULL );
rtems_test_assert( status == -1 );
sc = clock_getres( CLOCK_REALTIME, NULL );
rtems_test_assert( sc == -1 );
rtems_test_assert( errno == EINVAL );
puts( "Init: clock_getres - SUCCESSFUL" );
status = clock_getres( CLOCK_REALTIME, &tv );
sc = clock_getres( CLOCK_REALTIME, &tv );
printf( "Init: resolution = sec (%ld), nsec (%ld)\n", tv.tv_sec, tv.tv_nsec );
rtems_test_assert( !status );
rtems_test_assert( !sc );
/* set the time of day, and print our buffer in multiple ways */
@@ -88,8 +98,8 @@ rtems_task Init(
printf( asctime( &tm ) );
puts( "Init: clock_settime - SUCCESSFUL" );
status = clock_settime( CLOCK_REALTIME, &tv );
rtems_test_assert( !status );
sc = clock_settime( CLOCK_REALTIME, &tv );
rtems_test_assert( !sc );
printf( asctime( &tm ) );
printf( ctime( &tv.tv_sec ) );
@@ -100,12 +110,12 @@ rtems_task Init(
rtems_test_assert( !remaining );
/* print new times to make sure it has changed and we can get the realtime */
status = clock_gettime( CLOCK_PROCESS_CPUTIME, &tv );
rtems_test_assert( !status );
sc = clock_gettime( CLOCK_PROCESS_CPUTIME, &tv );
rtems_test_assert( !sc );
printf("Time since boot: (%d, %d)\n", tv.tv_sec,tv.tv_nsec );
status = clock_gettime( CLOCK_REALTIME, &tv );
rtems_test_assert( !status );
sc = clock_gettime( CLOCK_REALTIME, &tv );
rtems_test_assert( !sc );
printf( ctime( &tv.tv_sec ) );
@@ -126,23 +136,23 @@ rtems_task Init(
empty_line();
puts( "Init: nanosleep - EINVAL (NULL time)" );
status = nanosleep ( NULL, &tr );
rtems_test_assert( status == -1 );
sc = nanosleep ( NULL, &tr );
rtems_test_assert( sc == -1 );
rtems_test_assert( errno == EINVAL );
tv.tv_sec = 0;
tv.tv_nsec = TOD_NANOSECONDS_PER_SECOND * 2;
puts( "Init: nanosleep - EINVAL (too many nanoseconds)" );
status = nanosleep ( &tv, &tr );
rtems_test_assert( status == -1 );
sc = nanosleep ( &tv, &tr );
rtems_test_assert( sc == -1 );
rtems_test_assert( errno == EINVAL );
/* this is actually a small delay or yield */
tv.tv_sec = -1;
tv.tv_nsec = 0;
puts( "Init: nanosleep - negative seconds small delay " );
status = nanosleep ( &tv, &tr );
rtems_test_assert( status == -1 );
sc = nanosleep ( &tv, &tr );
rtems_test_assert( sc == -1 );
rtems_test_assert( errno == EINVAL );
/* use nanosleep to yield */
@@ -151,14 +161,14 @@ rtems_task Init(
tv.tv_nsec = 0;
puts( "Init: nanosleep - yield with remaining" );
status = nanosleep ( &tv, &tr );
rtems_test_assert( !status );
sc = nanosleep ( &tv, &tr );
rtems_test_assert( !sc );
rtems_test_assert( !tr.tv_sec );
rtems_test_assert( !tr.tv_nsec );
puts( "Init: nanosleep - yield with NULL time remaining" );
status = nanosleep ( &tv, NULL );
rtems_test_assert( !status );
sc = nanosleep ( &tv, NULL );
rtems_test_assert( !sc );
rtems_test_assert( !tr.tv_sec );
rtems_test_assert( !tr.tv_nsec );
@@ -168,12 +178,12 @@ rtems_task Init(
tv.tv_nsec = 500000;
puts( "Init: nanosleep - 1.05 seconds" );
status = nanosleep ( &tv, &tr );
rtems_test_assert( !status );
sc = nanosleep ( &tv, &tr );
rtems_test_assert( !sc );
/* print the current real time again */
status = clock_gettime( CLOCK_REALTIME, &tv );
rtems_test_assert( !status );
sc = clock_gettime( CLOCK_REALTIME, &tv );
rtems_test_assert( !sc );
printf( ctime( &tv.tv_sec ) );
/* check the time remaining */
@@ -186,10 +196,38 @@ rtems_task Init(
rtems_test_assert( useconds < 1350000 );
/* print the current real time again */
status = clock_gettime( CLOCK_REALTIME, &tv );
rtems_test_assert( !status );
sc = clock_gettime( CLOCK_REALTIME, &tv );
rtems_test_assert( !sc );
printf( ctime( &tv.tv_sec ) );
puts( "" );
puts( "clock_gettime - CLOCK_THREAD_CPUTIME -- ENOSYS" );
#if defined(_POSIX_THREAD_CPUTIME)
{
struct timespec tp;
sc = clock_gettime( CLOCK_THREAD_CPUTIME, &tp );
check_enosys( sc );
}
#endif
puts( "clock_settime - CLOCK_PROCESS_CPUTIME -- ENOSYS" );
#if defined(_POSIX_CPUTIME)
{
struct timespec tp;
sc = clock_settime( CLOCK_PROCESS_CPUTIME, &tp );
check_enosys( sc );
}
#endif
puts( "clock_settime - CLOCK_THREAD_CPUTIME -- ENOSYS" );
#if defined(_POSIX_THREAD_CPUTIME)
{
struct timespec tp;
sc = clock_settime( CLOCK_THREAD_CPUTIME, &tp );
check_enosys( sc );
}
#endif
puts( "*** END OF POSIX CLOCK TEST ***" );
rtems_test_exit(0);
}
@@ -28,4 +28,7 @@ Fri May 24 11:05:06 1996
Init: sec (0), nsec (0) remaining
Init: usleep - 1.35 seconds
Fri May 24 11:05:07 1996
clock_gettime - CLOCK_THREAD_CPUTIME -- ENOSYS
clock_settime - CLOCK_PROCESS_CPUTIME -- ENOSYS
clock_settime - CLOCK_THREAD_CPUTIME -- ENOSYS
*** END OF POSIX CLOCK TEST ***
-27
View File
@@ -82,33 +82,6 @@ void *POSIX_Init(
sc = clock_setenable_attr( 0, 0 );
check_enosys( sc );
puts( "clock_gettime - CLOCK_THREAD_CPUTIME -- ENOSYS" );
#if defined(_POSIX_THREAD_CPUTIME)
{
struct timespec tp;
sc = clock_gettime( CLOCK_THREAD_CPUTIME, &tp );
check_enosys( sc );
}
#endif
puts( "clock_settime - CLOCK_PROCESS_CPUTIME -- ENOSYS" );
#if defined(_POSIX_CPUTIME)
{
struct timespec tp;
sc = clock_settime( CLOCK_PROCESS_CPUTIME, &tp );
check_enosys( sc );
}
#endif
puts( "clock_settime - CLOCK_THREAD_CPUTIME -- ENOSYS" );
#if defined(_POSIX_THREAD_CPUTIME)
{
struct timespec tp;
sc = clock_settime( CLOCK_THREAD_CPUTIME, &tp );
check_enosys( sc );
}
#endif
puts( "devctl -- ENOSYS" );
sc = devctl( 0, NULL, 0, NULL );
check_enosys( sc );
@@ -10,9 +10,6 @@ aio_fsync -- ENOSYS
clock_getcpuclockid -- ENOSYS
clock_getenable_attr -- ENOSYS
clock_setenable_attr -- ENOSYS
clock_gettime - CLOCK_THREAD_CPUTIME -- ENOSYS
clock_settime - CLOCK_PROCESS_CPUTIME -- ENOSYS
clock_settime - CLOCK_THREAD_CPUTIME -- ENOSYS
devctl -- ENOSYS
execl -- ENOSYS
execle -- ENOSYS
+1 -1
View File
@@ -18,7 +18,7 @@ psxsignal03_LDADD = $(MANAGERS_NOT_WANTED:%=$(PROJECT_LIB)/no-%.rel)
AM_CPPFLAGS += -I$(top_srcdir)/include
AM_CPPFLAGS += -I$(top_srcdir)/../support/include
AM_CPPFLAGS += -DUSE_USER_SIGNALS
AM_CPPFLAGS += -DUSE_USER_SIGNALS_PROCESS
LINK_OBJS = $(psxsignal03_OBJECTS) $(psxsignal03_LDADD)
LINK_LIBS = $(psxsignal03_LDLIBS)
+32 -10
View File
@@ -9,17 +9,37 @@
* $Id$
*/
#if defined(USE_USER_SIGNALS)
#if defined(USE_USER_SIGNALS_PROCESS)
#define TEST_NAME "03"
#define TEST_STRING "User Signals"
#define TEST_STRING "User Signals to Process"
#define SIGNAL_ONE SIGUSR1
#define SIGNAL_TWO SIGUSR2
#define SEND_SIGNAL(_sig) kill( getpid(), _sig )
#define TO_PROCESS
#elif defined(USE_REAL_TIME_SIGNALS)
#elif defined(USE_REAL_TIME_SIGNALS_PROCESS)
#define TEST_NAME "04"
#define TEST_STRING "Real-Time Signals"
#define TEST_STRING "Real-Time Signals to Process"
#define SIGNAL_ONE SIGRTMIN
#define SIGNAL_TWO SIGRTMAX
#define SEND_SIGNAL(_sig) kill( getpid(), _sig )
#define TO_PROCESS
#elif defined(USE_USER_SIGNALS_THREAD)
#define TEST_NAME "05"
#define TEST_STRING "User Signals to Thread"
#define SIGNAL_ONE SIGUSR1
#define SIGNAL_TWO SIGUSR2
#define SEND_SIGNAL(_sig) pthread_kill( id, _sig )
#define TO_THREAD
#elif defined(USE_REAL_TIME_SIGNALS_THREAD)
#define TEST_NAME "05"
#define TEST_STRING "Real-Time Signals to Thread"
#define SIGNAL_ONE SIGRTMIN
#define SIGNAL_TWO SIGRTMAX
#define SEND_SIGNAL(_sig) pthread_kill( id, _sig )
#define TO_THREAD
#else
#error "Test Mode not defined"
@@ -154,18 +174,20 @@ void *POSIX_Init(
printf( "Init - sending %s - deliver to one thread\n",
signal_name(SIGNAL_TWO));
sc = kill( getpid(), SIGNAL_TWO );
sc = SEND_SIGNAL( SIGNAL_TWO );
assert( !sc );
printf( "Init - sending %s - deliver to other thread\n",
signal_name(SIGNAL_TWO));
sc = kill( getpid(), SIGNAL_TWO );
sc = SEND_SIGNAL( SIGNAL_TWO );
assert( !sc );
printf( "Init - sending %s - expect EAGAIN\n", signal_name(SIGNAL_TWO) );
sc = kill( getpid(), SIGNAL_TWO );
assert( sc == -1 );
assert( errno == EAGAIN );
#if defined(TO_PROCESS)
printf( "Init - sending %s - expect EAGAIN\n", signal_name(SIGNAL_TWO) );
sc = SEND_SIGNAL( SIGNAL_TWO );
assert( sc == -1 );
assert( errno == EAGAIN );
#endif
puts( "Init - sleep - let thread report if it unblocked - OK" );
usleep(500000);
+1 -1
View File
@@ -18,7 +18,7 @@ psxsignal04_LDADD = $(MANAGERS_NOT_WANTED:%=$(PROJECT_LIB)/no-%.rel)
AM_CPPFLAGS += -I$(top_srcdir)/include
AM_CPPFLAGS += -I$(top_srcdir)/../support/include
AM_CPPFLAGS += -DUSE_REAL_TIME_SIGNALS
AM_CPPFLAGS += -DUSE_REAL_TIME_SIGNALS_PROCESS
LINK_OBJS = $(psxsignal04_OBJECTS) $(psxsignal04_LDADD)
LINK_LIBS = $(psxsignal04_LDLIBS)