summaryrefslogtreecommitdiffstats
path: root/testsuites/psxtests/psxsysconf/init.c
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/psxsysconf/init.c
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 '')
-rw-r--r--testsuites/psxtests/psxsysconf/init.c68
1 files changed, 68 insertions, 0 deletions
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 */
+}