summaryrefslogtreecommitdiffstats
path: root/testpar/t_prop.c
diff options
context:
space:
mode:
Diffstat (limited to 'testpar/t_prop.c')
-rw-r--r--testpar/t_prop.c38
1 files changed, 22 insertions, 16 deletions
diff --git a/testpar/t_prop.c b/testpar/t_prop.c
index c588ad2..2cc0f5e 100644
--- a/testpar/t_prop.c
+++ b/testpar/t_prop.c
@@ -27,50 +27,57 @@ test_encode_decode(hid_t orig_pl, int mpi_rank, int recv_proc)
MPI_Request req[2];
MPI_Status status;
hid_t pl; /* Decoded property list */
- void *buf = NULL;
size_t buf_size = 0;
- int casted_size;
+ void *sbuf = NULL;
herr_t ret; /* Generic return value */
if(mpi_rank == 0) {
+ int send_size = 0;
+
/* first call to encode returns only the size of the buffer needed */
ret = H5Pencode(orig_pl, NULL, &buf_size);
VRFY((ret >= 0), "H5Pencode succeeded");
- buf = (uint8_t *)HDmalloc(buf_size);
+ sbuf = (uint8_t *)HDmalloc(buf_size);
- ret = H5Pencode(orig_pl, buf, &buf_size);
+ ret = H5Pencode(orig_pl, sbuf, &buf_size);
VRFY((ret >= 0), "H5Pencode succeeded");
/* this is a temp fix to send this size_t */
- casted_size = (int)buf_size;
+ send_size = (int)buf_size;
- MPI_Isend(&casted_size, 1, MPI_INT, recv_proc, 123, MPI_COMM_WORLD, &req[0]);
- MPI_Isend(buf, casted_size, MPI_BYTE, recv_proc, 124, MPI_COMM_WORLD, &req[1]);
+ MPI_Isend(&send_size, 1, MPI_INT, recv_proc, 123, MPI_COMM_WORLD, &req[0]);
+ MPI_Isend(sbuf, send_size, MPI_BYTE, recv_proc, 124, MPI_COMM_WORLD, &req[1]);
} /* end if */
+
if(mpi_rank == recv_proc) {
- MPI_Recv(&casted_size, 1, MPI_INT, 0, 123, MPI_COMM_WORLD, &status);
- buf_size = casted_size;
- buf = (uint8_t *)HDmalloc(buf_size);
- MPI_Recv(buf, casted_size, MPI_BYTE, 0, 124, MPI_COMM_WORLD, &status);
+ int recv_size;
+ void *rbuf;
+
+ MPI_Recv(&recv_size, 1, MPI_INT, 0, 123, MPI_COMM_WORLD, &status);
+ buf_size = recv_size;
+ rbuf = (uint8_t *)HDmalloc(buf_size);
+ MPI_Recv(rbuf, recv_size, MPI_BYTE, 0, 124, MPI_COMM_WORLD, &status);
- pl = H5Pdecode(buf);
+ pl = H5Pdecode(rbuf);
VRFY((pl >= 0), "H5Pdecode succeeded");
VRFY(H5Pequal(orig_pl, pl), "Property List Equal Succeeded");
ret = H5Pclose(pl);
VRFY((ret >= 0), "H5Pclose succeeded");
+
+ if(NULL != rbuf)
+ HDfree(rbuf);
} /* end if */
if(0 == mpi_rank)
MPI_Waitall(2, req, MPI_STATUSES_IGNORE);
- if(NULL != buf)
- HDfree(buf);
+ if(NULL != sbuf)
+ HDfree(sbuf);
MPI_Barrier(MPI_COMM_WORLD);
-
return(0);
}
@@ -135,7 +142,6 @@ test_plist_ed(void)
herr_t ret; /* Generic return value */
-
if(VERBOSE_MED)
printf("Encode/Decode DCPLs\n");