1 /* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
4 * (C) 2003 by Argonne National Laboratory.
5 * See COPYRIGHT in top-level directory.
12 static char MTEST_Descrip[] = "Test win_call_errhandler";
18 void eh(MPI_Win * win, int *err, ...);
19 void eh(MPI_Win * win, int *err, ...)
21 if (*err != MPI_ERR_OTHER) {
23 printf("Unexpected error code\n");
27 printf("Unexpected window\n");
33 int main(int argc, char *argv[])
37 MPI_Errhandler newerr;
40 MTest_Init(&argc, &argv);
42 /* Run this test multiple times to expose storage leaks (we found a leak
43 * of error handlers with this test) */
44 for (i = 0; i < 1000; i++) {
47 MPI_Win_create(buf, 2 * sizeof(int), sizeof(int), MPI_INFO_NULL, MPI_COMM_WORLD, &win);
50 MPI_Win_create_errhandler(eh, &newerr);
52 MPI_Win_set_errhandler(win, newerr);
53 MPI_Win_call_errhandler(win, MPI_ERR_OTHER);
54 MPI_Errhandler_free(&newerr);
57 printf("Error handler not called\n");