This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "MPICH primary repository". The branch, master has been updated via dc1447982acf76dc3b80c1bd98b7ea2d034944a8 (commit) from 592724539fc60539d75e168410afa289a72fe3d7 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- http://git.mpich.org/mpich.git/commitdiff/dc1447982acf76dc3b80c1bd98b7ea2d03... commit dc1447982acf76dc3b80c1bd98b7ea2d034944a8 Author: Hajime Fujita <[email protected]> Date: Tue Oct 27 14:28:25 2015 -0500 Correct Compare_and_swap usage in test cases Usage of MPI_Compare_and_swap is wrong in the following tests, thus causing failures. * test/mpi/rma/win_shared_cas_flush_load 3 * test/mpi/rma/cas_flush_get 3 The variable `i` passed to MPI_Compare_and_swap is declared on stack, however it should be alive until MPI_Win_flush is called. Signed-off-by: Charles J Archer <[email protected]> Signed-off-by: Ken Raffenetti <[email protected]> diff --git a/test/mpi/rma/win_shared_rma_flush_load.c b/test/mpi/rma/win_shared_rma_flush_load.c index 9edf270..1386fcd 100644 --- a/test/mpi/rma/win_shared_rma_flush_load.c +++ b/test/mpi/rma/win_shared_rma_flush_load.c @@ -13,6 +13,9 @@ #define ITER 10000 #define BUF_CNT 1 int local_buf[BUF_CNT], result_addr[BUF_CNT]; +#ifdef TEST_CAS +int compare_buf[BUF_CNT]; +#endif const int verbose = 0; @@ -69,8 +72,8 @@ static inline void issue_rma_op(int i) #elif defined(TEST_CAS) static inline void issue_rma_op(int i) { - int compare_val = i; /* always equal to window value, thus swap happens */ - MPI_Compare_and_swap(&local_buf[i], &compare_val, &result_addr[i], MPI_INT, target, i, win); + compare_buf[i] = i; /* always equal to window value, thus swap happens */ + MPI_Compare_and_swap(&local_buf[i], &compare_buf[i], &result_addr[i], MPI_INT, target, i, win); } #endif diff --git a/test/mpi/rma/wrma_flush_get.c b/test/mpi/rma/wrma_flush_get.c index c0b0fc2..e2ae828 100644 --- a/test/mpi/rma/wrma_flush_get.c +++ b/test/mpi/rma/wrma_flush_get.c @@ -13,6 +13,9 @@ #define ITER 10000 #define BUF_CNT 1 int local_buf[BUF_CNT], result_addr[BUF_CNT], check_addr[BUF_CNT]; +#ifdef TEST_CAS +int compare_buf[BUF_CNT]; +#endif const int verbose = 0; @@ -70,8 +73,8 @@ static inline void issue_rma_op(int i) #elif defined(TEST_CAS) static inline void issue_rma_op(int i) { - int compare_val = i; /* always equal to window value, thus swap happens */ - MPI_Compare_and_swap(&local_buf[i], &compare_val, &result_addr[i], MPI_INT, target, i, win); + compare_buf[i] = i; /* always equal to window value, thus swap happens */ + MPI_Compare_and_swap(&local_buf[i], &compare_buf[i], &result_addr[i], MPI_INT, target, i, win); } #endif ----------------------------------------------------------------------- Summary of changes: test/mpi/rma/win_shared_rma_flush_load.c | 7 +++++-- test/mpi/rma/wrma_flush_get.c | 7 +++++-- 2 files changed, 10 insertions(+), 4 deletions(-) hooks/post-receive -- MPICH primary repository