summaryrefslogtreecommitdiffstats
path: root/testsuites/psxtests
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>2007-12-17 17:57:47 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>2007-12-17 17:57:47 +0000
commit901a913b700df1ab4a14d88e10d5a7a7a752ca8c (patch)
treed2d82675fc19bafc9285cb222e3611c2a840ac46 /testsuites/psxtests
parent2007-12-17 Joel Sherrill <joel.sherrill@OARcorp.com> (diff)
downloadrtems-901a913b700df1ab4a14d88e10d5a7a7a752ca8c.tar.bz2
2007-12-17 Joel Sherrill <joel.sherrill@OARcorp.com>
* Makefile.am, configure.ac: Add test for sysconf(). * psxsysconf/.cvsignore, psxsysconf/Makefile.am, psxsysconf/init.c, psxsysconf/psxsysconf.scn, psxsysconf/system.h: New files.
Diffstat (limited to 'testsuites/psxtests')
-rw-r--r--testsuites/psxtests/ChangeLog6
-rw-r--r--testsuites/psxtests/Makefile.am2
-rw-r--r--testsuites/psxtests/configure.ac1
-rw-r--r--testsuites/psxtests/psxsysconf/.cvsignore2
-rw-r--r--testsuites/psxtests/psxsysconf/Makefile.am28
-rw-r--r--testsuites/psxtests/psxsysconf/init.c68
-rw-r--r--testsuites/psxtests/psxsysconf/psxsysconf.scn9
-rw-r--r--testsuites/psxtests/psxsysconf/system.h39
8 files changed, 154 insertions, 1 deletions
diff --git a/testsuites/psxtests/ChangeLog b/testsuites/psxtests/ChangeLog
index f5c4f4a379..0aca088a0a 100644
--- a/testsuites/psxtests/ChangeLog
+++ b/testsuites/psxtests/ChangeLog
@@ -1,5 +1,11 @@
2007-12-17 Joel Sherrill <joel.sherrill@OARcorp.com>
+ * Makefile.am, configure.ac: Add test for sysconf().
+ * psxsysconf/.cvsignore, psxsysconf/Makefile.am, psxsysconf/init.c,
+ psxsysconf/psxsysconf.scn, psxsysconf/system.h: New files.
+
+2007-12-17 Joel Sherrill <joel.sherrill@OARcorp.com>
+
* psx01/init.c, psx01/psx01.scn: Add more test cases for
sched_rr_get_interval() and sched_get_priority_max().
diff --git a/testsuites/psxtests/Makefile.am b/testsuites/psxtests/Makefile.am
index df42842fb0..ec173d0923 100644
--- a/testsuites/psxtests/Makefile.am
+++ b/testsuites/psxtests/Makefile.am
@@ -6,7 +6,7 @@ ACLOCAL_AMFLAGS = -I ../aclocal
SUBDIRS = psxhdrs psx01 psx02 psx03 psx04 psx05 psx06 psx07 psx08 psx09 \
psx10 psx11 psx12 psxtime psxtimer01 psxtimer02 psxcancel psxbarrier01 \
- psxmsgq01 psxrwlock01 psxsem01 psxspin01 psxenosys
+ psxmsgq01 psxrwlock01 psxsem01 psxspin01 psxenosys psxsysconf
## File IO tests
SUBDIRS += psxfile01 psxreaddir psxstat psxmount psx13 psxchroot01
diff --git a/testsuites/psxtests/configure.ac b/testsuites/psxtests/configure.ac
index 2c57875f01..e2946bafb7 100644
--- a/testsuites/psxtests/configure.ac
+++ b/testsuites/psxtests/configure.ac
@@ -54,6 +54,7 @@ psxrwlock01/Makefile
psxsem01/Makefile
psxspin01/Makefile
psxstat/Makefile
+psxsysconf/Makefile
psxtime/Makefile
psxtimer01/Makefile
psxtimer02/Makefile
diff --git a/testsuites/psxtests/psxsysconf/.cvsignore b/testsuites/psxtests/psxsysconf/.cvsignore
new file mode 100644
index 0000000000..282522db03
--- /dev/null
+++ b/testsuites/psxtests/psxsysconf/.cvsignore
@@ -0,0 +1,2 @@
+Makefile
+Makefile.in
diff --git a/testsuites/psxtests/psxsysconf/Makefile.am b/testsuites/psxtests/psxsysconf/Makefile.am
new file mode 100644
index 0000000000..9872d05c50
--- /dev/null
+++ b/testsuites/psxtests/psxsysconf/Makefile.am
@@ -0,0 +1,28 @@
+##
+## $Id$
+##
+
+MANAGERS = all
+
+rtems_tests_PROGRAMS = psxsysconf.exe
+psxsysconf_exe_SOURCES = init.c system.h ../include/pmacros.h
+
+dist_rtems_tests_DATA = psxsysconf.scn
+
+include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
+include $(top_srcdir)/../automake/compile.am
+include $(top_srcdir)/../automake/leaf.am
+
+psxsysconf_exe_LDADD = $(MANAGERS_NOT_WANTED:%=$(PROJECT_LIB)/no-%.rel)
+
+AM_CPPFLAGS += -I$(top_srcdir)/include
+AM_CPPFLAGS += -I$(top_srcdir)/../support/include
+
+LINK_OBJS = $(psxsysconf_exe_OBJECTS) $(psxsysconf_exe_LDADD)
+LINK_LIBS = $(psxsysconf_exe_LDLIBS)
+
+psxsysconf.exe$(EXEEXT): $(psxsysconf_exe_OBJECTS) $(psxsysconf_exe_DEPENDENCIES)
+ @rm -f psxsysconf.exe$(EXEEXT)
+ $(make-exe)
+
+include $(top_srcdir)/../automake/local.am
diff --git a/testsuites/psxtests/psxsysconf/init.c b/testsuites/psxtests/psxsysconf/init.c
new file mode 100644
index 0000000000..950f208f01
--- /dev/null
+++ b/testsuites/psxtests/psxsysconf/init.c
@@ -0,0 +1,68 @@
+/*
+ * COPYRIGHT (c) 1989-2007.
+ * 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 CONFIGURE_INIT
+#include "system.h"
+#include "tmacros.h"
+
+#include <unistd.h>
+#include <stdint.h>
+#include <errno.h>
+
+void *POSIX_Init(
+ void *argument
+)
+{
+ long sc;
+
+ puts( "\n\n*** POSIX TEST -- SYSCONF ***" );
+
+ puts( "sysconf -- bad configuration parameter - negative" );
+ sc = sysconf( -1 );
+ fatal_posix_service_status_errno( sc, EINVAL, "bad conf name" );
+
+ puts( "sysconf -- bad configuration parameter - too large" );
+ sc = sysconf( LONG_MAX );
+ fatal_posix_service_status_errno( sc, EINVAL, "bad conf name" );
+
+ sc = sysconf( _SC_CLK_TCK );
+ printf( "sysconf - _SC_CLK_TCK=%d\n", sc );
+ if ( sc == -1 )
+ rtems_test_exit(0);
+
+ sc = sysconf( _SC_OPEN_MAX );
+ printf( "sysconf - _SC_OPEN_MAX=%d\n", sc );
+ if ( sc == -1 )
+ rtems_test_exit(0);
+
+ sc = sysconf( _SC_GETPW_R_SIZE_MAX );
+ printf( "sysconf - _SC_GETPW_R_SIZE_MAX=%d\n", sc );
+ if ( sc == -1 )
+ rtems_test_exit(0);
+
+ sc = sysconf( _SC_PAGESIZE );
+ printf( "sysconf - _SC_PAGESIZE=%d\n", sc );
+ if ( sc == -1 )
+ rtems_test_exit(0);
+
+#if defined(__sparc__)
+ /* Solaris _SC_STACK_PROT - 515 */
+ sc = sysconf( _SC_PAGESIZE );
+ printf( "sysconf - (SPARC only) _SC_STACK_PROT=%d\n", sc );
+ if ( sc == -1 )
+ rtems_test_exit(0);
+#endif
+
+ puts( "*** END OF POSIX TEST SYSCONF ***" );
+ rtems_test_exit( 0 );
+
+ return NULL; /* just so the compiler thinks we returned something */
+}
diff --git a/testsuites/psxtests/psxsysconf/psxsysconf.scn b/testsuites/psxtests/psxsysconf/psxsysconf.scn
new file mode 100644
index 0000000000..990a92632f
--- /dev/null
+++ b/testsuites/psxtests/psxsysconf/psxsysconf.scn
@@ -0,0 +1,9 @@
+*** POSIX TEST -- SYSCONF ***
+sysconf -- bad configuration parameter - negative
+sysconf -- bad configuration parameter - too large
+sysconf - _SC_CLK_TCK=100
+sysconf - _SC_OPEN_MAX=3
+sysconf - _SC_GETPW_R_SIZE_MAX=1024
+sysconf - _SC_PAGESIZE=4096
+sysconf - (SPARC only) _SC_STACK_PROT=4096
+*** END OF POSIX TEST SYSCONF ***
diff --git a/testsuites/psxtests/psxsysconf/system.h b/testsuites/psxtests/psxsysconf/system.h
new file mode 100644
index 0000000000..9177b272bc
--- /dev/null
+++ b/testsuites/psxtests/psxsysconf/system.h
@@ -0,0 +1,39 @@
+/* system.h
+ *
+ * This include file contains information that is included in every
+ * function in the test set.
+ *
+ * COPYRIGHT (c) 1989-1999.
+ * 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$
+ */
+
+/* functions */
+
+#include <pmacros.h>
+#include <unistd.h>
+#include <errno.h>
+
+void *POSIX_Init(
+ void *argument
+);
+
+/* configuration information */
+
+#define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
+#define CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
+
+#define CONFIGURE_MAXIMUM_POSIX_THREADS 2
+
+#define CONFIGURE_POSIX_INIT_THREAD_TABLE
+
+#include <rtems/confdefs.h>
+
+/* global variables */
+
+/* end of include file */