Blame test/mpi/errors/rma/win_sync.h

Packit 0848f5
/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
Packit 0848f5
/*
Packit 0848f5
 *
Packit 0848f5
 *  (C) 2012 by Argonne National Laboratory.
Packit 0848f5
 *      See COPYRIGHT in top-level directory.
Packit 0848f5
 */
Packit 0848f5
Packit 0848f5
#ifndef WIN_SYNC_H_INCLUDED
Packit 0848f5
#define WIN_SYNC_H_INCLUDED
Packit 0848f5
Packit 0848f5
#define CHECK_ERR(stmt)                                                               \
Packit 0848f5
    do {                                                                                \
Packit 0848f5
        int err_class, err, rank;                                                       \
Packit 0848f5
        MPI_Comm_rank(MPI_COMM_WORLD, &rank;;                                           \
Packit 0848f5
        err = stmt;                                                                     \
Packit 0848f5
        if (err == MPI_SUCCESS) {                                                       \
Packit 0848f5
            printf("%d: Operation succeeded, when it should have failed\n", rank);      \
Packit 0848f5
            errors++;                                                                   \
Packit 0848f5
        } else {                                                                        \
Packit 0848f5
            MPI_Error_class(err, &err_class);                                         \
Packit 0848f5
            if (err_class != MPI_ERR_RMA_SYNC)  {                                       \
Packit 0848f5
                char str[MPI_MAX_ERROR_STRING];                                         \
Packit 0848f5
                int  len;                                                               \
Packit 0848f5
                MPI_Error_string(err, str, &len;;                                       \
Packit 0848f5
                printf("%d: Expected MPI_ERR_RMA_SYNC, got:\n%s\n", rank, str);         \
Packit 0848f5
                errors++;                                                               \
Packit 0848f5
            }                                                                           \
Packit 0848f5
        }                                                                               \
Packit 0848f5
    } while (0)
Packit 0848f5
Packit 0848f5
#endif