Changeset 3648
- Timestamp:
- 12/08/08 12:27:43 (2 months ago)
- Files:
-
- mpich2/branches/dev/NemesisOnWindows/test/mpi/README (modified) (1 diff)
- mpich2/branches/dev/NemesisOnWindows/test/mpi/configure.in (modified) (3 diffs)
- mpich2/branches/dev/NemesisOnWindows/test/mpi/datatype/darray-pack.c (modified) (2 diffs)
- mpich2/branches/dev/NemesisOnWindows/test/mpi/datatype/testlist (modified) (1 diff)
- mpich2/branches/dev/NemesisOnWindows/test/mpi/f77/datatype/packef.f (modified) (2 diffs)
- mpich2/branches/dev/NemesisOnWindows/test/mpi/f77/datatype/typenamef.f (modified) (1 diff)
- mpich2/branches/dev/NemesisOnWindows/test/mpi/f77/info/infotest2f.f (modified) (7 diffs)
- mpich2/branches/dev/NemesisOnWindows/test/mpi/f77/io/miscfilef.f (modified) (12 diffs)
- mpich2/branches/dev/NemesisOnWindows/test/mpi/f77/pt2pt/greqf.f (modified) (3 diffs)
- mpich2/branches/dev/NemesisOnWindows/test/mpi/f90/f90types/createf90types.c (modified) (5 diffs)
- mpich2/branches/dev/NemesisOnWindows/test/mpi/f90/f90types/testlist (modified) (1 diff)
- mpich2/branches/dev/NemesisOnWindows/test/mpi/f90/testlist.in (modified) (1 diff)
- mpich2/branches/dev/NemesisOnWindows/test/mpi/perf/Makefile.sm (modified) (1 diff)
- mpich2/branches/dev/NemesisOnWindows/test/mpi/perf/allredtrace.c (copied) (copied from mpich2/trunk/test/mpi/perf/allredtrace.c)
- mpich2/branches/dev/NemesisOnWindows/test/mpi/pt2pt/rqfreeb.c (modified) (1 diff)
- mpich2/branches/dev/NemesisOnWindows/test/mpi/rma/putfidx.c (modified) (2 diffs)
- mpich2/branches/dev/NemesisOnWindows/test/mpi/runtests.in (modified) (13 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
mpich2/branches/dev/NemesisOnWindows/test/mpi/README
r3567 r3648 4 4 For IBM MPI, where the compilation commands are not mpicc and mpif77 etc.: 5 5 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) 8 11 9 12 You may need to add MPI_SIZEOF_OFFSET=8 . mpich2/branches/dev/NemesisOnWindows/test/mpi/configure.in
r3567 r3648 22 22 AH_BOTTOM([#endif]) 23 23 # 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 26 VERSION=1.1 25 27 AC_SUBST(VERSION) 26 28 dnl … … 69 71 [--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]) 70 72 AC_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) 72 74 73 75 AC_ARG_WITH(mpi, … … 777 779 if test -n "$BASEF90" ; then 778 780 F90=$saveF90 781 fi 782 783 if test -f f77/init/checksizes.c ; then 784 cp f77/init/checksizes.c f90/init 779 785 fi 780 786 fi mpich2/branches/dev/NemesisOnWindows/test/mpi/datatype/darray-pack.c
r3567 r3648 31 31 { 32 32 int err, errs = 0; 33 int toterrs, rank; 33 34 34 35 MPI_Init(&argc, &argv); /* MPI-1.2 doesn't allow for MPI_Init(0,0) */ … … 51 52 52 53 /* 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 } 58 66 } 59 67 MPI_Finalize(); mpich2/branches/dev/NemesisOnWindows/test/mpi/datatype/testlist
r3140 r3648 22 22 subarray-pack 1 23 23 darray-pack 1 24 darray-pack 9 25 # darray-pack 72 24 26 pairtype-size-extent 1 25 27 simple-commit 1 mpich2/branches/dev/NemesisOnWindows/test/mpi/f77/datatype/packef.f
r3487 r3648 14 14 integer packbuf(1000), pbufsize, intsize 15 15 integer max_asizev 16 parameter (max_asizev = 2)16 parameter (max_asizev = 3) 17 17 include 'typeaints.h' 18 18 … … 112 112 aintv(1) = pbufsize 113 113 aintv(2) = 0 114 aintv(3) = 0 115 C One MPI implementation failed to increment the position; instead, 116 C it set the value with the amount of data packed in this call 117 C We use aintv(3) to detect and report this specific error 114 118 call mpi_pack_external( 'external32', inbuf, insize, MPI_INTEGER, 115 119 & 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) 116 124 call mpi_pack_external( 'external32', rbuf, rsize, 117 125 & MPI_DOUBLE_PRECISION, packbuf, aintv(1), 118 126 & 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) 119 131 call mpi_pack_external( 'external32', cbuf, csize, 120 132 & MPI_CHARACTER, packbuf, aintv(1), 121 133 & 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) 122 138 call mpi_pack_external( 'external32', inbuf2, insize2, 123 139 & MPI_INTEGER, 124 140 & 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) 125 145 C 126 146 C We could try sending this with MPI_BYTE... mpich2/branches/dev/NemesisOnWindows/test/mpi/f77/datatype/typenamef.f
r3487 r3648 69 69 endif 70 70 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 71 84 C 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") then85 C call MPI_Type_get_name( MPI_2DOUBLE_COMPLEX, name, namelen, ierr ) 86 C if (name(1:namelen) .ne. "MPI_2DOUBLE_COMPLEX") then 74 87 C errs = errs + 1 75 C print *, "Expected MPI_2DOUBLE_ PRECISIONbut got "//88 C print *, "Expected MPI_2DOUBLE_COMPLEX but got "// 76 89 C & name(1:namelen) 77 90 C endif 78 79 call MPI_Type_get_name( MPI_2REAL, name, namelen, ierr )80 if (name(1:namelen) .ne. "MPI_2REAL") then81 errs = errs + 182 print *, "Expected MPI_2REAL but got "//name(1:namelen)83 endif84 85 call MPI_Type_get_name( MPI_2DOUBLE_COMPLEX, name, namelen, ierr )86 if (name(1:namelen) .ne. "MPI_2DOUBLE_COMPLEX") then87 errs = errs + 188 print *, "Expected MPI_2DOUBLE_COMPLEX but got "//89 & name(1:namelen)90 endif91 91 92 92 call MPI_Type_get_name( MPI_CHARACTER, name, namelen, ierr ) mpich2/branches/dev/NemesisOnWindows/test/mpi/f77/info/infotest2f.f
r528 r3648 39 39 call mpi_info_get_nkeys( i1, nkeys, ierr ) 40 40 if (nkeys .ne. 6) then 41 print *, ' Number of keys should be 6, is ', nkeys41 print *, ' Number of keys should be 6, is ', nkeys 42 42 endif 43 43 sumindex = 0 … … 59 59 if (myvalue .ne. values(j)) then 60 60 errs = errs + 1 61 print *, ' Value for ', mykey, ' not expected'61 print *, ' Value for ', mykey, ' not expected' 62 62 else 63 63 do ln=MPI_MAX_INFO_VAL,1,-1 … … 65 65 if (vlen .ne. ln) then 66 66 errs = errs + 1 67 print *, ' length is ', ln,67 print *, ' length is ', ln, 68 68 & ' but valuelen gave ', vlen, 69 69 & ' for key ', mykey … … 83 83 if (sumindex .ne. 21) then 84 84 errs = errs + 1 85 print *, ' Not all keys found'85 print *, ' Not all keys found' 86 86 endif 87 87 C … … 100 100 if (flag) then 101 101 errs = errs + 1 102 print *, ' Found unexpected key ', keys(i)102 print *, ' Found unexpected key ', keys(i) 103 103 endif 104 104 myvalue = 'A test' … … 107 107 if (flag) then 108 108 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) 110 110 else 111 111 if (myvalue .ne. 'A test') then 112 112 errs = errs + 1 113 print *, ' Returned value overwritten, is now ', myvalue113 print *, ' Returned value overwritten, is now ', myvalue 114 114 endif 115 115 endif … … 117 117 enddo 118 118 do i=3,6 119 myvalue = ' ' 119 120 call mpi_info_get( i2, keys(i), MPI_MAX_INFO_VAL, 120 121 & 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 125 131 endif 126 132 enddo mpich2/branches/dev/NemesisOnWindows/test/mpi/f77/io/miscfilef.f
r100 r3648 32 32 C Create a file that we'll then query properties 33 33 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 ) 36 36 if (ierr .ne. MPI_SUCCESS) then 37 37 print *, "Unable to create file ", filename … … 43 43 buf(i) = i 44 44 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 ) 47 47 call MPI_File_sync( fh, ierr ) 48 48 C … … 64 64 if (.not. atomicity) then 65 65 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" 68 68 endif 69 69 call MPI_File_set_atomicity( fh, .false., ierr ) … … 79 79 C All processes are getting the same view, with a 1000 byte offset 80 80 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 & ) 86 86 if (offset .ne. 1000) then 87 87 print *, " displacement was ", offset, ", expected 1000" … … 89 89 endif 90 90 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" 93 93 errs = errs + 1 94 94 endif … … 103 103 if (disp .ne. 1000 + 30 * integer_size) then 104 104 errs = errs + 1 105 print *, " (offset20)Byte offset = ", disp, ", should be ", 1000+20106 $*integer_size105 print *, " (offset20)Byte offset = ", disp, ", should be ", & 106 & 1000+20*integer_size 107 107 endif 108 108 C … … 112 112 call mpi_type_size( etype, type_size, ierr ) 113 113 if (type_size .ne. integer_size) then 114 print *, " Etype has size ", type_size, ", but should be ", 115 $integer_size114 print *, " Etype has size ", type_size, ", but should be ", & 115 & integer_size 116 116 errs = errs + 1 117 117 endif 118 118 call mpi_type_size( filetype, type_size, ierr ) 119 119 if (type_size .ne. 10*20*integer_size) then 120 print *, " filetype has size ", type_size, ", but should be ", 121 $10*20*integer_size120 print *, " filetype has size ", type_size, ", but should be ", & 121 & 10*20*integer_size 122 122 errs = errs + 1 123 123 endif … … 145 145 if (offset .ne. 1000+25*integer_size) then 146 146 errs = errs + 1 147 print *, " File size is ", offset, ", should be ", 1000 + 25 148 $* integer_size147 print *, " File size is ", offset, ", should be ", 1000 + 25 & 148 & * integer_size 149 149 endif 150 150 C … … 159 159 errs = errs + 1 160 160 print *, "File pointer position = ", disp, ", should be 20" 161 if (disp .eq. 25) then 162 C See MPI 2.1, section 13.4, page 399, lines 7-8. The disp must be 163 C 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 167 C Make sure we use the expected position in the next step. 168 disp = 20 161 169 endif 162 170 call mpi_file_get_byte_offset(fh, disp, offset, ierr ) 163 171 if (offset .ne. 1000+30*integer_size) then 164 172 errs = errs + 1 165 print *, " (seek)Byte offset = ", offset, ", should be ", 1000 166 $+30*integer_size173 print *, " (seek)Byte offset = ", offset, ", should be ", 1000 & 174 & +30*integer_size 167 175 endif 168 176 … … 175 183 if (offset .ne. 1000) then 176 184 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" 179 187 endif 180 188 … … 185 193 if (offset .lt. 8192) then 186 194 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" 189 197 endif 190 198 call mpi_file_close( fh, ierr ) … … 197 205 C 198 206 C 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 ) 201 209 if (rank .eq. 0) then 202 210 if( toterrs .gt. 0) then mpich2/branches/dev/NemesisOnWindows/test/mpi/f77/pt2pt/greqf.f
r100 r3648 23 23 integer value, ierr 24 24 include 'attr1aints.h' 25 integer freefncall 26 common /fnccalls/ freefncall 27 C 28 C For testing purposes, the following print can be used to check whether 29 C the free_fn is called 30 C print *, 'Free_fn called' 25 31 C 26 32 extrastate = extrastate - 1 … … 60 66 external query_fn, free_fn, cancel_fn 61 67 include 'attr1aints.h' 68 integer freefncall 69 common /fnccalls/ freefncall 62 70 63 71 errs = 0 72 freefncall = 0 64 73 65 74 call MTest_Init( ierr ) … … 86 95 if (extrastate .ne. 0) then 87 96 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 91 103 endif 92 104 C mpich2/branches/dev/NemesisOnWindows/test/mpi/f90/f90types/createf90types.c
r100 r3648 32 32 if (combiner != f90kind) { 33 33 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 ); 35 36 } 36 37 else { 37 38 int parms[2]; 38 39 MPI_Datatype outtype; 40 parms[0] = 0; 41 parms[1] = 0; 39 42 40 43 if (ndtypes != 0) { … … 48 51 if (nints != 2) { 49 52 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 ); 52 55 } 53 56 if (parms[0] != p || parms[1] != r) { 54 57 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 ); 57 60 } 58 61 break; … … 60 63 if (nints != 1) { 61 64 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 ); 64 67 } 65 68 if (parms[0] != p) { 66 69 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 ); 69 72 } 70 73 break; 71 74 default: 72 75 errs++; 73 printf( "Unrecognized combiner \n");76 printf( "Unrecognized combiner for %s\n", str ); 74 77 break; 75 78 } … … 85 88 int errs = 0; 86 89 int err; 90 int i, nLoop = 1; 87 91 MPI_Datatype newtype; 88 92 89 93 MPI_Init(0,0); 90 94 95 if (argc > 1) { 96 nLoop = atoi( argv[1] ); 97 } 91 98 /* Set the handler to errors return, since according to the 92 99 standard, it is invalid to provide p and/or r that are unsupported */ … … 94 101 MPI_Comm_set_errhandler( MPI_COMM_WORLD, MPI_ERRORS_RETURN ); 95 102 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 ); 101 119 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 } 134 144 135 145 if (errs == 0) { mpich2/branches/dev/NemesisOnWindows/test/mpi/f90/f90types/testlist
r100 r3648 1 1 createf90types 1 2 createf90types 1 arg=10000 mpich2/branches/dev/NemesisOnWindows/test/mpi/f90/testlist.in
r100 r3648 9 9 pt2pt 10 10 datatype 11 f90types 11 12 @rmadir@ 12 13 @spawndir@ mpich2/branches/dev/NemesisOnWindows/test/mpi/perf/Makefile.sm
r100 r3648 8 8 twovec_SOURCES = twovec.c 9 9 dtpack_SOURCES = dtpack.c 10 allredtrace_SOURCES = allredtrace.c 10 11 11 12 # A special testing target to simplify running just the performance tests mpich2/branches/dev/NemesisOnWindows/test/mpi/pt2pt/rqfreeb.c
r3487 r3648 99 99 } 100 100 } 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 101 108 MTestPrintfMsg( 10, "About free Irecv request\n" ); 102 109 MPI_Request_free( &r[4] ); 110 #endif 103 111 } 104 112 mpich2/branches/dev/NemesisOnWindows/test/mpi/rma/putfidx.c
r3567 r3648 8 8 #include <stdio.h> 9 9 #include "mpitest.h" 10 #ifdef HAVE_STDLIB_H 11 #include <stdlib.h> 12 #endif 10 13 11 14 static char MTEST_Descrip[] = "Put with Fence for an indexed datatype"; … … 22 25 MPI_Datatype originType; 23 26 int counts[2]; 24 MPI_Aintdispls[2];27 int displs[2]; 25 28 26 29 MTest_Init( &argc, &argv ); mpich2/branches/dev/NemesisOnWindows/test/mpi/runtests.in
r100 r3648 57 57 # accept additional data 58 58 $verbose = 0; # Set to true to get more output 59 $showProgress = 0; # Set to true to get a "." with each run program. 59 60 $newline = "\r\n"; # Set to \r\n for Windows-friendly, \n for Unix only 60 61 … … 73 74 # RUNTESTS_VERBOSE (an alias for VERBOSE in case you want to 74 75 # reserve VERBOSE) 76 # RUNTESTS_SHOWPROGRESS 75 77 # MPITEST_STOPTEST 76 78 # MPITEST_TIMEOUT … … 78 80 if ( defined($ENV{"VERBOSE"}) || defined($ENV{"RUNTESTS_VERBOSE"}) ) { 79 81 $verbose = 1; 82 } 83 if ( defined($ENV{"RUNTESTS_SHOWPROGRESS"} ) ) { 84 $showProgress = 1; 80 85 } 81 86 if (defined($ENV{"MPITEST_STOPTEST"})) { … … 121 126 elsif (/-srcdir=(.*)/) { $srcdir = $1; } 122 127 elsif (/-verbose/) { $verbose = 1; } 128 elsif (/-showprogress/) { $showProgress = 1; } 123 129 elsif (/-debug/) { $debug = 1; } 124 130 elsif (/-xmlfile=(.*)/) { … … 152 158 [-maxnp=max-nprocesses] [-srcdir=location-of-tests] \ 153 159 [-xmlfile=filename ] [-noxmlclose] \ 154 [-verbose] [- debug]\n";160 [-verbose] [-showprogress] [-debug]\n"; 155 161 } 156 162 } … … 209 215 210 216 &RunList( $listfile ); 211 217 print "\n" if $showProgress; # Terminate line from progress output 212 218 chdir $savedir; 213 219 $curdir = $savecurdir; … … 264 270 my $InitForRun = ""; 265 271 my $timeLimit = ""; 272 my $progArgs = ""; 266 273 if ($#args >= 1) { $np = $args[1]; } 267 274 # Process the key=value arguments … … 279 286 $timeLimit = $value; 280 287 } 288 elsif ($key eq "arg") { 289 $progArgs = "$progArgs $value"; 290 } 281 291 else { 282 292 print STDERR "Unrecognized key $key in $listfileSource\n"; … … 298 308 if (&BuildMPIProgram( $programname ) == 0) { 299 309 &RunMPIProgram( $programname, $np, $ResultTest, $InitForRun, 300 $timeLimit );310 $timeLimit, $progArgs ); 301 311 } 302 312 else { … … 346 356 if (-x $programname) { 347 357 $total_count++; 348 &RunMPIProgram( $programname, $np_default, "", "" );358 &RunMPIProgram( $programname, $np_default, "", "", "", "" ); 349 359 } 350 360 } … … 367 377 $total_count++; 368 378 if (&BuildMPIProgram( $programname ) == 0) { 369 &RunMPIProgram( $programname, $np_default, "", "" );379 &RunMPIProgram( $programname, $np_default, "", "", "", "" ); 370 380 } 371 381 else { … … 384 394 # The arguments are 385 395 # name of program, number of processes, name of routine to check results 396 # init for testing, timelimit, and any additional program arguments 386 397 # If the 3rd arg is not present, the a default that simply checks that the 387 398 # return status is 0 and that the output is " No Errors" is used. 388 399 sub RunMPIProgram { 389 my ($programname,$np,$ResultTest,$InitForTest,$timeLimit ) = @_;400 my ($programname,$np,$ResultTest,$InitForTest,$timeLimit,$progArgs) = @_; 390 401 my $found_error = 0; 391 402 my $found_noerror = 0; … … 407 418 &$InitForTest(); 408 419 } 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 |" ) || 411 423 die "Could not run ./$programname\n"; 412 424 if ($ResultTest ne "") {