1 /* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
3 * (C) 2001 by Argonne National Laboratory.
4 * See COPYRIGHT in top-level directory.
6 /* Test of info that makes use of the extended handles */
11 #include "mpitestconf.h"
17 #define MAX_INFOS 4000
23 int main(int argc, char *argv[])
25 MPI_Info infos[MAX_INFOS];
26 char key[64], value[64];
30 MTest_Init(&argc, &argv);
32 for (i = 0; i < MAX_INFOS; i++) {
33 MPI_Info_create(&infos[i]);
35 printf("Info handle is %x\n", infos[i]);
37 for (j = 0; j < info_list; j++) {
38 sprintf(key, "key%d-%d", i, j);
39 sprintf(value, "value%d-%d", i, j);
41 printf("Creating key/value %s=%s\n", key, value);
43 MPI_Info_set(infos[i], key, value);
48 MPI_Info_get_nkeys(infos[0], &nkeys);
49 if (nkeys != info_list) {
50 printf("infos[0] changed at %d info\n", i);
56 for (i = 0; i < MAX_INFOS; i++) {
58 /*printf("info = %x\n", infos[i]);
59 * print_handle(infos[i]); printf("\n"); */
60 MPI_Info_get_nkeys(infos[i], &nkeys);
61 if (nkeys != info_list) {
63 if (errs < MAX_ERRORS) {
64 printf("Wrong number of keys for info %d; got %d, should be %d\n",
68 for (j = 0; j < nkeys; j++) {
72 MPI_Info_get_nthkey(infos[i], j, key);
73 sprintf(keystr, "key%d-%d", i, j);
74 if (strcmp(keystr, key) != 0) {
76 if (errs < MAX_ERRORS) {
77 printf("Wrong key for info %d; got %s expected %s\n", i, key, keystr);
81 MPI_Info_get(infos[i], key, sizeof(value), value, &flag);
84 if (errs < MAX_ERRORS) {
85 printf("Get failed to return value for info %d\n", i);
89 sprintf(valstr, "value%d-%d", i, j);
90 if (strcmp(valstr, value) != 0) {
92 if (errs < MAX_ERRORS) {
93 printf("Wrong value for info %d; got %s expected %s\n", i, value, valstr);
98 for (i = 0; i < MAX_INFOS; i++) {
99 MPI_Info_free(&infos[i]);
102 MTest_Finalize(errs);