1 /* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
3 * (C) 2005 by Argonne National Laboratory.
4 * See COPYRIGHT in top-level directory.
11 * This program checks that MPI_Iprobe and MPI_Probe correctly handle
12 * a source of MPI_PROC_NULL
15 int main(int argc, char **argv)
21 MTest_Init(&argc, &argv);
23 MPI_Iprobe(MPI_PROC_NULL, 10, MPI_COMM_WORLD, &flag, &status);
26 printf("Iprobe of source=MPI_PROC_NULL returned flag=false\n");
29 if (status.MPI_SOURCE != MPI_PROC_NULL) {
30 printf("Status.MPI_SOURCE was %d, should be MPI_PROC_NULL\n", status.MPI_SOURCE);
33 if (status.MPI_TAG != MPI_ANY_TAG) {
34 printf("Status.MPI_TAG was %d, should be MPI_ANY_TAGL\n", status.MPI_TAG);
38 /* If Iprobe failed, probe is likely to as well. Avoid a possible hang
39 * by testing Probe only if Iprobe test passed */
41 MPI_Probe(MPI_PROC_NULL, 10, MPI_COMM_WORLD, &status);
42 if (status.MPI_SOURCE != MPI_PROC_NULL) {
43 printf("Status.MPI_SOURCE was %d, should be MPI_PROC_NULL\n", status.MPI_SOURCE);
46 if (status.MPI_TAG != MPI_ANY_TAG) {
47 printf("Status.MPI_TAG was %d, should be MPI_ANY_TAGL\n", status.MPI_TAG);