diff options
Diffstat (limited to 'testsuites/libtests/gxx01/init.c')
-rw-r--r-- | testsuites/libtests/gxx01/init.c | 29 |
1 files changed, 25 insertions, 4 deletions
diff --git a/testsuites/libtests/gxx01/init.c b/testsuites/libtests/gxx01/init.c index f9252848de..a0debcdc91 100644 --- a/testsuites/libtests/gxx01/init.c +++ b/testsuites/libtests/gxx01/init.c @@ -11,6 +11,7 @@ #include "config.h" #endif +#include <errno.h> #include <tmacros.h> #include "test_support.h" #include <rtems/gxx_wrappers.h> @@ -142,7 +143,11 @@ void test_key(void) sc = rtems_gxx_key_create(&key, key_dtor); rtems_test_assert( sc == 0 ); - puts( "rtems_gxx_setspecific() - OK" ); + puts( "rtems_gxx_getspecific(key) not set - OK" ); + p = rtems_gxx_getspecific(key); + rtems_test_assert( p == NULL ); + + puts( "rtems_gxx_setspecific(key, 0x1234) - OK" ); sc = rtems_gxx_setspecific(key, (void *)0x1234); rtems_test_assert( sc == 0 ); @@ -153,7 +158,8 @@ void test_key(void) puts( "rtems_gxx_key_delete(key) - OK" ); sc = rtems_gxx_key_delete(key); rtems_test_assert( sc == 0 ); - rtems_test_assert( key_dtor_ran == true ); + /* pthread_key man-page: the dtor should _not_ be called */ + rtems_test_assert( key_dtor_ran != true ); key = calloc( 1, sizeof( *key ) ); rtems_test_assert( key != NULL ); @@ -162,9 +168,21 @@ void test_key(void) p = rtems_gxx_getspecific( key ); rtems_test_assert( p == NULL ); - puts( "rtems_gxx_key_delete(key) - OK" ); + puts( "rtems_gxx_key_delete(key) - NOT OK" ); sc = rtems_gxx_key_delete( key ); - rtems_test_assert( sc == 0 ); + rtems_test_assert( sc != 0 ); + + puts( "rtems_gxx_setspecific(NULL, 0x1234) - NOT OK" ); + sc = rtems_gxx_setspecific( NULL, (void *)0x1234 ); + rtems_test_assert( sc == EINVAL ); + + puts( "rtems_gxx_getspecific(NULL) - OK" ); + p = rtems_gxx_getspecific( NULL ); + rtems_test_assert( p == NULL ); + + puts( "rtems_gxx_key_delete(NULL) - NOT OK" ); + sc = rtems_gxx_key_delete( NULL ); + rtems_test_assert( sc == EINVAL ); } rtems_task Init( @@ -195,6 +213,9 @@ rtems_task Init( #define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER #define CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER +#define CONFIGURE_MAXIMUM_POSIX_KEYS 1 +#define CONFIGURE_MAXIMUM_POSIX_KEY_VALUE_PAIRS 1 + #define CONFIGURE_MAXIMUM_TASKS 1 #define CONFIGURE_MAXIMUM_SEMAPHORES 2 #define CONFIGURE_INITIAL_EXTENSIONS RTEMS_TEST_INITIAL_EXTENSION |