Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Fix dist
[simgrid.git] / teshsuite / smpi / mpich3-test / datatype / hvecblklen.c
index d9a6aa5..cc692e9 100644 (file)
 /* Inspired by the Intel MPI_Type_hvector_blklen test.
    Added to include a test of a dataloop optimization that failed.
 */
-int main( int argc, char *argv[] )
+int main(int argc, char *argv[])
 {
     MPI_Datatype ot, ot2, newtype;
     int position, psize, insize, outsize;
-    signed char *inbuf=0, *outbuf=0, *pbuf=0, *p;
-    int  i, j, k;
-    int  errs = 0;
-    int  veccount=16, stride=16;
+    char *inbuf = 0, *outbuf = 0, *pbuf = 0, *p;
+    int i, j, k;
+    int errs = 0;
+    int veccount = 16, stride = 16;
 
-    MTest_Init( &argc, &argv );
+    MTest_Init(&argc, &argv);
     /*
      * Create a type with some padding
      */
-    MPI_Type_contiguous( 59, MPI_CHAR, &ot );
-    MPI_Type_create_resized( ot, 0, 64, &ot2 );
+    MPI_Type_contiguous(59, MPI_CHAR, &ot);
+    MPI_Type_create_resized(ot, 0, 64, &ot2);
     /*
-      Use a vector type with a block size equal to the stride - thus
-      tiling the target memory with copies of old type.  This is not
-      a contiguous copy since oldtype has a gap at the end.
-    */
-    MPI_Type_hvector( veccount, stride, stride*64, ot2, &newtype );
-    MPI_Type_commit( &newtype );
+     * Use a vector type with a block size equal to the stride - thus
+     * tiling the target memory with copies of old type.  This is not
+     * a contiguous copy since oldtype has a gap at the end.
+     */
+    MPI_Type_hvector(veccount, stride, stride * 64, ot2, &newtype);
+    MPI_Type_commit(&newtype);
 
     insize = veccount * stride * 64;
     outsize = insize;
-    inbuf = (char *)malloc( insize );
-    outbuf = (char *)malloc( outsize );
-    for (i=0; i<outsize; i++) {
+    inbuf = (char *) malloc(insize);
+    outbuf = (char *) malloc(outsize);
+    for (i = 0; i < outsize; i++) {
         inbuf[i] = i % 64;
         outbuf[i] = -1;
     }
 
-    MPI_Pack_size( 1, newtype, MPI_COMM_WORLD, &psize );
-    pbuf = (char *)malloc( psize );
+    MPI_Pack_size(1, newtype, MPI_COMM_WORLD, &psize);
+    pbuf = (char *) malloc(psize);
 
     position = 0;
-    MPI_Pack( inbuf, 1, newtype, pbuf, psize, &position, MPI_COMM_WORLD );
-    psize    = position;
+    MPI_Pack(inbuf, 1, newtype, pbuf, psize, &position, MPI_COMM_WORLD);
+    psize = position;
     position = 0;
-    MPI_Unpack( pbuf, psize, &position, outbuf, 1, newtype, MPI_COMM_WORLD );
+    MPI_Unpack(pbuf, psize, &position, outbuf, 1, newtype, MPI_COMM_WORLD);
 
 
     /* Check the output */
     p = outbuf;
-    for (i=0; i<veccount; i++) {
-        for (j=0; j<stride; j++) {
-            for (k=0; k<59; k++) {
+    for (i = 0; i < veccount; i++) {
+        for (j = 0; j < stride; j++) {
+            for (k = 0; k < 59; k++) {
                 if (*p != k % 64) {
                     errs++;
-                    fprintf( stderr, "[%d,%d,%d]expected %d but saw %d\n",
-                             i, j, k, (k%64), *p );
+                    fprintf(stderr, "[%d,%d,%d]expected %d but saw %d\n", i, j, k, (k % 64), *p);
                 }
                 p++;
             }
-            for (k=59; k<64; k++) {
+            for (k = 59; k < 64; k++) {
                 if (*p != -1) {
                     errs++;
-                    fprintf( stderr, "[%d,%d,%d]expected -1 but saw %d\n",
-                             i, j, k, *p );
+                    fprintf(stderr, "[%d,%d,%d]expected -1 but saw %d\n", i, j, k, *p);
                 }
                 p++;
             }
         }
     }
 
-    free( pbuf );
-    free( inbuf );
-    free( outbuf );
+    free(pbuf);
+    free(inbuf);
+    free(outbuf);
 
-    MPI_Type_free( &ot );
-    MPI_Type_free( &ot2 );
-    MPI_Type_free( &newtype );
-    MTest_Finalize( errs );
+    MPI_Type_free(&ot);
+    MPI_Type_free(&ot2);
+    MPI_Type_free(&newtype);
+    MTest_Finalize(errs);
     MPI_Finalize();
 
     return 0;