Changeset 3648

Show
Ignore:
Timestamp:
12/08/08 12:27:43 (2 months ago)
Author:
jayesh
Message:

Merging -r 3565:3647 of /test/mpi from trunk

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • mpich2/branches/dev/NemesisOnWindows/test/mpi/README

    r3567 r3648  
    44For IBM MPI, where the compilation commands are not mpicc and mpif77 etc.: 
    55 
    6 ./configure --with-mpi CC=xlc MPICC=mpcc F77=xlf MPIF77=mpxlf CXX=xlC 
    7                        MPICXX=mpCC F90=xlf90 MPIF90=mpxlf90 --disable-spawn 
     6./configure --with-mpi CC=xlc MPICC=mpcc F77=xlf MPIF77=mpxlf CXX=xlC \ 
     7                       MPICXX=mpCC F90=xlf90 MPIF90=mpxlf90 --disable-spawn \ 
     8                       --enable-strictmpi 
     9 
     10(or the _r versions of the compilers) 
    811 
    912You may need to add MPI_SIZEOF_OFFSET=8 . 
  • mpich2/branches/dev/NemesisOnWindows/test/mpi/configure.in

    r3567 r3648  
    2222AH_BOTTOM([#endif]) 
    2323# This version is the version of the test suite. 
    24 VERSION=1.0 
     24# 1.0: Initial version (all versions) before independent release 
     25# 1.1: Initial version that is independent of MPICH2  11/08 
     26VERSION=1.1 
    2527AC_SUBST(VERSION) 
    2628dnl 
     
    6971[--enable-fast - Indicates that the MPI implementation may have been built for fastest operation, such as building without error checking.  Has the effect of --enable-checkerrors=no]) 
    7072AC_ARG_ENABLE(strictmpi, 
    71 [--enable-strictmpi - Only test for operations specifically defined by the MPI standard.  This turns off tests for some common extensions, including for combinations of predefined datatypes and predefined MPI_Op s.],enable_strictmpi=no) 
     73[--enable-strictmpi - Only test for operations specifically defined by the MPI standard.  This turns off tests for some common extensions, including for combinations of predefined datatypes and predefined MPI_Op s.],,enable_strictmpi=no) 
    7274 
    7375AC_ARG_WITH(mpi, 
     
    777779    if test -n "$BASEF90" ; then 
    778780        F90=$saveF90 
     781    fi 
     782 
     783    if test -f f77/init/checksizes.c ; then 
     784        cp f77/init/checksizes.c f90/init 
    779785    fi 
    780786fi 
  • mpich2/branches/dev/NemesisOnWindows/test/mpi/datatype/darray-pack.c

    r3567 r3648  
    3131{ 
    3232    int err, errs = 0; 
     33    int toterrs, rank; 
    3334 
    3435    MPI_Init(&argc, &argv); /* MPI-1.2 doesn't allow for MPI_Init(0,0) */ 
     
    5152 
    5253    /* print message and exit */ 
    53     if (errs) { 
    54         fprintf(stderr, "Found %d errors\n", errs); 
    55     } 
    56     else { 
    57         printf(" No Errors\n"); 
     54    /* Allow the use of more than one process - some MPI implementations 
     55       (including IBM's) check that the number of processes given to  
     56       Type_create_darray is no larger than MPI_COMM_WORLD */ 
     57    MPI_Reduce( &errs, &toterrs, 1, MPI_INT, MPI_SUM, 0, MPI_COMM_WORLD ); 
     58    MPI_Comm_rank( MPI_COMM_WORLD, &rank ); 
     59    if (rank == 0) { 
     60        if (toterrs) { 
     61            fprintf(stderr, "Found %d errors\n", toterrs); 
     62        } 
     63        else { 
     64            printf(" No Errors\n"); 
     65        } 
    5866    } 
    5967    MPI_Finalize(); 
  • mpich2/branches/dev/NemesisOnWindows/test/mpi/datatype/testlist

    r3140 r3648  
    2222subarray-pack 1 
    2323darray-pack 1 
     24darray-pack 9 
     25# darray-pack 72 
    2426pairtype-size-extent 1 
    2527simple-commit 1 
  • mpich2/branches/dev/NemesisOnWindows/test/mpi/f77/datatype/packef.f

    r3487 r3648  
    1414       integer packbuf(1000), pbufsize, intsize 
    1515       integer max_asizev 
    16        parameter (max_asizev = 2
     16       parameter (max_asizev = 3
    1717       include 'typeaints.h' 
    1818 
     
    112112       aintv(1) = pbufsize 
    113113       aintv(2) = 0 
     114       aintv(3) = 0 
     115C One MPI implementation failed to increment the position; instead,  
     116C it set the value with the amount of data packed in this call 
     117C We use aintv(3) to detect and report this specific error 
    114118       call mpi_pack_external( 'external32', inbuf, insize, MPI_INTEGER, 
    115119     &               packbuf, aintv(1), aintv(2), ierr ) 
     120       if (aintv(2) .le. aintv(3)) then 
     121            print *, ' Position decreased after pack of integer!' 
     122       endif 
     123       aintv(3) = aintv(2) 
    116124       call mpi_pack_external( 'external32', rbuf, rsize,  
    117125     &               MPI_DOUBLE_PRECISION, packbuf, aintv(1),  
    118126     &               aintv(2), ierr ) 
     127       if (aintv(2) .le. aintv(3)) then 
     128            print *, ' Position decreased after pack of real!' 
     129       endif 
     130       aintv(3) = aintv(2) 
    119131       call mpi_pack_external( 'external32', cbuf, csize,  
    120132     &               MPI_CHARACTER, packbuf, aintv(1),  
    121133     &               aintv(2), ierr ) 
     134       if (aintv(2) .le. aintv(3)) then 
     135            print *, ' Position decreased after pack of character!' 
     136       endif 
     137       aintv(3) = aintv(2) 
    122138       call mpi_pack_external( 'external32', inbuf2, insize2,  
    123139     &               MPI_INTEGER, 
    124140     &               packbuf, aintv(1), aintv(2), ierr ) 
     141       if (aintv(2) .le. aintv(3)) then 
     142            print *, ' Position decreased after pack of integer (2nd)!' 
     143       endif 
     144       aintv(3) = aintv(2) 
    125145C 
    126146C We could try sending this with MPI_BYTE... 
  • mpich2/branches/dev/NemesisOnWindows/test/mpi/f77/datatype/typenamef.f

    r3487 r3648  
    6969      endif 
    7070 
     71      call MPI_Type_get_name(MPI_2DOUBLE_PRECISION, name, namelen, ierr) 
     72      if (name(1:namelen) .ne. "MPI_2DOUBLE_PRECISION") then 
     73           errs = errs + 1 
     74           print *, "Expected MPI_2DOUBLE_PRECISION but got "// 
     75     &          name(1:namelen) 
     76      endif 
     77 
     78      call MPI_Type_get_name( MPI_2REAL, name, namelen, ierr ) 
     79      if (name(1:namelen) .ne. "MPI_2REAL") then 
     80           errs = errs + 1 
     81           print *, "Expected MPI_2REAL but got "//name(1:namelen) 
     82      endif 
     83 
    7184C 2DOUBLE_COMPLEX isn't in MPI 2.1 
    72 C      call MPI_Type_get_name(MPI_2DOUBLE_PRECISION, name, namelen, ierr
    73 C      if (name(1:namelen) .ne. "MPI_2DOUBLE_PRECISION") then 
     85C      call MPI_Type_get_name( MPI_2DOUBLE_COMPLEX, name, namelen, ierr
     86C      if (name(1:namelen) .ne. "MPI_2DOUBLE_COMPLEX") then 
    7487C           errs = errs + 1 
    75 C           print *, "Expected MPI_2DOUBLE_PRECISION but got "// 
     88C           print *, "Expected MPI_2DOUBLE_COMPLEX but got "// 
    7689C     &          name(1:namelen) 
    7790C      endif 
    78  
    79       call MPI_Type_get_name( MPI_2REAL, name, namelen, ierr ) 
    80       if (name(1:namelen) .ne. "MPI_2REAL") then 
    81            errs = errs + 1 
    82            print *, "Expected MPI_2REAL but got "//name(1:namelen) 
    83       endif 
    84  
    85       call MPI_Type_get_name( MPI_2DOUBLE_COMPLEX, name, namelen, ierr ) 
    86       if (name(1:namelen) .ne. "MPI_2DOUBLE_COMPLEX") then 
    87            errs = errs + 1 
    88            print *, "Expected MPI_2DOUBLE_COMPLEX but got "// 
    89      &          name(1:namelen) 
    90       endif 
    9191 
    9292      call MPI_Type_get_name( MPI_CHARACTER, name, namelen, ierr ) 
  • mpich2/branches/dev/NemesisOnWindows/test/mpi/f77/info/infotest2f.f

    r528 r3648  
    3939      call mpi_info_get_nkeys( i1, nkeys, ierr ) 
    4040      if (nkeys .ne. 6) then 
    41          print *, 'Number of keys should be 6, is ', nkeys 
     41         print *, ' Number of keys should be 6, is ', nkeys 
    4242      endif 
    4343      sumindex = 0 
     
    5959                  if (myvalue .ne. values(j)) then 
    6060                     errs = errs + 1 
    61                      print *, 'Value for ', mykey, ' not expected' 
     61                     print *, ' Value for ', mykey, ' not expected' 
    6262                  else 
    6363                     do ln=MPI_MAX_INFO_VAL,1,-1 
     
    6565                           if (vlen .ne. ln) then 
    6666                              errs = errs + 1 
    67                               print *, 'length is ', ln,  
     67                              print *, ' length is ', ln,  
    6868     &                          ' but valuelen gave ',  vlen,  
    6969     &                          ' for key ', mykey 
     
    8383      if (sumindex .ne. 21) then 
    8484         errs = errs + 1 
    85          print *, 'Not all keys found' 
     85         print *, ' Not all keys found' 
    8686      endif 
    8787C 
     
    100100         if (flag) then 
    101101            errs = errs + 1 
    102             print *, 'Found unexpected key ', keys(i) 
     102            print *, ' Found unexpected key ', keys(i) 
    103103         endif 
    104104         myvalue = 'A test' 
     
    107107         if (flag) then 
    108108            errs = errs + 1 
    109             print *, 'Found unexpected key in MPI_Info_get ', keys(i) 
     109            print *, ' Found unexpected key in MPI_Info_get ', keys(i) 
    110110         else  
    111111            if (myvalue .ne. 'A test') then 
    112112               errs = errs + 1 
    113                print *, 'Returned value overwritten, is now ', myvalue 
     113               print *, ' Returned value overwritten, is now ', myvalue 
    114114            endif 
    115115         endif 
     
    117117      enddo 
    118118      do i=3,6 
     119         myvalue = ' ' 
    119120         call mpi_info_get( i2, keys(i), MPI_MAX_INFO_VAL,  
    120121     &                      myvalue, flag, ierr ) 
    121          if (myvalue .ne. values(i)) then 
    122             errs = errs + 1 
    123             print *, 'Found wrong value (', myvalue, ') for key ',  
    124      &               keys(i) 
     122         if (.not. flag) then 
     123             errs = errs + 1 
     124             print *, ' Did not find key ', keys(i) 
     125         else  
     126            if (myvalue .ne. values(i)) then 
     127               errs = errs + 1 
     128               print *, ' Found wrong value (', myvalue, ') for key ',  
     129     &                  keys(i) 
     130            endif 
    125131         endif 
    126132      enddo 
  • mpich2/branches/dev/NemesisOnWindows/test/mpi/f77/io/miscfilef.f

    r100 r3648  
    3232C Create a file that we'll then query properties 
    3333      filename = "testfile.txt" 
    34       call mpi_file_open( MPI_COMM_WORLD, filename, MPI_MODE_CREATE + 
    35      $     MPI_MODE_RDWR, MPI_INFO_NULL, fh, ierr )  
     34      call mpi_file_open( MPI_COMM_WORLD, filename, MPI_MODE_CREATE +       & 
     35     &     MPI_MODE_RDWR, MPI_INFO_NULL, fh, ierr )  
    3636      if (ierr .ne. MPI_SUCCESS) then 
    3737         print *, "Unable to create file ", filename 
     
    4343         buf(i) = i 
    4444      enddo 
    45       call mpi_file_write( fh, buf, BUFSIZE, MPI_INTEGER, 
    46      $     MPI_STATUS_IGNORE, ierr )  
     45      call mpi_file_write( fh, buf, BUFSIZE, MPI_INTEGER,                & 
     46     &     MPI_STATUS_IGNORE, ierr )  
    4747      call MPI_File_sync( fh, ierr ) 
    4848C 
     
    6464      if (.not. atomicity) then 
    6565         errs = errs + 1 
    66          print *, " Atomicity was set to true but ", 
    67      $        "get_atomicity returned false"  
     66         print *, " Atomicity was set to true but ",                    & 
     67     &        "get_atomicity returned false"  
    6868      endif 
    6969      call MPI_File_set_atomicity( fh, .false., ierr ) 
     
    7979C All processes are getting the same view, with a 1000 byte offset 
    8080      offset = 1000 
    81       call mpi_file_set_view( fh, offset, MPI_INTEGER, newtype, "native" 
    82      $     , MPI_INFO_NULL, ierr )   
    83  
    84       call mpi_file_get_view( fh, offset, etype, filetype, datarep, ierr 
    85      $     )  
     81      call mpi_file_set_view( fh, offset, MPI_INTEGER, newtype, "native"  & 
     82     &     , MPI_INFO_NULL, ierr )   
     83 
     84      call mpi_file_get_view( fh, offset, etype, filetype, datarep, ierr  & 
     85     &     )  
    8686      if (offset .ne. 1000) then 
    8787         print *, " displacement was ", offset, ", expected 1000" 
     
    8989      endif 
    9090      if (datarep .ne. "native") then 
    91          print *, " data representation form was ", datarep, 
    92      $        ", expected native"  
     91         print *, " data representation form was ", datarep,              & 
     92     &        ", expected native"  
    9393         errs = errs + 1 
    9494      endif 
     
    103103      if (disp .ne. 1000 + 30 * integer_size) then 
    104104         errs = errs + 1 
    105          print *, " (offset20)Byte offset = ", disp, ", should be ", 1000+20 
    106      $        *integer_size  
     105         print *, " (offset20)Byte offset = ", disp, ", should be ",         & 
     106     &            1000+20*integer_size  
    107107      endif 
    108108C 
     
    112112      call mpi_type_size( etype, type_size, ierr ) 
    113113      if (type_size .ne. integer_size) then 
    114          print *, " Etype has size ", type_size, ", but should be ", 
    115      $        integer_size  
     114         print *, " Etype has size ", type_size, ", but should be ",      & 
     115     &        integer_size  
    116116         errs = errs + 1 
    117117      endif 
    118118      call mpi_type_size( filetype, type_size, ierr ) 
    119119      if (type_size .ne. 10*20*integer_size) then 
    120          print *, " filetype has size ", type_size, ", but should be ", 
    121      $        10*20*integer_size  
     120         print *, " filetype has size ", type_size, ", but should be ",   & 
     121     &        10*20*integer_size  
    122122         errs = errs + 1 
    123123      endif 
     
    145145      if (offset .ne. 1000+25*integer_size) then 
    146146         errs = errs + 1 
    147          print *, " File size is ", offset, ", should be ", 1000 + 25 
    148      $        * integer_size  
     147         print *, " File size is ", offset, ", should be ", 1000 + 25     & 
     148     &        * integer_size  
    149149      endif 
    150150C 
     
    159159         errs = errs + 1 
    160160         print *, "File pointer position = ", disp, ", should be 20" 
     161         if (disp .eq. 25) then 
     162C See MPI 2.1, section 13.4, page 399, lines 7-8. The disp must be 
     163C relative to the current view, in the etype units of the current view 
     164             print *, " MPI implementation failed to position the "//      & 
     165     &                "displacement within the current file view" 
     166         endif 
     167C Make sure we use the expected position in the next step. 
     168         disp = 20 
    161169      endif 
    162170      call mpi_file_get_byte_offset(fh, disp, offset, ierr ) 
    163171      if (offset .ne. 1000+30*integer_size) then 
    164172         errs = errs + 1 
    165          print *, " (seek)Byte offset = ", offset, ", should be ", 1000 
    166      $        +30*integer_size   
     173         print *, " (seek)Byte offset = ", offset, ", should be ", 1000     & 
     174     &        +30*integer_size   
    167175      endif 
    168176 
     
    175183      if (offset .ne. 1000) then 
    176184         errs = errs + 1 
    177          print *, " File pointer position in bytes = ", offset, 
    178      $        ", should be 1000" 
     185         print *, " File pointer position in bytes = ", offset,           & 
     186     &        ", should be 1000" 
    179187      endif 
    180188       
     
    185193      if (offset .lt. 8192) then 
    186194         errs = errs + 1 
    187          print *, " Size after preallocate is ", offset, 
    188      $        ", should be at least 8192"  
     195         print *, " Size after preallocate is ", offset,                  & 
     196     &        ", should be at least 8192"  
    189197      endif 
    190198      call mpi_file_close( fh, ierr ) 
     
    197205C 
    198206C Get error summary 
    199       call MPI_Allreduce( errs, toterrs, 1, MPI_INTEGER, MPI_SUM, 
    200      $     MPI_COMM_WORLD, ierr ) 
     207      call MPI_Allreduce( errs, toterrs, 1, MPI_INTEGER, MPI_SUM,         & 
     208     &     MPI_COMM_WORLD, ierr ) 
    201209      if (rank .eq. 0) then 
    202210         if( toterrs .gt. 0) then 
  • mpich2/branches/dev/NemesisOnWindows/test/mpi/f77/pt2pt/greqf.f

    r100 r3648  
    2323      integer value, ierr 
    2424      include 'attr1aints.h' 
     25      integer freefncall 
     26      common /fnccalls/ freefncall 
     27C 
     28C   For testing purposes, the following print can be used to check whether 
     29C   the free_fn is called 
     30C      print *, 'Free_fn called' 
    2531C 
    2632      extrastate = extrastate - 1 
     
    6066       external query_fn, free_fn, cancel_fn 
    6167       include 'attr1aints.h' 
     68       integer freefncall 
     69       common /fnccalls/ freefncall 
    6270 
    6371       errs = 0 
     72       freefncall = 0 
    6473        
    6574       call MTest_Init( ierr ) 
     
    8695       if (extrastate .ne. 0) then 
    8796          errs = errs + 1 
    88           print *, 'Free routine not called' // 
    89      &         ', or not called with extra_data' 
    90           print *, 'extrastate = ', extrastate 
     97          if (freefncall .eq. 0) then 
     98              print *, 'Free routine not called' 
     99          else  
     100              print *, 'Free routine did not update extra_data' 
     101              print *, 'extrastate = ', extrastate 
     102          endif 
    91103       endif 
    92104C 
  • mpich2/branches/dev/NemesisOnWindows/test/mpi/f90/f90types/createf90types.c

    r100 r3648  
    3232        if (combiner != f90kind) { 
    3333            errs++; 
    34             printf( "Wrong combiner type (got %d) for %s\n", combiner, str ); 
     34            printf( "Wrong combiner type (got %d, should be %d) for %s\n",  
     35                    combiner, f90kind, str ); 
    3536        } 
    3637        else { 
    3738            int          parms[2]; 
    3839            MPI_Datatype outtype; 
     40            parms[0] = 0; 
     41            parms[1] = 0; 
    3942 
    4043            if (ndtypes != 0) { 
     
    4851                if (nints != 2) { 
    4952                    errs++; 
    50                     printf( "Returned %d integer values, 2 expected\n",  
    51                             nints ); 
     53                    printf( "Returned %d integer values, 2 expected for %s\n",  
     54                            nints, str ); 
    5255                } 
    5356                if (parms[0] != p || parms[1] != r) { 
    5457                    errs++; 
    55                     printf( "Returned (p=%d,r=%d); expected (p=%d,r=%d)\n", 
    56                             parms[0], parms[1], p, r ); 
     58                    printf( "Returned (p=%d,r=%d); expected (p=%d,r=%d) for %s\n", 
     59                            parms[0], parms[1], p, r, str ); 
    5760                } 
    5861                break; 
     
    6063                if (nints != 1) { 
    6164                    errs++; 
    62                     printf( "Returned %d integer values, 1 expected\n",  
    63                             nints ); 
     65                    printf( "Returned %d integer values, 1 expected for %s\n",  
     66                            nints, str ); 
    6467                } 
    6568                if (parms[0] != p) { 
    6669                    errs++; 
    67                     printf( "Returned (p=%d); expected (p=%d)\n", 
    68                             parms[0], p ); 
     70                    printf( "Returned (p=%d); expected (p=%d) for %s\n", 
     71                            parms[0], p, str ); 
    6972                } 
    7073                break; 
    7174            default: 
    7275                errs++; 
    73                 printf( "Unrecognized combiner\n" ); 
     76                printf( "Unrecognized combiner for %s\n", str ); 
    7477                break; 
    7578            } 
     
    8588    int errs = 0; 
    8689    int err; 
     90    int i, nLoop = 1; 
    8791    MPI_Datatype newtype; 
    8892 
    8993    MPI_Init(0,0); 
    9094 
     95    if (argc > 1) { 
     96        nLoop = atoi( argv[1] ); 
     97    } 
    9198    /* Set the handler to errors return, since according to the 
    9299       standard, it is invalid to provide p and/or r that are unsupported */ 
     
    94101    MPI_Comm_set_errhandler( MPI_COMM_WORLD, MPI_ERRORS_RETURN ); 
    95102 
    96     /* This should be a valid type similar to MPI_REAL */ 
    97     p = 3; 
    98     r = 10; 
    99     err = MPI_Type_create_f90_real( p, r, &newtype ); 
    100     errs += checkType( "REAL", p, r, MPI_COMBINER_F90_REAL, err, newtype ); 
     103    for (i=0; i<nLoop; i++) { 
     104        /* printf( "+" );fflush(stdout); */ 
     105        /* This should be a valid type similar to MPI_REAL */ 
     106        p = 3; 
     107        r = 10; 
     108        err = MPI_Type_create_f90_real( p, r, &newtype ); 
     109        errs += checkType( "REAL", p, r, MPI_COMBINER_F90_REAL, err, newtype ); 
     110         
     111        r = MPI_UNDEFINED; 
     112        err = MPI_Type_create_f90_real( p, r, &newtype ); 
     113        errs += checkType( "REAL", p, r, MPI_COMBINER_F90_REAL, err, newtype ); 
     114         
     115        p = MPI_UNDEFINED; 
     116        r = 10; 
     117        err = MPI_Type_create_f90_real( p, r, &newtype ); 
     118        errs += checkType( "REAL", p, r, MPI_COMBINER_F90_REAL, err, newtype ); 
    101119 
    102     r = MPI_UNDEFINED; 
    103     err = MPI_Type_create_f90_real( p, r, &newtype ); 
    104     errs += checkType( "REAL", p, r, MPI_COMBINER_F90_REAL, err, newtype ); 
    105  
    106     p = MPI_UNDEFINED; 
    107     r = 10; 
    108     err = MPI_Type_create_f90_real( p, r, &newtype ); 
    109     errs += checkType( "REAL", p, r, MPI_COMBINER_F90_REAL, err, newtype ); 
    110  
    111     /* This should be a valid type similar to MPI_COMPLEX */ 
    112     p = 3; 
    113     r = 10; 
    114     err = MPI_Type_create_f90_complex( p, r, &newtype ); 
    115     errs += checkType( "COMPLEX", p, r, MPI_COMBINER_F90_COMPLEX,  
    116                        err, newtype ); 
    117  
    118     r = MPI_UNDEFINED; 
    119     err = MPI_Type_create_f90_complex( p, r, &newtype ); 
    120     errs += checkType( "COMPLEX", p, r, MPI_COMBINER_F90_COMPLEX,  
    121                        err, newtype ); 
    122  
    123     p = MPI_UNDEFINED; 
    124     r = 10; 
    125     err = MPI_Type_create_f90_complex( p, r, &newtype ); 
    126     errs += checkType( "COMPLEX", p, r, MPI_COMBINER_F90_COMPLEX,  
    127                        err, newtype ); 
    128  
    129     /* This should be a valid type similar to MPI_INTEGER */ 
    130     p = 3; 
    131     err = MPI_Type_create_f90_integer( p, &newtype ); 
    132     errs += checkType( "INTEGER", p, r, MPI_COMBINER_F90_INTEGER,  
    133                        err, newtype ); 
     120        /* This should be a valid type similar to MPI_COMPLEX */ 
     121        p = 3; 
     122        r = 10; 
     123        err = MPI_Type_create_f90_complex( p, r, &newtype ); 
     124        errs += checkType( "COMPLEX", p, r, MPI_COMBINER_F90_COMPLEX,  
     125                           err, newtype ); 
     126         
     127        r = MPI_UNDEFINED; 
     128        err = MPI_Type_create_f90_complex( p, r, &newtype ); 
     129        errs += checkType( "COMPLEX", p, r, MPI_COMBINER_F90_COMPLEX,  
     130                           err, newtype ); 
     131         
     132        p = MPI_UNDEFINED; 
     133        r = 10; 
     134        err = MPI_Type_create_f90_complex( p, r, &newtype ); 
     135        errs += checkType( "COMPLEX", p, r, MPI_COMBINER_F90_COMPLEX,  
     136                           err, newtype ); 
     137         
     138        /* This should be a valid type similar to MPI_INTEGER */ 
     139        p = 3; 
     140        err = MPI_Type_create_f90_integer( p, &newtype ); 
     141        errs += checkType( "INTEGER", p, r, MPI_COMBINER_F90_INTEGER,  
     142                           err, newtype ); 
     143    } 
    134144 
    135145    if (errs == 0) { 
  • mpich2/branches/dev/NemesisOnWindows/test/mpi/f90/f90types/testlist

    r100 r3648  
    11createf90types 1 
     2createf90types 1 arg=10000 
  • mpich2/branches/dev/NemesisOnWindows/test/mpi/f90/testlist.in

    r100 r3648  
    99pt2pt 
    1010datatype 
     11f90types 
    1112@rmadir@ 
    1213@spawndir@ 
  • mpich2/branches/dev/NemesisOnWindows/test/mpi/perf/Makefile.sm

    r100 r3648  
    88twovec_SOURCES          = twovec.c 
    99dtpack_SOURCES          = dtpack.c 
     10allredtrace_SOURCES     = allredtrace.c 
    1011 
    1112# A special testing target to simplify running just the performance tests 
  • mpich2/branches/dev/NemesisOnWindows/test/mpi/pt2pt/rqfreeb.c

    r3487 r3648  
    9999            } 
    100100        } 
     101        /* The MPI standard says that there is no way to use MPI_Request_free 
     102           safely with receive requests.  A strict MPI implementation may 
     103           choose to consider these erroreous (an IBM MPI implementation 
     104           does so)  */ 
     105#ifdef USE_STRICT_MPI 
     106        MPI_Wait( &r[4], MPI_STATUS_IGNORE ); 
     107#else 
    101108        MTestPrintfMsg( 10, "About  free Irecv request\n" ); 
    102109        MPI_Request_free( &r[4] );  
     110#endif 
    103111    } 
    104112 
  • mpich2/branches/dev/NemesisOnWindows/test/mpi/rma/putfidx.c

    r3567 r3648  
    88#include <stdio.h> 
    99#include "mpitest.h" 
     10#ifdef HAVE_STDLIB_H 
     11#include <stdlib.h> 
     12#endif 
    1013 
    1114static char MTEST_Descrip[] = "Put with Fence for an indexed datatype"; 
     
    2225    MPI_Datatype  originType; 
    2326    int           counts[2]; 
    24     MPI_Aint      displs[2]; 
     27    int           displs[2]; 
    2528 
    2629    MTest_Init( &argc, &argv ); 
  • mpich2/branches/dev/NemesisOnWindows/test/mpi/runtests.in

    r100 r3648  
    5757                         # accept additional data 
    5858$verbose = 0;            # Set to true to get more output 
     59$showProgress = 0;       # Set to true to get a "." with each run program. 
    5960$newline = "\r\n";       # Set to \r\n for Windows-friendly, \n for Unix only 
    6061 
     
    7374#   RUNTESTS_VERBOSE  (an alias for VERBOSE in case you want to  
    7475#                      reserve VERBOSE) 
     76#   RUNTESTS_SHOWPROGRESS 
    7577#   MPITEST_STOPTEST 
    7678#   MPITEST_TIMEOUT 
     
    7880if ( defined($ENV{"VERBOSE"}) || defined($ENV{"RUNTESTS_VERBOSE"}) ) { 
    7981    $verbose = 1; 
     82} 
     83if ( defined($ENV{"RUNTESTS_SHOWPROGRESS"} ) ) { 
     84    $showProgress = 1;        
    8085} 
    8186if (defined($ENV{"MPITEST_STOPTEST"})) { 
     
    121126    elsif (/-srcdir=(.*)/) { $srcdir = $1; } 
    122127    elsif (/-verbose/) { $verbose = 1; } 
     128    elsif (/-showprogress/) { $showProgress = 1; } 
    123129    elsif (/-debug/) { $debug = 1; } 
    124130    elsif (/-xmlfile=(.*)/) { 
     
    152158        [-maxnp=max-nprocesses] [-srcdir=location-of-tests] \ 
    153159        [-xmlfile=filename ] [-noxmlclose] \ 
    154         [-verbose] [-debug]\n"; 
     160        [-verbose] [-showprogress] [-debug]\n"; 
    155161    } 
    156162} 
     
    209215 
    210216    &RunList( $listfile ); 
    211  
     217    print "\n" if $showProgress; # Terminate line from progress output 
    212218    chdir $savedir; 
    213219    $curdir = $savecurdir; 
     
    264270        my $InitForRun = ""; 
    265271        my $timeLimit  = ""; 
     272        my $progArgs   = ""; 
    266273        if ($#args >= 1) { $np = $args[1]; } 
    267274        # Process the key=value arguments 
     
    279286                    $timeLimit = $value; 
    280287                } 
     288                elsif ($key eq "arg") { 
     289                    $progArgs = "$progArgs $value"; 
     290                } 
    281291                else { 
    282292                    print STDERR "Unrecognized key $key in $listfileSource\n"; 
     
    298308            if (&BuildMPIProgram( $programname ) == 0) { 
    299309                &RunMPIProgram( $programname, $np, $ResultTest, $InitForRun,  
    300                                 $timeLimit ); 
     310                                $timeLimit, $progArgs ); 
    301311            } 
    302312            else { 
     
    346356            if (-x $programname) { 
    347357                $total_count++; 
    348                 &RunMPIProgram( $programname, $np_default, "", "" ); 
     358                &RunMPIProgram( $programname, $np_default, "", "", "", "" ); 
    349359            } 
    350360        } 
     
    367377            $total_count++; 
    368378            if (&BuildMPIProgram( $programname ) == 0) { 
    369                 &RunMPIProgram( $programname, $np_default, "", "" ); 
     379                &RunMPIProgram( $programname, $np_default, "", "", "", "" ); 
    370380            } 
    371381            else { 
     
    384394# The arguments are 
    385395#    name of program, number of processes, name of routine to check results 
     396#    init for testing, timelimit, and any additional program arguments 
    386397# If the 3rd arg is not present, the a default that simply checks that the 
    387398# return status is 0 and that the output is " No Errors" is used. 
    388399sub RunMPIProgram { 
    389     my ($programname,$np,$ResultTest,$InitForTest,$timeLimit) = @_; 
     400    my ($programname,$np,$ResultTest,$InitForTest,$timeLimit,$progArgs) = @_; 
    390401    my $found_error   = 0; 
    391402    my $found_noerror = 0; 
     
    407418        &$InitForTest(); 
    408419    } 
    409     print STDOUT "$mpiexec $np_arg $np ./$programname\n" if $verbose; 
    410     open ( MPIOUT, "$mpiexec $np_arg $np ./$programname 2>&1 |" ) || 
     420    print STDOUT "$mpiexec $np_arg $np ./$programname $progArgs\n" if $verbose; 
     421    print STDOUT "." if $showProgress; 
     422    open ( MPIOUT, "$mpiexec $np_arg $np ./$programname $progArgs 2>&1 |" ) || 
    411423         die "Could not run ./$programname\n"; 
    412424    if ($ResultTest ne "") {