summaryrefslogtreecommitdiffstats
path: root/testsuites
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>2009-09-14 00:15:55 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>2009-09-14 00:15:55 +0000
commit1e2d7510363b4099315c9ec0dd541bf3c3764297 (patch)
tree30269ecd6127c9b7837b6bec5795aec9d1c22fa0 /testsuites
parent2009-09-13 Joel Sherrill <joel.sherrill@oarcorp.com> (diff)
downloadrtems-1e2d7510363b4099315c9ec0dd541bf3c3764297.tar.bz2
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.
Diffstat (limited to 'testsuites')
-rw-r--r--testsuites/psxtests/ChangeLog7
-rw-r--r--testsuites/psxtests/psxclock/init.c112
-rw-r--r--testsuites/psxtests/psxclock/psxclock.scn3
-rw-r--r--testsuites/psxtests/psxenosys/init.c27
-rw-r--r--testsuites/psxtests/psxenosys/psxenosys.scn3
-rw-r--r--testsuites/psxtests/psxsignal03/Makefile.am2
-rw-r--r--testsuites/psxtests/psxsignal03/init.c42
-rw-r--r--testsuites/psxtests/psxsignal04/Makefile.am2
8 files changed, 119 insertions, 79 deletions
diff --git a/testsuites/psxtests/ChangeLog b/testsuites/psxtests/ChangeLog
index 20fa8762eb..bf2c6f02ca 100644
--- a/testsuites/psxtests/ChangeLog
+++ b/testsuites/psxtests/ChangeLog
@@ -1,5 +1,12 @@
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
test to exercise clock and delay services enabled when POSIX threads
are disabled. This is split from psx01. POSIX test suite now enabled
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 <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);
}
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)