1 /* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
3 * (C) 2001 by Argonne National Laboratory.
4 * See COPYRIGHT in top-level directory.
6 /* based on the pack.c test in the mpich suite.
14 #include "mpitestconf.h"
19 static int verbose = 0;
21 #define BUF_SIZE 16384
23 int parse_args(int argc, char **argv);
25 int main(int argc, char *argv[])
28 char buffer[BUF_SIZE];
34 MPI_Init(&argc, &argv);
35 parse_args(argc, argv);
42 MPI_Pack(&n, 1, MPI_INT, buffer, BUF_SIZE, &pos, MPI_COMM_WORLD);
43 MPI_Pack(&a, 1, MPI_DOUBLE, buffer, BUF_SIZE, &pos, MPI_COMM_WORLD);
44 MPI_Pack(&b, 1, MPI_DOUBLE, buffer, BUF_SIZE, &pos, MPI_COMM_WORLD);
52 MPI_Unpack(buffer, size, &pos, &n, 1, MPI_INT, MPI_COMM_WORLD);
53 MPI_Unpack(buffer, size, &pos, &a, 1, MPI_DOUBLE, MPI_COMM_WORLD);
54 MPI_Unpack(buffer, size, &pos, &b, 1, MPI_DOUBLE, MPI_COMM_WORLD);
58 if (verbose) fprintf(stderr, "Wrong value for n; got %d expected %d\n", n, 10 );
62 if (verbose) fprintf(stderr, "Wrong value for a; got %f expected %f\n", a, 1.1 );
66 if (verbose) fprintf(stderr, "Wrong value for b; got %f expected %f\n", b, 2.2 );
69 /* print message and exit */
71 fprintf(stderr, "Found %d errors\n", errs);
74 printf(" No Errors\n");
80 int parse_args(int argc, char **argv)
85 while ((ret = getopt(argc, argv, "v")) >= 0)
94 if (argc > 1 && strcmp(argv[1], "-v") == 0)