From 3023a1d3d9c9b79e29a240bab2f4832c0b4647a6 Mon Sep 17 00:00:00 2001 From: Jennifer Averett Date: Wed, 29 Jun 2011 19:09:12 +0000 Subject: 2011-06-29 Ricardo Aguirre * psxtmtests/Makefile.am, psxtmtests/configure.ac, psxtmtests/psxtmtests_plan.csv: Added nanosleep tests. * psxtmtests/psxtmnanosleep01/Makefile.am, psxtmtests/psxtmnanosleep01/init.c, psxtmtests/psxtmnanosleep01/psxtmnanosleep01.doc, psxtmtests/psxtmnanosleep02/Makefile.am, psxtmtests/psxtmnanosleep02/init.c, psxtmtests/psxtmnanosleep02/psxtmnanosleep02.doc: New files. --- testsuites/ChangeLog | 11 +++ testsuites/psxtmtests/Makefile.am | 2 + testsuites/psxtmtests/configure.ac | 2 + testsuites/psxtmtests/psxtmnanosleep01/Makefile.am | 30 ++++++ testsuites/psxtmtests/psxtmnanosleep01/init.c | 55 +++++++++++ .../psxtmnanosleep01/psxtmnanosleep01.doc | 16 ++++ testsuites/psxtmtests/psxtmnanosleep02/Makefile.am | 30 ++++++ testsuites/psxtmtests/psxtmnanosleep02/init.c | 102 +++++++++++++++++++++ .../psxtmnanosleep02/psxtmnanosleep02.doc | 14 +++ testsuites/psxtmtests/psxtmtests_plan.csv | 4 +- 10 files changed, 264 insertions(+), 2 deletions(-) create mode 100644 testsuites/psxtmtests/psxtmnanosleep01/Makefile.am create mode 100644 testsuites/psxtmtests/psxtmnanosleep01/init.c create mode 100644 testsuites/psxtmtests/psxtmnanosleep01/psxtmnanosleep01.doc create mode 100644 testsuites/psxtmtests/psxtmnanosleep02/Makefile.am create mode 100644 testsuites/psxtmtests/psxtmnanosleep02/init.c create mode 100644 testsuites/psxtmtests/psxtmnanosleep02/psxtmnanosleep02.doc diff --git a/testsuites/ChangeLog b/testsuites/ChangeLog index 72a3d9d5da..9f9377fc74 100644 --- a/testsuites/ChangeLog +++ b/testsuites/ChangeLog @@ -1,3 +1,14 @@ +2011-06-29 Ricardo Aguirre + + * psxtmtests/Makefile.am, psxtmtests/configure.ac, + psxtmtests/psxtmtests_plan.csv: Added nanosleep tests. + * psxtmtests/psxtmnanosleep01/Makefile.am, + psxtmtests/psxtmnanosleep01/init.c, + psxtmtests/psxtmnanosleep01/psxtmnanosleep01.doc, + psxtmtests/psxtmnanosleep02/Makefile.am, + psxtmtests/psxtmnanosleep02/init.c, + psxtmtests/psxtmnanosleep02/psxtmnanosleep02.doc: New files. + 2011-06-28 Joel Sherrill * configure.ac, support/include/test_support.h: diff --git a/testsuites/psxtmtests/Makefile.am b/testsuites/psxtmtests/Makefile.am index 51b71cd499..89b5275ab7 100644 --- a/testsuites/psxtmtests/Makefile.am +++ b/testsuites/psxtmtests/Makefile.am @@ -10,6 +10,8 @@ SUBDIRS += psxtmsleep01 SUBDIRS += psxtmsleep02 SUBDIRS += psxtmthread01 SUBDIRS += psxtmthread03 +SUBDIRS += psxtmnanosleep01 +SUBDIRS += psxtmnanosleep02 endif DIST_SUBDIRS = $(SUBDIRS) diff --git a/testsuites/psxtmtests/configure.ac b/testsuites/psxtmtests/configure.ac index 65efb3f396..6bf3484e32 100644 --- a/testsuites/psxtmtests/configure.ac +++ b/testsuites/psxtmtests/configure.ac @@ -84,5 +84,7 @@ psxtmsleep01/Makefile psxtmsleep02/Makefile psxtmthread01/Makefile psxtmthread03/Makefile +psxtmnanosleep01/Makefile +psxtmnanosleep02/Makefile ]) AC_OUTPUT diff --git a/testsuites/psxtmtests/psxtmnanosleep01/Makefile.am b/testsuites/psxtmtests/psxtmnanosleep01/Makefile.am new file mode 100644 index 0000000000..16c6e1855a --- /dev/null +++ b/testsuites/psxtmtests/psxtmnanosleep01/Makefile.am @@ -0,0 +1,30 @@ +## +## $Id$ +## + +MANAGERS = all + +rtems_tests_PROGRAMS = psxtmnanosleep01 +psxtmnanosleep01_SOURCES = init.c ../../tmtests/include/timesys.h \ + ../../support/src/tmtests_empty_function.c \ + ../../support/src/tmtests_support.c + +dist_rtems_tests_DATA = psxtmnanosleep01.doc + +include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg +include $(top_srcdir)/../automake/compile.am +include $(top_srcdir)/../automake/leaf.am + +OPERATION_COUNT = @OPERATION_COUNT@ +AM_CPPFLAGS += -I$(top_srcdir)/../tmtests/include +AM_CPPFLAGS += -DOPERATION_COUNT=$(OPERATION_COUNT) +AM_CPPFLAGS += -I$(top_srcdir)/../support/include + +LINK_OBJS = $(psxtmnanosleep01_OBJECTS) $(psxtmnanosleep01_LDADD) +LINK_LIBS = $(psxtmnanosleep01_LDLIBS) + +psxtmnanosleep01$(EXEEXT): $(psxtmnanosleep01_OBJECTS) $(psxtmnanosleep01_DEPENDENCIES) + @rm -f psxtmnanosleep01$(EXEEXT) + $(make-exe) + +include $(top_srcdir)/../automake/local.am diff --git a/testsuites/psxtmtests/psxtmnanosleep01/init.c b/testsuites/psxtmtests/psxtmnanosleep01/init.c new file mode 100644 index 0000000000..08cac6c4c2 --- /dev/null +++ b/testsuites/psxtmtests/psxtmnanosleep01/init.c @@ -0,0 +1,55 @@ +/* + * COPYRIGHT (c) 1989-2011. + * 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$ + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include +#include +#include "test_support.h" + +void *POSIX_Init( + void *argument +) +{ + long end_time; + struct timespec sleepTime; + sleepTime.tv_sec = 0; + sleepTime.tv_nsec = 0; + + puts( "\n\n*** POSIX TIME TEST PSXTMNANOSLEEP01 ***" ); + + benchmark_timer_initialize(); + + nanosleep(&sleepTime, (struct timespec *) NULL); + + end_time = benchmark_timer_read(); + + put_time("nanosleep - yield X ",end_time,OPERATION_COUNT,0,0); + + puts( "*** END OF POSIX TIME TEST PSXTMNANOSLEEP01 ***" ); + + rtems_test_exit(0); +} + +/* configuration information */ + +#define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER +#define CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER + +#define CONFIGURE_MAXIMUM_POSIX_THREADS 1 +#define CONFIGURE_POSIX_INIT_THREAD_TABLE + +#define CONFIGURE_INIT + +#include +/* end of file */ diff --git a/testsuites/psxtmtests/psxtmnanosleep01/psxtmnanosleep01.doc b/testsuites/psxtmtests/psxtmnanosleep01/psxtmnanosleep01.doc new file mode 100644 index 0000000000..7151e81f91 --- /dev/null +++ b/testsuites/psxtmtests/psxtmnanosleep01/psxtmnanosleep01.doc @@ -0,0 +1,16 @@ +# +# $Id$ +# +# COPYRIGHT (c) 1989-2011. +# 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 test benchmarks the following operations: + ++ Benchmark a call to nanosleep() which yields + + diff --git a/testsuites/psxtmtests/psxtmnanosleep02/Makefile.am b/testsuites/psxtmtests/psxtmnanosleep02/Makefile.am new file mode 100644 index 0000000000..45b270a2b7 --- /dev/null +++ b/testsuites/psxtmtests/psxtmnanosleep02/Makefile.am @@ -0,0 +1,30 @@ +## +## $Id$ +## + +MANAGERS = all + +rtems_tests_PROGRAMS = psxtmnanosleep02 +psxtmnanosleep02_SOURCES = init.c ../../tmtests/include/timesys.h \ + ../../support/src/tmtests_empty_function.c \ + ../../support/src/tmtests_support.c + +dist_rtems_tests_DATA = psxtmnanosleep02.doc + +include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg +include $(top_srcdir)/../automake/compile.am +include $(top_srcdir)/../automake/leaf.am + +OPERATION_COUNT = @OPERATION_COUNT@ +AM_CPPFLAGS += -I$(top_srcdir)/../tmtests/include +AM_CPPFLAGS += -DOPERATION_COUNT=$(OPERATION_COUNT) +AM_CPPFLAGS += -I$(top_srcdir)/../support/include + +LINK_OBJS = $(psxtmnanosleep02_OBJECTS) $(psxtmnanosleep02_LDADD) +LINK_LIBS = $(psxtmnanosleep02_LDLIBS) + +psxtmnanosleep02$(EXEEXT): $(psxtmnanosleep02_OBJECTS) $(psxtmnanosleep02_DEPENDENCIES) + @rm -f psxtmnanosleep02$(EXEEXT) + $(make-exe) + +include $(top_srcdir)/../automake/local.am diff --git a/testsuites/psxtmtests/psxtmnanosleep02/init.c b/testsuites/psxtmtests/psxtmnanosleep02/init.c new file mode 100644 index 0000000000..eca71114f6 --- /dev/null +++ b/testsuites/psxtmtests/psxtmnanosleep02/init.c @@ -0,0 +1,102 @@ +/* + * COPYRIGHT (c) 1989-2011. + * 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$ + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include +#include +#include "test_support.h" + +#include + +void *Low( + void *argument +) +{ + long end_time; + + end_time = benchmark_timer_read(); + + put_time( + "nanosleep - blocking", + end_time, + OPERATION_COUNT, + 0, + 0 + ); + + puts( "*** END OF POSIX TIME TEST nanosleep - blocking ***" ); + + rtems_test_exit( 0 ); + return NULL; +} + +void *Middle( + void *argument +) +{ + /* calling nanosleep */ + struct timespec sleepTime; + sleepTime.tv_sec = 0; + sleepTime.tv_nsec = 1; + + nanosleep(&sleepTime, (struct timespec *) NULL); + + return NULL; +} + +void *POSIX_Init( + void *argument +) +{ + int i; + int status; + pthread_t threadId; + struct timespec sleepTime; + struct timespec remainder; + + sleepTime.tv_sec = 0; + sleepTime.tv_nsec = 1; + remainder.tv_sec = 0; + remainder.tv_nsec = 0; + + puts( "\n\n*** POSIX TIME TEST nanosleep - blocking ***" ); + + for ( i=0 ; i < OPERATION_COUNT - 1 ; i++ ) { + status = pthread_create( &threadId, NULL, Middle, NULL ); + rtems_test_assert( !status ); + } + + status = pthread_create( &threadId, NULL, Low, NULL ); + rtems_test_assert( !status ); + + /* start the timer and switch through all the other tasks */ + benchmark_timer_initialize(); + /* calling nanosleep*/ + nanosleep(&sleepTime, &remainder); + + return NULL; +} + +/* configuration information */ + +#define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER +#define CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER + +#define CONFIGURE_MAXIMUM_POSIX_THREADS OPERATION_COUNT + 2 +#define CONFIGURE_POSIX_INIT_THREAD_TABLE + +#define CONFIGURE_INIT + +#include + /* end of file */ diff --git a/testsuites/psxtmtests/psxtmnanosleep02/psxtmnanosleep02.doc b/testsuites/psxtmtests/psxtmnanosleep02/psxtmnanosleep02.doc new file mode 100644 index 0000000000..a36456b952 --- /dev/null +++ b/testsuites/psxtmtests/psxtmnanosleep02/psxtmnanosleep02.doc @@ -0,0 +1,14 @@ +# +# $Id$ +# +# COPYRIGHT (c) 1989-2011. +# 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 test benchmarks the following operations: + ++ nanosleep - blocking diff --git a/testsuites/psxtmtests/psxtmtests_plan.csv b/testsuites/psxtmtests/psxtmtests_plan.csv index 035b257b71..f0c6fff347 100644 --- a/testsuites/psxtmtests/psxtmtests_plan.csv +++ b/testsuites/psxtmtests/psxtmtests_plan.csv @@ -114,5 +114,5 @@ ,,, "sleep - yield","psxtmsleep01","psxtmtest_single","Yes" "sleep - blocking","psxtmsleep02","psxtmtest_blocking","Yes" -"nanosleep - yield","psxtmnanosleep01","psxtmtest_single", -"nanosleep - blocking","psxtmnanosleep02","psxtmtest_blocking", +"nanosleep - yield","psxtmnanosleep01","psxtmtest_single","Yes" +"nanosleep - blocking","psxtmnanosleep02","psxtmtest_blocking","Yes" -- cgit v1.2.3