- MPI_Igather(buf, COUNT, MPI_INT, recvbuf, COUNT, MPI_INT, 0, comm, req);
- break;
-
- case 8: /* same test again, just use a dup'ed datatype and free it before the wait */
- {
- MPI_Datatype type = MPI_DATATYPE_NULL;
- MPI_Type_dup(MPI_INT, &type);
- for (i = 0; i < size*COUNT; ++i) {
- buf[i] = rank + i;
- recvbuf[i] = 0xdeadbeef;
- }
- MPI_Igather(buf, COUNT, MPI_INT, recvbuf, COUNT, type, 0, comm, req);
- MPI_Type_free(&type); /* should cause implementations that don't refcount
- correctly to blow up or hang in the wait */
- }
- break;
-
- case 9: /* MPI_Iscatter */
- for (i = 0; i < size; ++i) {
- for (j = 0; j < COUNT; ++j) {
- if (rank == 0)
- buf[i*COUNT+j] = i + j;
- else
- buf[i*COUNT+j] = 0xdeadbeef;
- recvbuf[i*COUNT+j] = 0xdeadbeef;
- }
- }
- MPI_Iscatter(buf, COUNT, MPI_INT, recvbuf, COUNT, MPI_INT, 0, comm, req);
- break;
-
- case 10: /* MPI_Iscatterv */
- for (i = 0; i < size; ++i) {
- /* weak test, just test the regular case where all counts are equal */
- sendcounts[i] = COUNT;
- sdispls[i] = i * COUNT;
- for (j = 0; j < COUNT; ++j) {
- if (rank == 0)
- buf[i*COUNT+j] = i + j;
- else
- buf[i*COUNT+j] = 0xdeadbeef;
- recvbuf[i*COUNT+j] = 0xdeadbeef;
- }
- }
- MPI_Iscatterv(buf, sendcounts, sdispls, MPI_INT, recvbuf, COUNT, MPI_INT, 0, comm, req);
- break;
+ MPI_Igather(buf, COUNT, MPI_INT, recvbuf, COUNT, type, 0, comm, req);
+ MPI_Type_free(&type); /* should cause implementations that don't refcount
+ * correctly to blow up or hang in the wait */
+ }
+ break;