diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 2009-06-12 15:17:49 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 2009-06-12 15:17:49 +0000 |
commit | c0ae2676b52885826afa4f0478659ddfc4fc4f4a (patch) | |
tree | a31f6e96b23c21e623d1ae796a78236bccf7358b /testsuites/psxtests/psxobj01 | |
parent | 2009-06-12 Joel Sherrill <joel.sherrill@OARcorp.com> (diff) | |
download | rtems-c0ae2676b52885826afa4f0478659ddfc4fc4f4a.tar.bz2 |
Add new test for error cases in _Objects_Name_to_id_string which is currently only used by POSIX semaphores and message queues.
Diffstat (limited to 'testsuites/psxtests/psxobj01')
-rw-r--r-- | testsuites/psxtests/psxobj01/.cvsignore | 2 | ||||
-rw-r--r-- | testsuites/psxtests/psxobj01/Makefile.am | 29 | ||||
-rw-r--r-- | testsuites/psxtests/psxobj01/init.c | 80 | ||||
-rw-r--r-- | testsuites/psxtests/psxobj01/psxobj01.doc | 26 | ||||
-rw-r--r-- | testsuites/psxtests/psxobj01/psxobj01.scn | 5 |
5 files changed, 142 insertions, 0 deletions
diff --git a/testsuites/psxtests/psxobj01/.cvsignore b/testsuites/psxtests/psxobj01/.cvsignore new file mode 100644 index 0000000000..282522db03 --- /dev/null +++ b/testsuites/psxtests/psxobj01/.cvsignore @@ -0,0 +1,2 @@ +Makefile +Makefile.in diff --git a/testsuites/psxtests/psxobj01/Makefile.am b/testsuites/psxtests/psxobj01/Makefile.am new file mode 100644 index 0000000000..d6f8c741c3 --- /dev/null +++ b/testsuites/psxtests/psxobj01/Makefile.am @@ -0,0 +1,29 @@ +## +## $Id$ +## + +MANAGERS = all + +rtems_tests_PROGRAMS = psxobj01 +psxobj01_SOURCES = init.c + +dist_rtems_tests_DATA = psxobj01.scn +dist_rtems_tests_DATA += psxobj01.doc + +include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg +include $(top_srcdir)/../automake/compile.am +include $(top_srcdir)/../automake/leaf.am + +psxobj01_LDADD = $(MANAGERS_NOT_WANTED:%=$(PROJECT_LIB)/no-%.rel) + +AM_CPPFLAGS += -I$(top_srcdir)/include +AM_CPPFLAGS += -I$(top_srcdir)/../support/include + +LINK_OBJS = $(psxobj01_OBJECTS) $(psxobj01_LDADD) +LINK_LIBS = $(psxobj01_LDLIBS) + +psxobj01$(EXEEXT): $(psxobj01_OBJECTS) $(psxobj01_DEPENDENCIES) + @rm -f psxobj01$(EXEEXT) + $(make-exe) + +include $(top_srcdir)/../automake/local.am diff --git a/testsuites/psxtests/psxobj01/init.c b/testsuites/psxtests/psxobj01/init.c new file mode 100644 index 0000000000..05c6862e10 --- /dev/null +++ b/testsuites/psxtests/psxobj01/init.c @@ -0,0 +1,80 @@ +/* Odd Object Name/Id Error Cases + * + * 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$ + */ + +#define __RTEMS_VIOLATE_KERNEL_VISIBILITY__ +#include <tmacros.h> + +rtems_task Init( + rtems_task_argument ignored +) +{ + Objects_Name_or_id_lookup_errors namerc; + Objects_Information TestClass; + Objects_Id id; + char name[64]; + + puts( "\n\n*** POSIX OBJECT TEST 1 ***" ); + + /* very fake object class to test with */ + _Objects_Initialize_information( + &TestClass, + 1, /* the_api */ + 4, /* the_class */ + 0, /* maximum */ + 4, /* size */ + true, /* is_string */ + 10 /* maximum_name_length */ + #if defined(RTEMS_MULTIPROCESSING) + , + false, /* supports_global */ + NULL /* Objects_Thread_queue_Extract_callout extract */ + #endif + ); + + puts( "INIT - _Objects_Name_to_id_string - NULL name" ); + namerc = _Objects_Name_to_id_string( &TestClass, NULL, &id ); + if ( namerc != OBJECTS_INVALID_NAME ) { + printf( "ERROR - Status = %d\n", namerc ); + rtems_test_exit(0); + } + + puts( "INIT - _Objects_Name_to_id_string - NULL ID" ); + namerc = _Objects_Name_to_id_string( &TestClass, name, NULL ); + if ( namerc != OBJECTS_INVALID_ADDRESS ) { + printf( "ERROR - Status = %d\n", namerc ); + rtems_test_exit(0); + } + + puts( "INIT - _Objects_Name_to_id_string - name of non-existent object" ); + strcpy( name, "NOT FOUND" ); + namerc = _Objects_Name_to_id_string( &TestClass, name, &id ); + if ( namerc != OBJECTS_INVALID_NAME ) { + printf( "ERROR - Status = %d\n", namerc ); + rtems_test_exit(0); + } + + puts( "*** END OF POSIX OBJECT 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_TASKS 1 +#define CONFIGURE_RTEMS_INIT_TASKS_TABLE + +#define CONFIGURE_INIT +#include <rtems/confdefs.h> + +/* global variables */ diff --git a/testsuites/psxtests/psxobj01/psxobj01.doc b/testsuites/psxtests/psxobj01/psxobj01.doc new file mode 100644 index 0000000000..73a8991e17 --- /dev/null +++ b/testsuites/psxtests/psxobj01/psxobj01.doc @@ -0,0 +1,26 @@ +# +# $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: psxobj01 + +directives: + + NOTE: This test specifically calls directly into the SuperCore to + exercise a routine only used by the POSIX API. + _Objects_Name_to_id_string + +concepts: + ++ Verify error conditions in _Objects_Name_to_id_string that are + difficult or impossible to impossible to reach from the POSIX + APIs that use it. diff --git a/testsuites/psxtests/psxobj01/psxobj01.scn b/testsuites/psxtests/psxobj01/psxobj01.scn new file mode 100644 index 0000000000..e0ffd7b5f8 --- /dev/null +++ b/testsuites/psxtests/psxobj01/psxobj01.scn @@ -0,0 +1,5 @@ +*** POSIX OBJECT TEST 1 *** +INIT - _Objects_Name_to_id_string - NULL name +INIT - _Objects_Name_to_id_string - NULL ID +INIT - _Objects_Name_to_id_string - name of non-existent object +*** END OF POSIX OBJECT TEST 1 *** |