From 901a913b700df1ab4a14d88e10d5a7a7a752ca8c Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Mon, 17 Dec 2007 17:57:47 +0000 Subject: 2007-12-17 Joel Sherrill * Makefile.am, configure.ac: Add test for sysconf(). * psxsysconf/.cvsignore, psxsysconf/Makefile.am, psxsysconf/init.c, psxsysconf/psxsysconf.scn, psxsysconf/system.h: New files. --- testsuites/psxtests/ChangeLog | 6 +++ testsuites/psxtests/Makefile.am | 2 +- testsuites/psxtests/configure.ac | 1 + testsuites/psxtests/psxsysconf/.cvsignore | 2 + testsuites/psxtests/psxsysconf/Makefile.am | 28 +++++++++++ testsuites/psxtests/psxsysconf/init.c | 68 +++++++++++++++++++++++++++ testsuites/psxtests/psxsysconf/psxsysconf.scn | 9 ++++ testsuites/psxtests/psxsysconf/system.h | 39 +++++++++++++++ 8 files changed, 154 insertions(+), 1 deletion(-) create mode 100644 testsuites/psxtests/psxsysconf/.cvsignore create mode 100644 testsuites/psxtests/psxsysconf/Makefile.am create mode 100644 testsuites/psxtests/psxsysconf/init.c create mode 100644 testsuites/psxtests/psxsysconf/psxsysconf.scn create mode 100644 testsuites/psxtests/psxsysconf/system.h (limited to 'testsuites/psxtests') diff --git a/testsuites/psxtests/ChangeLog b/testsuites/psxtests/ChangeLog index f5c4f4a379..0aca088a0a 100644 --- a/testsuites/psxtests/ChangeLog +++ b/testsuites/psxtests/ChangeLog @@ -1,3 +1,9 @@ +2007-12-17 Joel Sherrill + + * 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 * psx01/init.c, psx01/psx01.scn: Add more test cases for 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 +#include +#include + +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 +#include +#include + +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 + +/* global variables */ + +/* end of include file */ -- cgit v1.2.3