Blame test/mpi/pt2pt/issendselfcancel.c

Packit 0848f5
/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
Packit 0848f5
/*
Packit 0848f5
 *  (C) 2014 by Argonne National Laboratory.
Packit 0848f5
 *      See COPYRIGHT in top-level directory.
Packit 0848f5
 */
Packit 0848f5
#include <stdio.h>
Packit 0848f5
#include <stdlib.h>
Packit 0848f5
#include <assert.h>
Packit 0848f5
#include "mpi.h"
Packit 0848f5
Packit 0848f5
int main(int argc, char **argv)
Packit 0848f5
{
Packit 0848f5
    MPI_Request req;
Packit 0848f5
    MPI_Status status;
Packit 0848f5
Packit 0848f5
    MPI_Init(NULL, NULL);
Packit 0848f5
Packit 0848f5
    MPI_Issend(NULL, 0, MPI_BYTE, 0, 123, MPI_COMM_SELF, &req;;
Packit 0848f5
Packit 0848f5
    MPI_Probe(MPI_ANY_SOURCE, MPI_ANY_TAG, MPI_COMM_SELF, &status);
Packit 0848f5
    assert(status.MPI_SOURCE == 0);
Packit 0848f5
    assert(status.MPI_TAG == 123);
Packit 0848f5
Packit 0848f5
    MPI_Cancel(&req;;
Packit 0848f5
    assert(req != MPI_REQUEST_NULL);
Packit 0848f5
Packit 0848f5
    MPI_Request_free(&req;;
Packit 0848f5
Packit 0848f5
    MPI_Irecv(NULL, 0, MPI_BYTE, 0, 123, MPI_COMM_SELF, &req;;
Packit 0848f5
    MPI_Cancel(&req;;
Packit 0848f5
    MPI_Wait(&req, &status);
Packit 0848f5
Packit 0848f5
    printf(" No Errors\n");
Packit 0848f5
Packit 0848f5
    MPI_Finalize();
Packit 0848f5
}