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 );
47 MPI_Info_get_nkeys( infos[0], &nkeys );
48 if (nkeys != info_list) {
49 printf( "infos[0] changed at %d info\n", i );}
54 for (i=0; i<MAX_INFOS; i++) {
56 /*printf( "info = %x\n", infos[i] );
57 print_handle( infos[i] ); printf( "\n" );*/
58 MPI_Info_get_nkeys( infos[i], &nkeys );
59 if (nkeys != info_list) {
61 if (errs < MAX_ERRORS) {
62 printf( "Wrong number of keys for info %d; got %d, should be %d\n",
63 i, nkeys, info_list );
66 for (j=0; j<nkeys; j++) {
70 MPI_Info_get_nthkey( infos[i], j, key );
71 sprintf( keystr, "key%d-%d", i, j );
72 if (strcmp( keystr, key ) != 0) {
74 if (errs < MAX_ERRORS) {
75 printf( "Wrong key for info %d; got %s expected %s\n",
80 MPI_Info_get( infos[i], key, sizeof(value), value, &flag );
83 if (errs < MAX_ERRORS) {
84 printf( "Get failed to return value for info %d\n", i );
88 sprintf( valstr, "value%d-%d", i, j );
89 if (strcmp( valstr, value ) != 0) {
91 if (errs < MAX_ERRORS) {
92 printf( "Wrong value for info %d; got %s expected %s\n",
98 for (i=0; i<MAX_INFOS; i++) {
99 MPI_Info_free( &infos[i] );
102 MTest_Finalize( errs );