diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 2007-12-17 17:57:47 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 2007-12-17 17:57:47 +0000 |
commit | 901a913b700df1ab4a14d88e10d5a7a7a752ca8c (patch) | |
tree | d2d82675fc19bafc9285cb222e3611c2a840ac46 /testsuites/psxtests/psxsysconf | |
parent | 2007-12-17 Joel Sherrill <joel.sherrill@OARcorp.com> (diff) | |
download | rtems-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/psxsysconf')
-rw-r--r-- | testsuites/psxtests/psxsysconf/.cvsignore | 2 | ||||
-rw-r--r-- | testsuites/psxtests/psxsysconf/Makefile.am | 28 | ||||
-rw-r--r-- | testsuites/psxtests/psxsysconf/init.c | 68 | ||||
-rw-r--r-- | testsuites/psxtests/psxsysconf/psxsysconf.scn | 9 | ||||
-rw-r--r-- | testsuites/psxtests/psxsysconf/system.h | 39 |
5 files changed, 146 insertions, 0 deletions
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 */ |