From 9a845e175b55bc764cf84f11a2cc77aea7234fcb Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Tue, 7 Jul 2009 14:30:12 +0000 Subject: 2009-07-07 Joel Sherrill * Makefile.am, configure.ac: Add test of pthread mutex auto intialization. * psxautoinit01/.cvsignore, psxautoinit01/Makefile.am, psxautoinit01/init.c, psxautoinit01/psxautoinit01.scn: New files. --- testsuites/psxtests/ChangeLog | 7 ++ testsuites/psxtests/Makefile.am | 10 +-- testsuites/psxtests/configure.ac | 1 + testsuites/psxtests/psxautoinit01/.cvsignore | 2 + testsuites/psxtests/psxautoinit01/Makefile.am | 30 +++++++++ testsuites/psxtests/psxautoinit01/init.c | 76 ++++++++++++++++++++++ .../psxtests/psxautoinit01/psxautoinit01.scn | 10 +++ 7 files changed, 131 insertions(+), 5 deletions(-) create mode 100644 testsuites/psxtests/psxautoinit01/.cvsignore create mode 100644 testsuites/psxtests/psxautoinit01/Makefile.am create mode 100644 testsuites/psxtests/psxautoinit01/init.c create mode 100644 testsuites/psxtests/psxautoinit01/psxautoinit01.scn diff --git a/testsuites/psxtests/ChangeLog b/testsuites/psxtests/ChangeLog index 5d86d37528..cea00fd0e7 100644 --- a/testsuites/psxtests/ChangeLog +++ b/testsuites/psxtests/ChangeLog @@ -1,3 +1,10 @@ +2009-07-07 Joel Sherrill + + * Makefile.am, configure.ac: Add test of pthread mutex auto + intialization. + * psxautoinit01/.cvsignore, psxautoinit01/Makefile.am, + psxautoinit01/init.c, psxautoinit01/psxautoinit01.scn: New files. + 2009-07-06 Joel Sherrill * psx05/init.c, psx05/psx05.scn: Add a couple of invalid Id cases. diff --git a/testsuites/psxtests/Makefile.am b/testsuites/psxtests/Makefile.am index aaa88187ce..077a006ebf 100644 --- a/testsuites/psxtests/Makefile.am +++ b/testsuites/psxtests/Makefile.am @@ -5,10 +5,11 @@ ACLOCAL_AMFLAGS = -I ../aclocal SUBDIRS = psxhdrs psx01 psx02 psx03 psx04 psx05 psx06 psx07 psx08 psx09 \ - psx10 psx11 psx12 psx13 psx14 psxcleanup psxtime psxtimer01 psxtimer02 \ - psxcancel psxbarrier01 psxmsgq01 psxmsgq03 psxobj01 psxrwlock01 psxsem01 \ - psxspin01 psxenosys psxsignal01 psxsysconf psxualarm psxkey01 \ - psxfatal01 psxfatal02 psxitimer + psx10 psx11 psx12 psx13 psx14 psxautoinit01 psxbarrier01 psxcancel \ + psxcleanup psxenosys psxfatal01 psxfatal02 psxkey01 psxitimer \ + psxmsgq01 psxmsgq02 psxmsgq03 psxobj01 psxrwlock01 psxsem01 \ + psxsignal01 psxspin01 psxsysconf psxtime psxtimer01 psxtimer02 \ + psxualarm ## File IO tests SUBDIRS += psxfile01 psxreaddir psxstat psxmount psx13 psxchroot01 @@ -22,6 +23,5 @@ endif DIST_SUBDIRS = $(SUBDIRS) psxfatal_support EXTRA_DIST = psxfatal_support/init.c psxfatal_support/system.h - include $(top_srcdir)/../automake/subdirs.am include $(top_srcdir)/../automake/local.am diff --git a/testsuites/psxtests/configure.ac b/testsuites/psxtests/configure.ac index 535a51ee3c..f75c81fb78 100644 --- a/testsuites/psxtests/configure.ac +++ b/testsuites/psxtests/configure.ac @@ -40,6 +40,7 @@ psx11/Makefile psx12/Makefile psx13/Makefile psx14/Makefile +psxautoinit01/Makefile psxbarrier01/Makefile psxcancel/Makefile psxchroot01/Makefile diff --git a/testsuites/psxtests/psxautoinit01/.cvsignore b/testsuites/psxtests/psxautoinit01/.cvsignore new file mode 100644 index 0000000000..282522db03 --- /dev/null +++ b/testsuites/psxtests/psxautoinit01/.cvsignore @@ -0,0 +1,2 @@ +Makefile +Makefile.in diff --git a/testsuites/psxtests/psxautoinit01/Makefile.am b/testsuites/psxtests/psxautoinit01/Makefile.am new file mode 100644 index 0000000000..169999c157 --- /dev/null +++ b/testsuites/psxtests/psxautoinit01/Makefile.am @@ -0,0 +1,30 @@ +## +## $Id$ +## + +MANAGERS = all + +rtems_tests_PROGRAMS = psxautoinit01 +psxautoinit01_SOURCES = init.c ../include/pmacros.h + +scndir = $(rtems_testsdir) +dist_scn_DATA = psxautoinit01.scn + +include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg +include $(top_srcdir)/../automake/compile.am +include $(top_srcdir)/../automake/leaf.am + +psxautoinit01_LDADD = $(MANAGERS_NOT_WANTED:%=$(PROJECT_LIB)/no-%.rel) + +AM_CPPFLAGS += -I$(top_srcdir)/include +AM_CPPFLAGS += -I$(top_srcdir)/../support/include + +LINK_OBJS = $(psxautoinit01_OBJECTS) $(psxautoinit01_LDADD) +LINK_LIBS = $(psxautoinit01_LDLIBS) + +psxautoinit01$(EXEEXT): $(psxautoinit01_OBJECTS) \ + $(psxautoinit01_DEPENDENCIES) + @rm -f psxautoinit01$(EXEEXT) + $(make-exe) + +include $(top_srcdir)/../automake/local.am diff --git a/testsuites/psxtests/psxautoinit01/init.c b/testsuites/psxtests/psxautoinit01/init.c new file mode 100644 index 0000000000..67c28e3456 --- /dev/null +++ b/testsuites/psxtests/psxautoinit01/init.c @@ -0,0 +1,76 @@ +/* + * COPYRIGHT (c) 1989-2009. + * 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 +#include + +void *POSIX_Init( + void *argument +) +{ + int sc; + pthread_mutex_t mutex1; + pthread_mutex_t mutex2; + int prioceiling; + + puts( "\n\n*** POSIX TEST -- AUTOMATIC INITIALIZAITON 01 ***" ); + + /* path using mutex get with interrupts disabled */ + mutex1 = PTHREAD_MUTEX_INITIALIZER; + mutex2 = PTHREAD_MUTEX_INITIALIZER; + puts( "Init - pthread_mutex_lock - auto initialize - OK" ); + sc = pthread_mutex_lock( &mutex1 ); + fatal_posix_service_status( sc, 0, "mutex lock OK" ); + + puts( "Init - pthread_mutex_lock - auto initialize - EINVAL" ); + sc = pthread_mutex_lock( &mutex2 ); + fatal_posix_service_status( sc, EINVAL, "mutex lock EINVAL" ); + + puts( "Init - pthread_mutex_unlock - OK" ); + sc = pthread_mutex_unlock( &mutex1 ); + fatal_posix_service_status( sc, 0, "mutex unlock OK" ); + + puts( "Init - pthread_mutex_destroy - OK" ); + sc = pthread_mutex_destroy( &mutex1 ); + fatal_posix_service_status( sc, 0, "mutex destroy OK" ); + + /* path using mutex get with dispatching disabled */ + mutex1 = PTHREAD_MUTEX_INITIALIZER; + mutex2 = PTHREAD_MUTEX_INITIALIZER; + puts( "Init - pthread_mutex_getprioceiling - auto initialize - OK" ); + sc = pthread_mutex_getprioceiling( &mutex1, &prioceiling ); + fatal_posix_service_status( sc, 0, "mutex getprioceiling OK" ); + + puts( "Init - pthread_mutex_getprioceiling - auto initialize - EINVAL" ); + sc = pthread_mutex_getprioceiling( &mutex2, &prioceiling ); + fatal_posix_service_status( sc, EINVAL, "mutex getprioceiling EINVAL" ); + + puts( "Init - pthread_mutex_destroy - OK" ); + sc = pthread_mutex_destroy( &mutex1 ); + fatal_posix_service_status( sc, 0, "mutex destroy OK" ); + + puts( "*** END OF POSIX TEST AUTOMATIC INITIALIZATION 01 ***" ); + rtems_test_exit( 0 ); + + return NULL; /* just so the compiler thinks we returned something */ +} + +#define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER +#define CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER + +#define CONFIGURE_MAXIMUM_POSIX_THREADS 1 +#define CONFIGURE_MAXIMUM_POSIX_MUTEXES 1 + +#define CONFIGURE_POSIX_INIT_THREAD_TABLE + +#define CONFIGURE_INIT +#include diff --git a/testsuites/psxtests/psxautoinit01/psxautoinit01.scn b/testsuites/psxtests/psxautoinit01/psxautoinit01.scn new file mode 100644 index 0000000000..9293acc626 --- /dev/null +++ b/testsuites/psxtests/psxautoinit01/psxautoinit01.scn @@ -0,0 +1,10 @@ +*** POSIX TEST -- AUTOMATIC INITIALIZAITON 01 *** +Init - pthread_mutex_lock - auto initialize - OK +Init - pthread_mutex_lock - auto initialize - EINVAL +Init - pthread_mutex_unlock - OK +Init - pthread_mutex_destroy - OK +Init - pthread_mutex_getprioceiling - auto initialize - OK +Init - pthread_mutex_getprioceiling - auto initialize - EINVAL +Init - pthread_mutex_destroy - OK +*** END OF POSIX TEST AUTOMATIC INITIALIZATION 01 *** + -- cgit v1.2.3