summaryrefslogtreecommitdiffstats
path: root/testsuites/psxtests/psxobj01
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>2009-06-12 15:17:49 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>2009-06-12 15:17:49 +0000
commitc0ae2676b52885826afa4f0478659ddfc4fc4f4a (patch)
treea31f6e96b23c21e623d1ae796a78236bccf7358b /testsuites/psxtests/psxobj01
parent2009-06-12 Joel Sherrill <joel.sherrill@OARcorp.com> (diff)
downloadrtems-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/.cvsignore2
-rw-r--r--testsuites/psxtests/psxobj01/Makefile.am29
-rw-r--r--testsuites/psxtests/psxobj01/init.c80
-rw-r--r--testsuites/psxtests/psxobj01/psxobj01.doc26
-rw-r--r--testsuites/psxtests/psxobj01/psxobj01.scn5
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 ***