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" );
32 int main( int argc, char *argv[] )
36 MPI_Errhandler newerr;
39 MTest_Init( &argc, &argv );
41 /* Run this test multiple times to expose storage leaks (we found a leak
42 of error handlers with this test) */
43 for (i=0;i<1000; i++) {
46 MPI_Win_create( buf, 2*sizeof(int), sizeof(int),
47 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" );
62 MTest_Finalize( errs );