--- /dev/null
+/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
+/*
+ *
+ * (C) 2001 by Argonne National Laboratory.
+ * See COPYRIGHT in top-level directory.
+ */
+#ifndef MPITEST_H_INCLUDED
+#define MPITEST_H_INCLUDED
+
+#include "mpitestconf.h"
+
+/*
+ * Init and finalize test
+ */
+void MTest_Init( int *, char *** );
+void MTest_Init_thread( int *, char ***, int, int * );
+void MTest_Finalize( int );
+void MTestPrintError( int );
+void MTestPrintErrorMsg( const char [], int );
+void MTestPrintfMsg( int, const char [], ... );
+void MTestError( const char [] );
+int MTestReturnValue( int );
+
+/*
+ * Utilities
+ */
+void MTestSleep( int );
+
+/*
+ * This structure contains the information used to test datatypes
+ * buf is set to null when an MTestDatatype is created; the
+ * InitBuf routine will allocate (if necessary) and initialize
+ * the data. InitBuf may be called multiple times (this is particularly
+ * important for recv bufs), in which case the buffer will only
+ * be allocated if it has not already been created.
+ */
+typedef struct _MTestDatatype {
+ MPI_Datatype datatype;
+ void *buf; /* buffer to use in communication */
+ int count; /* count to use for this datatype */
+ int isBasic; /* true if the type is predefined */
+ int printErrors; /* true if errors should be printed
+ (used by the CheckBuf routines) */
+ /* The following is optional data that is used by some of
+ the derived datatypes */
+ int stride, nelm, blksize, *index;
+ /* stride, nelm, and blksize are in bytes */
+ int *displs, basesize;
+ /* displacements are in multiples of base type; basesize is the
+ size of that type*/
+ void *(*InitBuf)( struct _MTestDatatype * );
+ void *(*FreeBuf)( struct _MTestDatatype * );
+ int (*CheckBuf)( struct _MTestDatatype * );
+} MTestDatatype;
+
+int MTestCheckRecv( MPI_Status *, MTestDatatype * );
+int MTestGetDatatypes( MTestDatatype *, MTestDatatype *, int );
+void MTestResetDatatypes( void );
+void MTestFreeDatatype( MTestDatatype * );
+const char *MTestGetDatatypeName( MTestDatatype * );
+int MTestGetDatatypeIndex( void );
+
+int MTestGetIntracomm( MPI_Comm *, int );
+int MTestGetIntracommGeneral( MPI_Comm *, int, int );
+int MTestGetIntercomm( MPI_Comm *, int *, int );
+int MTestGetComm( MPI_Comm *, int );
+const char *MTestGetIntracommName( void );
+const char *MTestGetIntercommName( void );
+void MTestFreeComm( MPI_Comm * );
+
+#ifdef HAVE_MPI_WIN_CREATE
+int MTestGetWin( MPI_Win *, int );
+const char *MTestGetWinName( void );
+void MTestFreeWin( MPI_Win * );
+#endif
+
+/* These macros permit overrides via:
+ * make CPPFLAGS='-DMTEST_MPI_VERSION=X -DMTEST_MPI_SUBVERSION=Y'
+ * where X and Y are the major and minor versions of the MPI standard that is
+ * being tested. The override should work similarly if added to the CPPFLAGS at
+ * configure time. */
+#ifndef MTEST_MPI_VERSION
+#define MTEST_MPI_VERSION MPI_VERSION
+#endif
+#ifndef MTEST_MPI_SUBVERSION
+#define MTEST_MPI_SUBVERSION MPI_SUBVERSION
+#endif
+
+/* Makes it easier to conditionally compile test code for a particular minimum
+ * version of the MPI Standard. Right now there is only a MIN flavor but it
+ * would be easy to add MAX or EXACT flavors if they become necessary at some
+ * point. Example usage:
+ ------8<-------
+#if MTEST_HAVE_MIN_MPI_VERSION(2,2)
+... test for some feature that is only available in MPI-2.2 or later ...
+#endif
+ ------8<-------
+ */
+#define MTEST_HAVE_MIN_MPI_VERSION(major_,minor_) \
+ ((MTEST_MPI_VERSION == (major_) && MTEST_MPI_SUBVERSION >= (minor_)) || \
+ (MTEST_MPI_VERSION > (major_)))
+
+#endif
--- /dev/null
+/* include/mpitestconf.h. Generated from mpitestconf.h.in by configure. */
+/* include/mpitestconf.h.in. Generated from configure.ac by autoheader. */
+
+/* -*- Mode: C; c-basic-offset:4 ; -*- */
+/*
+ * (C) 2001 by Argonne National Laboratory.
+ * See COPYRIGHT in top-level directory.
+ */
+#ifndef MPITESTCONF_H_INCLUDED
+#define MPITESTCONF_H_INCLUDED
+
+
+/* Fortran names are lowercase with no trailing underscore */
+/* #undef F77_NAME_LOWER */
+
+/* Fortran names are lowercase with two trailing underscores */
+#define F77_NAME_LOWER_2USCORE 1
+
+/* Fortran names are lowercase with two trailing underscores in stdcall */
+/* #undef F77_NAME_LOWER_2USCORE_STDCALL */
+
+/* Fortran names are lowercase with no trailing underscore in stdcall */
+/* #undef F77_NAME_LOWER_STDCALL */
+
+/* Fortran names are lowercase with one trailing underscore */
+/* #undef F77_NAME_LOWER_USCORE */
+
+/* Fortran names are lowercase with one trailing underscore in stdcall */
+/* #undef F77_NAME_LOWER_USCORE_STDCALL */
+
+/* Fortran names preserve the original case */
+/* #undef F77_NAME_MIXED */
+
+/* Fortran names preserve the original case in stdcall */
+/* #undef F77_NAME_MIXED_STDCALL */
+
+/* Fortran names preserve the original case with one trailing underscore */
+/* #undef F77_NAME_MIXED_USCORE */
+
+/* Fortran names preserve the original case with one trailing underscore in
+ stdcall */
+/* #undef F77_NAME_MIXED_USCORE_STDCALL */
+
+/* Fortran names are uppercase */
+/* #undef F77_NAME_UPPER */
+
+/* Fortran names are uppercase in stdcall */
+/* #undef F77_NAME_UPPER_STDCALL */
+
+/* Define to 1 if the system has the type `double _Complex'. */
+#define HAVE_DOUBLE__COMPLEX 1
+
+/* Define to 1 if the system has the type `float _Complex'. */
+#define HAVE_FLOAT__COMPLEX 1
+
+/* Define if Fortran is supported */
+//#define HAVE_FORTRAN_BINDING 0
+
+/* Define to 1 if you have the `getrusage' function. */
+#define HAVE_GETRUSAGE 1
+
+/* Define if struct hostent contains h_addr_list */
+#define HAVE_H_ADDR_LIST 1
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#define HAVE_INTTYPES_H 1
+
+/* Define if iostream is available */
+#define HAVE_IOSTREAM 1
+
+/* Define to 1 if you have the <iostream.h> header file. */
+/* #undef HAVE_IOSTREAM_H */
+
+/* Define if long double is supported */
+#define HAVE_LONG_DOUBLE 1
+
+/* Define to 1 if the system has the type `long double _Complex'. */
+#define HAVE_LONG_DOUBLE__COMPLEX 1
+
+/* Define if compiler supports long long */
+#define HAVE_LONG_LONG 1
+
+/* Define to 1 if you have the <memory.h> header file. */
+#define HAVE_MEMORY_H 1
+
+/* Define if MPI_2COMPLEX is available */
+/* #undef HAVE_MPI_2COMPLEX */
+
+/* Define if MPI_2DOUBLE_COMPLEX is available */
+/* #undef HAVE_MPI_2DOUBLE_COMPLEX */
+
+/* Define to 1 if you have the `MPI_Init_thread' function. */
+/* #undef HAVE_MPI_INIT_THREAD */
+
+/* Define if MPI_INTEGER16 is available */
+/* #undef HAVE_MPI_INTEGER16 */
+
+/* Define if MPI-IO (really ROMIO) is included */
+//#define HAVE_MPI_IO 1
+
+/* Define if Dynamic Process functionality is available */
+#define HAVE_MPI_SPAWN 1
+
+/* Define if MPI_Win_create is available */
+//#define HAVE_MPI_WIN_CREATE 1
+
+/* define if the compiler implements namespaces */
+#define HAVE_NAMESPACES /**/
+
+/* define if the compiler implements namespace std */
+#define HAVE_NAMESPACE_STD /**/
+
+/* Define to 1 if you have the `pthread_barrier_init' function. */
+/* #undef HAVE_PTHREAD_BARRIER_INIT */
+
+/* Define to 1 if you have the `pthread_barrier_wait' function. */
+/* #undef HAVE_PTHREAD_BARRIER_WAIT */
+
+/* Define to 1 if you have the `pthread_create' function. */
+/* #undef HAVE_PTHREAD_CREATE */
+
+/* Define to 1 if you have the <pthread.h> header file. */
+/* #undef HAVE_PTHREAD_H */
+
+/* Define to 1 if you have the `pthread_yield' function. */
+/* #undef HAVE_PTHREAD_YIELD */
+
+/* Define to 1 if you have the <stdarg.h> header file. */
+#define HAVE_STDARG_H 1
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#define HAVE_STDINT_H 1
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#define HAVE_STDLIB_H 1
+
+/* Define to 1 if you have the <strings.h> header file. */
+#define HAVE_STRINGS_H 1
+
+/* Define to 1 if you have the <string.h> header file. */
+#define HAVE_STRING_H 1
+
+/* Define to 1 if you have the <sys/resource.h> header file. */
+#define HAVE_SYS_RESOURCE_H 1
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#define HAVE_SYS_STAT_H 1
+
+/* Define to 1 if you have the <sys/time.h> header file. */
+#define HAVE_SYS_TIME_H 1
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#define HAVE_SYS_TYPES_H 1
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#define HAVE_UNISTD_H 1
+
+/* Define to 1 if the system has the type `_Bool'. */
+#define HAVE__BOOL 1
+
+/* Define if MPI IO uses MPI_Request */
+#define MPIO_USES_MPI_REQUEST /**/
+
+/* Name of package */
+#define PACKAGE "mpich-testsuite"
+
+/* Define to the address where bug reports for this package should be sent. */
+#define PACKAGE_BUGREPORT ""
+
+/* Define to the full name of this package. */
+#define PACKAGE_NAME "mpich-testsuite"
+
+/* Define to the full name and version of this package. */
+#define PACKAGE_STRING "mpich-testsuite 1.2"
+
+/* Define to the one symbol short name of this package. */
+#define PACKAGE_TARNAME "mpich-testsuite"
+
+/* Define to the home page for this package. */
+#define PACKAGE_URL ""
+
+/* Define to the version of this package. */
+#define PACKAGE_VERSION "1.2"
+
+/* POINTERINT_t is a pointer-sized integer */
+#define POINTERINT_t int
+
+/* The size of `int', as computed by sizeof. */
+#define SIZEOF_INT
+
+/* The size of `long', as computed by sizeof. */
+#define SIZEOF_LONG
+
+/* The size of `long long', as computed by sizeof. */
+#define SIZEOF_LONG_LONG
+
+/* The size of `MPI_Offset', as computed by sizeof. */
+#define SIZEOF_MPI_OFFSET
+
+/* The size of `short', as computed by sizeof. */
+#define SIZEOF_SHORT
+
+/* The size of `void *', as computed by sizeof. */
+#define SIZEOF_VOID_P
+
+/* Define calling convention */
+#define STDCALL
+
+/* Define to 1 if you have the ANSI C header files. */
+#define STDC_HEADERS 1
+
+/* Define if tests with long double complex should be included */
+#define USE_LONG_DOUBLE_COMPLEX 1
+
+/* Define if only operations defined in MPI should be tested */
+/* #undef USE_STRICT_MPI */
+
+/* Version number of package */
+#define VERSION "1.2"
+
+/* Define for Solaris 2.5.1 so the uint32_t typedef from <sys/synch.h>,
+ <pthread.h>, or <semaphore.h> is not used. If the typedef were allowed, the
+ #define below would cause a syntax error. */
+/* #undef _UINT32_T */
+
+/* Define for Solaris 2.5.1 so the uint64_t typedef from <sys/synch.h>,
+ <pthread.h>, or <semaphore.h> is not used. If the typedef were allowed, the
+ #define below would cause a syntax error. */
+/* #undef _UINT64_T */
+
+/* Define for Solaris 2.5.1 so the uint8_t typedef from <sys/synch.h>,
+ <pthread.h>, or <semaphore.h> is not used. If the typedef were allowed, the
+ #define below would cause a syntax error. */
+/* #undef _UINT8_T */
+
+/* Define to empty if `const' does not conform to ANSI C. */
+/* #undef const */
+
+/* Define to the type of a signed integer type of width exactly 16 bits if
+ such a type exists and the standard includes do not define it. */
+/* #undef int16_t */
+
+/* Define to the type of a signed integer type of width exactly 32 bits if
+ such a type exists and the standard includes do not define it. */
+/* #undef int32_t */
+
+/* Define to the type of a signed integer type of width exactly 64 bits if
+ such a type exists and the standard includes do not define it. */
+/* #undef int64_t */
+
+/* Define to the type of a signed integer type of width exactly 8 bits if such
+ a type exists and the standard includes do not define it. */
+/* #undef int8_t */
+
+/* Define to the equivalent of the C99 'restrict' keyword, or to
+ nothing if this is not supported. Do not define if restrict is
+ supported directly. */
+#define restrict __restrict
+/* Work around a bug in Sun C++: it does not support _Restrict or
+ __restrict__, even though the corresponding Sun C compiler ends up with
+ "#define restrict _Restrict" or "#define restrict __restrict__" in the
+ previous line. Perhaps some future version of Sun C++ will work with
+ restrict; if so, hopefully it defines __RESTRICT like Sun C does. */
+#if defined __SUNPRO_CC && !defined __RESTRICT
+# define _Restrict
+# define __restrict__
+#endif
+
+/* Define to the type of an unsigned integer type of width exactly 16 bits if
+ such a type exists and the standard includes do not define it. */
+/* #undef uint16_t */
+
+/* Define to the type of an unsigned integer type of width exactly 32 bits if
+ such a type exists and the standard includes do not define it. */
+/* #undef uint32_t */
+
+/* Define to the type of an unsigned integer type of width exactly 64 bits if
+ such a type exists and the standard includes do not define it. */
+/* #undef uint64_t */
+
+/* Define to the type of an unsigned integer type of width exactly 8 bits if
+ such a type exists and the standard includes do not define it. */
+/* #undef uint8_t */
+
+#endif