From 1e2d7510363b4099315c9ec0dd541bf3c3764297 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Mon, 14 Sep 2009 00:15:55 +0000 Subject: 2009-09-13 Joel Sherrill * 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. --- testsuites/psxtests/ChangeLog | 7 ++ testsuites/psxtests/psxclock/init.c | 112 +++++++++++++++++++--------- testsuites/psxtests/psxclock/psxclock.scn | 3 + testsuites/psxtests/psxenosys/init.c | 27 ------- testsuites/psxtests/psxenosys/psxenosys.scn | 3 - testsuites/psxtests/psxsignal03/Makefile.am | 2 +- testsuites/psxtests/psxsignal03/init.c | 42 ++++++++--- testsuites/psxtests/psxsignal04/Makefile.am | 2 +- 8 files changed, 119 insertions(+), 79 deletions(-) (limited to 'testsuites') diff --git a/testsuites/psxtests/ChangeLog b/testsuites/psxtests/ChangeLog index 20fa8762eb..bf2c6f02ca 100644 --- a/testsuites/psxtests/ChangeLog +++ b/testsuites/psxtests/ChangeLog @@ -1,3 +1,10 @@ +2009-09-13 Joel Sherrill + + * 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 * Makefile.am, configure.ac, psx01/init.c, psx01/psx01.scn: Add new diff --git a/testsuites/psxtests/psxclock/init.c b/testsuites/psxtests/psxclock/init.c index 9f8c5671d9..43d5b4d639 100644 --- a/testsuites/psxtests/psxclock/init.c +++ b/testsuites/psxtests/psxclock/init.c @@ -13,13 +13,23 @@ #include #include +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); } diff --git a/testsuites/psxtests/psxclock/psxclock.scn b/testsuites/psxtests/psxclock/psxclock.scn index 6814210d9b..15524c74da 100644 --- a/testsuites/psxtests/psxclock/psxclock.scn +++ b/testsuites/psxtests/psxclock/psxclock.scn @@ -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 *** diff --git a/testsuites/psxtests/psxenosys/init.c b/testsuites/psxtests/psxenosys/init.c index c20ac146e2..500e003c3c 100644 --- a/testsuites/psxtests/psxenosys/init.c +++ b/testsuites/psxtests/psxenosys/init.c @@ -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 ); diff --git a/testsuites/psxtests/psxenosys/psxenosys.scn b/testsuites/psxtests/psxenosys/psxenosys.scn index 76aa946761..d658e1683e 100644 --- a/testsuites/psxtests/psxenosys/psxenosys.scn +++ b/testsuites/psxtests/psxenosys/psxenosys.scn @@ -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 diff --git a/testsuites/psxtests/psxsignal03/Makefile.am b/testsuites/psxtests/psxsignal03/Makefile.am index eb45b3dddf..3d3e01ea4c 100644 --- a/testsuites/psxtests/psxsignal03/Makefile.am +++ b/testsuites/psxtests/psxsignal03/Makefile.am @@ -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) diff --git a/testsuites/psxtests/psxsignal03/init.c b/testsuites/psxtests/psxsignal03/init.c index 18a8ff40e6..dd22f0a114 100644 --- a/testsuites/psxtests/psxsignal03/init.c +++ b/testsuites/psxtests/psxsignal03/init.c @@ -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); diff --git a/testsuites/psxtests/psxsignal04/Makefile.am b/testsuites/psxtests/psxsignal04/Makefile.am index e451ce72ee..edf2c2deff 100644 --- a/testsuites/psxtests/psxsignal04/Makefile.am +++ b/testsuites/psxtests/psxsignal04/Makefile.am @@ -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) -- cgit v1.2.3