diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 2009-07-17 16:17:14 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 2009-07-17 16:17:14 +0000 |
commit | 5d6e8c88fb5fde6806b22e9ef9b635361b29a8a7 (patch) | |
tree | d2bc55630a204ba93a2af97eee939da105f1f6f7 /testsuites/psxtests/psxmutexattr01 | |
parent | adding lpc24xx BSP parts (diff) | |
download | rtems-5d6e8c88fb5fde6806b22e9ef9b635361b29a8a7.tar.bz2 |
2009-07-17 Joel Sherrill <joel.sherrill@OARcorp.com>
* Makefile.am, configure.ac: Add test to exercise
pthread_mutexattr_gettype and pthread_mutexattr_settype now that the
toolset enables the feature.
* psxmutexattr01/.cvsignore, psxmutexattr01/Makefile.am,
psxmutexattr01/init.c, psxmutexattr01/psxmutexattr01.doc,
psxmutexattr01/psxmutexattr01.scn: New files.
Diffstat (limited to 'testsuites/psxtests/psxmutexattr01')
-rw-r--r-- | testsuites/psxtests/psxmutexattr01/.cvsignore | 2 | ||||
-rw-r--r-- | testsuites/psxtests/psxmutexattr01/Makefile.am | 29 | ||||
-rw-r--r-- | testsuites/psxtests/psxmutexattr01/init.c | 111 | ||||
-rw-r--r-- | testsuites/psxtests/psxmutexattr01/psxmutexattr01.doc | 30 | ||||
-rw-r--r-- | testsuites/psxtests/psxmutexattr01/psxmutexattr01.scn | 23 |
5 files changed, 195 insertions, 0 deletions
diff --git a/testsuites/psxtests/psxmutexattr01/.cvsignore b/testsuites/psxtests/psxmutexattr01/.cvsignore new file mode 100644 index 0000000000..282522db03 --- /dev/null +++ b/testsuites/psxtests/psxmutexattr01/.cvsignore @@ -0,0 +1,2 @@ +Makefile +Makefile.in diff --git a/testsuites/psxtests/psxmutexattr01/Makefile.am b/testsuites/psxtests/psxmutexattr01/Makefile.am new file mode 100644 index 0000000000..9f8becae61 --- /dev/null +++ b/testsuites/psxtests/psxmutexattr01/Makefile.am @@ -0,0 +1,29 @@ +## +## $Id$ +## + +MANAGERS = all + +rtems_tests_PROGRAMS = psxmutexattr01 +psxmutexattr01_SOURCES = init.c + +dist_rtems_tests_DATA = psxmutexattr01.scn +dist_rtems_tests_DATA += psxmutexattr01.doc + +include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg +include $(top_srcdir)/../automake/compile.am +include $(top_srcdir)/../automake/leaf.am + +psxmutexattr01_LDADD = $(MANAGERS_NOT_WANTED:%=$(PROJECT_LIB)/no-%.rel) + +AM_CPPFLAGS += -I$(top_srcdir)/include +AM_CPPFLAGS += -I$(top_srcdir)/../support/include + +LINK_OBJS = $(psxmutexattr01_OBJECTS) $(psxmutexattr01_LDADD) +LINK_LIBS = $(psxmutexattr01_LDLIBS) + +psxmutexattr01$(EXEEXT): $(psxmutexattr01_OBJECTS) $(psxmutexattr01_DEPENDENCIES) + @rm -f psxmutexattr01$(EXEEXT) + $(make-exe) + +include $(top_srcdir)/../automake/local.am diff --git a/testsuites/psxtests/psxmutexattr01/init.c b/testsuites/psxtests/psxmutexattr01/init.c new file mode 100644 index 0000000000..e48a80122a --- /dev/null +++ b/testsuites/psxtests/psxmutexattr01/init.c @@ -0,0 +1,111 @@ +/* + * 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 <errno.h> +#include <pthread.h> + +typedef struct { + const char *name; + int type; + int status; +} ToCheck_t; + +ToCheck_t TypesToCheck[] = { + { "bad type - EINVAL", -1, EINVAL }, + { "PTHREAD_MUTEX_NORMAL - OK", PTHREAD_MUTEX_NORMAL, 0 }, + { "PTHREAD_MUTEX_RECURSIVE - OK", PTHREAD_MUTEX_RECURSIVE, 0 }, + { "PTHREAD_MUTEX_ERRORCHECK - OK", PTHREAD_MUTEX_ERRORCHECK, 0 }, + { "PTHREAD_MUTEX_DEFAULT - OK", PTHREAD_MUTEX_DEFAULT, 0 }, +}; + +#define TO_CHECK sizeof(TypesToCheck) / sizeof(ToCheck_t) + +void *POSIX_Init( + void *ignored +) +{ + int sc; + pthread_mutexattr_t attr; + int type; + int i; + + puts( "\n\n*** POSIX MUTEX ATTRIBUTE TEST 1 ***" ); + + puts( "Init - pthread_mutexattr_gettype - attr NULL - EINVAL" ); + sc = pthread_mutexattr_gettype( NULL, &type ); + rtems_test_assert( sc == EINVAL ); + + puts( "Init - pthread_mutexattr_gettype - type NULL - EINVAL" ); + sc = pthread_mutexattr_gettype( &attr, NULL ); + rtems_test_assert( sc == EINVAL ); + + memset( &attr, 0, sizeof(attr) ); + puts( "Init - pthread_mutexattr_gettype - attr not initialized - EINVAL" ); + sc = pthread_mutexattr_gettype( &attr, &type ); + rtems_test_assert( sc == EINVAL ); + + puts( "Init - pthread_mutexattr_init - OK" ); + sc = pthread_mutexattr_init( &attr ); + rtems_test_assert( sc == 0 ); + + puts( "Init - pthread_mutexattr_gettype - OK" ); + sc = pthread_mutexattr_gettype( &attr, &type ); + rtems_test_assert( sc == 0 ); + + /* now do settype */ + puts( "Init - pthread_mutexattr_settype - type NULL - EINVAL" ); + sc = pthread_mutexattr_settype( NULL, PTHREAD_MUTEX_NORMAL ); + rtems_test_assert( sc == EINVAL ); + + memset( &attr, 0, sizeof(attr) ); + puts( "Init - pthread_mutexattr_settype - attr not initialized - EINVAL" ); + sc = pthread_mutexattr_settype( NULL, PTHREAD_MUTEX_NORMAL ); + rtems_test_assert( sc == EINVAL ); + + /* iterate over good/bad get sets */ + + for (i=0 ; i<TO_CHECK ; i++ ) { + puts( "Init - pthread_mutexattr_init - OK" ); + sc = pthread_mutexattr_init( &attr ); + rtems_test_assert( sc == 0 ); + + printf( "Init - pthread_mutexattr_settype - %s\n", TypesToCheck[i].name ); + sc = pthread_mutexattr_settype( &attr, TypesToCheck[i].type ); + rtems_test_assert( sc == TypesToCheck[i].status ); + + type = -2; + + if ( TypesToCheck[i].status == 0 ) { + printf( "Init - pthread_mutexattr_gettype - %s\n", TypesToCheck[i].name ); + sc = pthread_mutexattr_gettype( &attr, &type ); + rtems_test_assert( sc == 0 ); + rtems_test_assert( type == TypesToCheck[i].type ); + } + } + + puts( "*** END OF POSIX MUTEX ATTRIBUTE TEST 1 ***" ); + rtems_test_exit(0); +} + +/* configuration information */ + +#define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER +#define CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER + +#define CONFIGURE_MAXIMUM_POSIX_THREADS 1 + +#define CONFIGURE_POSIX_INIT_THREAD_TABLE + +#define CONFIGURE_INIT +#include <rtems/confdefs.h> + +/* global variables */ diff --git a/testsuites/psxtests/psxmutexattr01/psxmutexattr01.doc b/testsuites/psxtests/psxmutexattr01/psxmutexattr01.doc new file mode 100644 index 0000000000..287ecee892 --- /dev/null +++ b/testsuites/psxtests/psxmutexattr01/psxmutexattr01.doc @@ -0,0 +1,30 @@ +# +# $Id$ +# +# 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. +# + +This file describes the directives and concepts tested by this test set. + +test set name: psxmutexattr01 + +directives: + + pthread_mutexattr_init + pthread_mutexattr_gettype + pthread_mutexattr_settype + +concepts: + ++ Verify error conditions in pthread_mutexattr_gettype + ++ Verify error conditions in pthread_mutexattr_settype + ++ Verify normal paths through pthread_mutexattr_gettype + ++ Verify normal paths through pthread_mutexattr_settype diff --git a/testsuites/psxtests/psxmutexattr01/psxmutexattr01.scn b/testsuites/psxtests/psxmutexattr01/psxmutexattr01.scn new file mode 100644 index 0000000000..d6bcf5f287 --- /dev/null +++ b/testsuites/psxtests/psxmutexattr01/psxmutexattr01.scn @@ -0,0 +1,23 @@ +*** POSIX MUTEX ATTRIBUTE TEST 1 *** +Init - pthread_mutexattr_gettype - attr NULL - EINVAL +Init - pthread_mutexattr_gettype - type NULL - EINVAL +Init - pthread_mutexattr_gettype - attr not initialized - EINVAL +Init - pthread_mutexattr_init - OK +Init - pthread_mutexattr_gettype - OK +Init - pthread_mutexattr_settype - type NULL - EINVAL +Init - pthread_mutexattr_settype - attr not initialized - EINVAL +Init - pthread_mutexattr_init - OK +Init - pthread_mutexattr_settype - bad type - EINVAL +Init - pthread_mutexattr_init - OK +Init - pthread_mutexattr_settype - PTHREAD_MUTEX_NORMAL - OK +Init - pthread_mutexattr_gettype - PTHREAD_MUTEX_NORMAL - OK +Init - pthread_mutexattr_init - OK +Init - pthread_mutexattr_settype - PTHREAD_MUTEX_RECURSIVE - OK +Init - pthread_mutexattr_gettype - PTHREAD_MUTEX_RECURSIVE - OK +Init - pthread_mutexattr_init - OK +Init - pthread_mutexattr_settype - PTHREAD_MUTEX_ERRORCHECK - OK +Init - pthread_mutexattr_gettype - PTHREAD_MUTEX_ERRORCHECK - OK +Init - pthread_mutexattr_init - OK +Init - pthread_mutexattr_settype - PTHREAD_MUTEX_DEFAULT - OK +Init - pthread_mutexattr_gettype - PTHREAD_MUTEX_DEFAULT - OK +*** END OF POSIX MUTEX ATTRIBUTE TEST 1 *** |