diff options
author | Pedro Vicente Nunes <pvn@hdfgroup.org> | 2009-01-26 19:29:22 (GMT) |
---|---|---|
committer | Pedro Vicente Nunes <pvn@hdfgroup.org> | 2009-01-26 19:29:22 (GMT) |
commit | 120350c39588d57d6b89bd99569a7fa34b4de59f (patch) | |
tree | dda9cdb9248d698832c0bd25425029634cfd2d7e /tools/lib | |
parent | 0682bfceb764bd4f4b4fb61695ca8d99440f39b1 (diff) | |
download | hdf5-120350c39588d57d6b89bd99569a7fa34b4de59f.zip hdf5-120350c39588d57d6b89bd99569a7fa34b4de59f.tar.gz hdf5-120350c39588d57d6b89bd99569a7fa34b4de59f.tar.bz2 |
[svn-r16348] #1368 (E1) h5diff: implement "not comparable" messages. Implemented RFC. The new option is <-c, --compare List objects that are not comparable>
added some test cases
tested: windows, linux
Diffstat (limited to 'tools/lib')
-rw-r--r-- | tools/lib/h5diff.c | 6 | ||||
-rw-r--r-- | tools/lib/h5diff.h | 3 | ||||
-rw-r--r-- | tools/lib/h5diff_array.c | 54 | ||||
-rw-r--r-- | tools/lib/h5diff_attr.c | 5 | ||||
-rw-r--r-- | tools/lib/h5diff_dset.c | 123 |
5 files changed, 84 insertions, 107 deletions
diff --git a/tools/lib/h5diff.c b/tools/lib/h5diff.c index a7d9a05..38c5f54 100644 --- a/tools/lib/h5diff.c +++ b/tools/lib/h5diff.c @@ -846,10 +846,12 @@ hsize_t diff_compare(hid_t file1_id, /* objects are not the same type */ if (info1->paths[i].type != info2->paths[j].type) { - if (options->m_verbose) - parallel_print("Comparison not possible: <%s> is of type %s and <%s> is of type %s\n", + if (options->m_verbose||options->m_list_not_cmp) + { + parallel_print("<%s> is of type %s and <%s> is of type %s\n", obj1_name, get_type(info1->paths[i].type), obj2_name, get_type(info2->paths[j].type)); + } options->not_cmp=1; return 0; } diff --git a/tools/lib/h5diff.h b/tools/lib/h5diff.h index 57d06a5..9028ce5 100644 --- a/tools/lib/h5diff.h +++ b/tools/lib/h5diff.h @@ -35,10 +35,11 @@ typedef struct { int n; /* count, compare up to count */ hsize_t count; /* count value */ int err_stat; /* an error ocurred (1, error, 0, no error) */ - int cmn_objs; /* do we have comparable objects */ + int cmn_objs; /* do we have common objects */ int not_cmp; /* are the objects comparable */ int contents; /* equal contents */ int do_nans; /* consider Nans while diffing floats */ + int m_list_not_cmp; /* list not comparable messages */ } diff_opt_t; diff --git a/tools/lib/h5diff_array.c b/tools/lib/h5diff_array.c index 5481d23..8d733b3 100644 --- a/tools/lib/h5diff_array.c +++ b/tools/lib/h5diff_array.c @@ -831,7 +831,6 @@ hsize_t diff_datum(void *_mem1, parallel_print(SPACES); parallel_print(I_FORMAT_P_NOTCOMP,temp1_char,temp2_char,ABS(temp1_char-temp2_char)); } - options->not_cmp=1; nfound++; } @@ -861,7 +860,6 @@ hsize_t diff_datum(void *_mem1, parallel_print(SPACES); parallel_print(I_FORMAT_P_NOTCOMP,temp1_char,temp2_char,ABS(temp1_char-temp2_char)); } - options->not_cmp=1; nfound++; } @@ -930,7 +928,6 @@ hsize_t diff_datum(void *_mem1, parallel_print(SPACES); parallel_print(I_FORMAT_P_NOTCOMP,temp1_uchar,temp2_uchar,PDIFF(temp1_uchar,temp2_uchar)); } - options->not_cmp=1; nfound++; } @@ -960,7 +957,6 @@ hsize_t diff_datum(void *_mem1, parallel_print(SPACES); parallel_print(I_FORMAT_P_NOTCOMP,temp1_uchar,temp2_uchar,PDIFF(temp1_uchar,temp2_uchar)); } - options->not_cmp=1; nfound++; } @@ -1031,7 +1027,6 @@ hsize_t diff_datum(void *_mem1, parallel_print(SPACES); parallel_print(I_FORMAT_P_NOTCOMP,temp1_short,temp2_short,ABS(temp1_short-temp2_short)); } - options->not_cmp=1; nfound++; } @@ -1061,7 +1056,6 @@ hsize_t diff_datum(void *_mem1, parallel_print(SPACES); parallel_print(I_FORMAT_P_NOTCOMP,temp1_short,temp2_short,ABS(temp1_short-temp2_short)); } - options->not_cmp=1; nfound++; } @@ -1134,7 +1128,6 @@ hsize_t diff_datum(void *_mem1, parallel_print(I_FORMAT_P_NOTCOMP,temp1_ushort,temp2_ushort, PDIFF(temp1_ushort,temp2_ushort)); } - options->not_cmp=1; nfound++; } @@ -1164,7 +1157,6 @@ hsize_t diff_datum(void *_mem1, parallel_print(SPACES); parallel_print(I_FORMAT_P_NOTCOMP,temp1_ushort,temp2_ushort,PDIFF(temp1_ushort,temp2_ushort)); } - options->not_cmp=1; nfound++; } @@ -1234,7 +1226,6 @@ hsize_t diff_datum(void *_mem1, parallel_print(SPACES); parallel_print(I_FORMAT_P_NOTCOMP,temp1_int,temp2_int,ABS(temp1_int-temp2_int)); } - options->not_cmp=1; nfound++; } @@ -1264,7 +1255,6 @@ hsize_t diff_datum(void *_mem1, parallel_print(SPACES); parallel_print(I_FORMAT_P_NOTCOMP,temp1_int,temp2_int,ABS(temp1_int-temp2_int)); } - options->not_cmp=1; nfound++; } @@ -1334,7 +1324,6 @@ hsize_t diff_datum(void *_mem1, parallel_print(SPACES); parallel_print(I_FORMAT_P_NOTCOMP,temp1_uint,temp2_uint,PDIFF(temp1_uint,temp2_uint)); } - options->not_cmp=1; nfound++; } @@ -1364,7 +1353,6 @@ hsize_t diff_datum(void *_mem1, parallel_print(SPACES); parallel_print(I_FORMAT_P_NOTCOMP,temp1_uint,temp2_uint,PDIFF(temp1_uint,temp2_uint)); } - options->not_cmp=1; nfound++; } @@ -1435,7 +1423,6 @@ hsize_t diff_datum(void *_mem1, parallel_print(LI_FORMAT_P_NOTCOMP,temp1_long,temp2_long, ABS(temp1_long-temp2_long)); } - options->not_cmp=1; nfound++; } @@ -1465,7 +1452,6 @@ hsize_t diff_datum(void *_mem1, parallel_print(SPACES); parallel_print(LI_FORMAT_P_NOTCOMP,temp1_long,temp2_long,ABS(temp1_long-temp2_long)); } - options->not_cmp=1; nfound++; } @@ -1536,7 +1522,6 @@ hsize_t diff_datum(void *_mem1, parallel_print(SPACES); parallel_print(ULI_FORMAT_P_NOTCOMP,temp1_ulong,temp2_ulong,PDIFF(temp1_ulong,temp2_ulong)); } - options->not_cmp=1; nfound++; } @@ -1566,7 +1551,6 @@ hsize_t diff_datum(void *_mem1, parallel_print(SPACES); parallel_print(ULI_FORMAT_P_NOTCOMP,temp1_ulong,temp2_ulong,PDIFF(temp1_ulong,temp2_ulong)); } - options->not_cmp=1; nfound++; } @@ -1637,7 +1621,6 @@ hsize_t diff_datum(void *_mem1, parallel_print(SPACES); parallel_print(LLI_FORMAT_P_NOTCOMP,temp1_llong,temp2_llong,ABS(temp1_llong-temp2_llong)); } - options->not_cmp=1; nfound++; } @@ -1667,7 +1650,6 @@ hsize_t diff_datum(void *_mem1, parallel_print(SPACES); parallel_print(LLI_FORMAT_P_NOTCOMP,temp1_llong,temp2_llong,ABS(temp1_llong-temp2_llong)); } - options->not_cmp=1; nfound++; } @@ -1739,7 +1721,6 @@ hsize_t diff_datum(void *_mem1, parallel_print(SPACES); parallel_print(ULLI_FORMAT_P_NOTCOMP,temp1_ullong,temp2_ullong,PDIFF(temp1_ullong,temp2_ullong)); } - options->not_cmp=1; nfound++; } @@ -1772,7 +1753,6 @@ hsize_t diff_datum(void *_mem1, parallel_print(SPACES); parallel_print(ULLI_FORMAT_P_NOTCOMP,temp1_ullong,temp2_ullong,PDIFF(temp1_ullong,temp2_ullong)); } - options->not_cmp=1; nfound++; } @@ -1899,7 +1879,6 @@ hsize_t diff_datum(void *_mem1, parallel_print(SPACES); parallel_print(F_FORMAT_P_NOTCOMP,temp1_float,temp2_float,ABS(temp1_float-temp2_float)); } - options->not_cmp=1; nfound++; } @@ -1953,7 +1932,6 @@ hsize_t diff_datum(void *_mem1, parallel_print(F_FORMAT_P_NOTCOMP,temp1_float,temp2_float, ABS(temp1_float-temp2_float)); } - options->not_cmp=1; nfound++; } @@ -2077,7 +2055,6 @@ hsize_t diff_datum(void *_mem1, parallel_print(F_FORMAT_P_NOTCOMP,temp1_double,temp2_double, ABS(temp1_double-temp2_double)); } - options->not_cmp=1; nfound++; } @@ -2130,7 +2107,6 @@ hsize_t diff_datum(void *_mem1, parallel_print(F_FORMAT_P_NOTCOMP,temp1_double,temp2_double, ABS(temp1_double-temp2_double)); } - options->not_cmp=1; nfound++; } @@ -2257,7 +2233,6 @@ hsize_t diff_datum(void *_mem1, parallel_print(LD_FORMAT_P_NOTCOMP,temp1_double,temp2_double, ABS(temp1_double-temp2_double)); } - options->not_cmp=1; nfound++; } @@ -2310,7 +2285,6 @@ hsize_t diff_datum(void *_mem1, parallel_print(LD_FORMAT_P_NOTCOMP,temp1_double,temp2_double, ABS(temp1_double-temp2_double)); } - options->not_cmp=1; nfound++; } @@ -2863,7 +2837,6 @@ hsize_t diff_float(unsigned char *mem1, parallel_print(F_FORMAT_P_NOTCOMP,temp1_float,temp2_float, ABS(temp1_float-temp2_float)); } - options->not_cmp=1; nfound++; } @@ -2925,7 +2898,6 @@ hsize_t diff_float(unsigned char *mem1, parallel_print(F_FORMAT_P_NOTCOMP,temp1_float,temp2_float, ABS(temp1_float-temp2_float)); } - options->not_cmp=1; nfound++; } @@ -3073,7 +3045,6 @@ hsize_t diff_double(unsigned char *mem1, parallel_print(F_FORMAT_P_NOTCOMP,temp1_double,temp2_double, ABS(temp1_double-temp2_double)); } - options->not_cmp=1; nfound++; } @@ -3118,7 +3089,6 @@ hsize_t diff_double(unsigned char *mem1, parallel_print(F_FORMAT_P_NOTCOMP,temp1_double,temp2_double, ABS(temp1_double-temp2_double)); } - options->not_cmp=1; nfound++; } @@ -3252,7 +3222,6 @@ hsize_t diff_ldouble(unsigned char *mem1, parallel_print(LD_FORMAT_P_NOTCOMP,temp1_double,temp2_double, ABS(temp1_double-temp2_double)); } - options->not_cmp=1; nfound++; } @@ -3297,7 +3266,6 @@ hsize_t diff_ldouble(unsigned char *mem1, parallel_print(LD_FORMAT_P_NOTCOMP,temp1_double,temp2_double, ABS(temp1_double-temp2_double)); } - options->not_cmp=1; nfound++; } @@ -3430,7 +3398,6 @@ hsize_t diff_schar(unsigned char *mem1, parallel_print(I_FORMAT_P_NOTCOMP,temp1_char,temp2_char, ABS(temp1_char-temp2_char)); } - options->not_cmp=1; nfound++; } @@ -3475,7 +3442,6 @@ hsize_t diff_schar(unsigned char *mem1, parallel_print(I_FORMAT_P_NOTCOMP,temp1_char,temp2_char, ABS(temp1_char-temp2_char)); } - options->not_cmp=1; nfound++; } @@ -3610,7 +3576,6 @@ hsize_t diff_uchar(unsigned char *mem1, parallel_print(I_FORMAT_P_NOTCOMP,temp1_uchar,temp2_uchar, PDIFF(temp1_uchar,temp2_uchar)); } - options->not_cmp=1; nfound++; } @@ -3655,7 +3620,6 @@ hsize_t diff_uchar(unsigned char *mem1, parallel_print(I_FORMAT_P_NOTCOMP,temp1_uchar,temp2_uchar, PDIFF(temp1_uchar,temp2_uchar)); } - options->not_cmp=1; nfound++; } @@ -3787,7 +3751,6 @@ hsize_t diff_short(unsigned char *mem1, parallel_print(I_FORMAT_P_NOTCOMP,temp1_short,temp2_short, ABS(temp1_short-temp2_short)); } - options->not_cmp=1; nfound++; } @@ -3834,7 +3797,6 @@ hsize_t diff_short(unsigned char *mem1, parallel_print(I_FORMAT_P_NOTCOMP,temp1_short,temp2_short, ABS(temp1_short-temp2_short)); } - options->not_cmp=1; nfound++; } @@ -3967,7 +3929,6 @@ hsize_t diff_ushort(unsigned char *mem1, parallel_print(I_FORMAT_P_NOTCOMP,temp1_ushort,temp2_ushort, PDIFF(temp1_ushort,temp2_ushort)); } - options->not_cmp=1; nfound++; } @@ -4014,7 +3975,6 @@ hsize_t diff_ushort(unsigned char *mem1, parallel_print(I_FORMAT_P_NOTCOMP,temp1_ushort,temp2_ushort, PDIFF(temp1_ushort,temp2_ushort)); } - options->not_cmp=1; nfound++; } @@ -4148,7 +4108,6 @@ hsize_t diff_int(unsigned char *mem1, parallel_print(I_FORMAT_P_NOTCOMP,temp1_int,temp2_int, ABS(temp1_int-temp2_int)); } - options->not_cmp=1; nfound++; } @@ -4195,7 +4154,6 @@ hsize_t diff_int(unsigned char *mem1, parallel_print(I_FORMAT_P_NOTCOMP,temp1_int,temp2_int, ABS(temp1_int-temp2_int)); } - options->not_cmp=1; nfound++; } @@ -4328,7 +4286,6 @@ hsize_t diff_uint(unsigned char *mem1, parallel_print(SPACES); parallel_print(I_FORMAT_P_NOTCOMP,temp1_uint,temp2_uint,PDIFF(temp1_uint,temp2_uint)); } - options->not_cmp=1; nfound++; } @@ -4374,7 +4331,6 @@ hsize_t diff_uint(unsigned char *mem1, parallel_print(SPACES); parallel_print(I_FORMAT_P_NOTCOMP,temp1_uint,temp2_uint,PDIFF(temp1_uint,temp2_uint)); } - options->not_cmp=1; nfound++; } @@ -4511,7 +4467,6 @@ hsize_t diff_long(unsigned char *mem1, parallel_print(LI_FORMAT_P_NOTCOMP,temp1_long,temp2_long, ABS(temp1_long-temp2_long)); } - options->not_cmp=1; nfound++; } @@ -4558,7 +4513,6 @@ hsize_t diff_long(unsigned char *mem1, parallel_print(LI_FORMAT_P_NOTCOMP,temp1_long,temp2_long, ABS(temp1_long-temp2_long)); } - options->not_cmp=1; nfound++; } @@ -4698,7 +4652,6 @@ hsize_t diff_ulong(unsigned char *mem1, parallel_print(SPACES); parallel_print(ULI_FORMAT_P_NOTCOMP,temp1_ulong,temp2_ulong,PDIFF(temp1_ulong,temp2_ulong)); } - options->not_cmp=1; nfound++; } @@ -4744,7 +4697,6 @@ hsize_t diff_ulong(unsigned char *mem1, parallel_print(SPACES); parallel_print(ULI_FORMAT_P_NOTCOMP,temp1_ulong,temp2_ulong,PDIFF(temp1_ulong,temp2_ulong)); } - options->not_cmp=1; nfound++; } @@ -4877,7 +4829,6 @@ hsize_t diff_llong(unsigned char *mem1, parallel_print(SPACES); parallel_print(LLI_FORMAT_P_NOTCOMP,temp1_llong,temp2_llong,ABS(temp1_llong-temp2_llong)); } - options->not_cmp=1; nfound++; } @@ -4921,7 +4872,6 @@ hsize_t diff_llong(unsigned char *mem1, parallel_print(SPACES); parallel_print(LLI_FORMAT_P_NOTCOMP,temp1_llong,temp2_llong,ABS(temp1_llong-temp2_llong)); } - options->not_cmp=1; nfound++; } @@ -5055,7 +5005,6 @@ hsize_t diff_ullong(unsigned char *mem1, parallel_print(SPACES); parallel_print(ULLI_FORMAT_P_NOTCOMP,temp1_ullong,temp2_ullong,PDIFF(temp1_ullong,temp2_ullong)); } - options->not_cmp=1; nfound++; } @@ -5101,7 +5050,6 @@ hsize_t diff_ullong(unsigned char *mem1, parallel_print(SPACES); parallel_print(ULLI_FORMAT_P_NOTCOMP,temp1_ullong,temp2_ullong,PDIFF(temp1_ullong,temp2_ullong)); } - options->not_cmp=1; nfound++; } @@ -5449,6 +5397,8 @@ my_isnan(dtype_t type, void *val) double x; HDmemcpy(&x, val, sizeof(double)); retval = (x!=x); + //printf("x=%g retval =%d\n", x,retval); + #if H5_SIZEOF_LONG_DOUBLE!=H5_SIZEOF_DOUBLE && H5_SIZEOF_LONG_DOUBLE!=0 } else if (FLT_LDOUBLE==type) diff --git a/tools/lib/h5diff_attr.c b/tools/lib/h5diff_attr.c index 6dec22b..747b12c 100644 --- a/tools/lib/h5diff_attr.c +++ b/tools/lib/h5diff_attr.c @@ -150,11 +150,6 @@ hsize_t diff_attr(hid_t loc1_id, options)!=1) { - if (options->m_verbose) - printf("Comparison not possible for attribute <%s>\n", - name1); - - options->not_cmp=1; if (H5Tclose(ftype1_id)<0) goto error; diff --git a/tools/lib/h5diff_dset.c b/tools/lib/h5diff_dset.c index 212f089..d36c65c 100644 --- a/tools/lib/h5diff_dset.c +++ b/tools/lib/h5diff_dset.c @@ -44,7 +44,7 @@ hsize_t diff_dataset( hid_t file1_id, hid_t dcpl1 = -1; hid_t dcpl2 = -1; hsize_t nfound = 0; - + /*------------------------------------------------------------------------- * open the handles *------------------------------------------------------------------------- @@ -102,7 +102,8 @@ hsize_t diff_dataset( hid_t file1_id, H5Dclose(did2); /* enable error reporting */ } H5E_END_TRY; - + + return nfound; error: @@ -206,7 +207,7 @@ hsize_t diff_datasetid( hid_t did1, hsize_t storage_size1; hsize_t storage_size2; hsize_t nfound=0; /* number of differences found */ - int cmp=1; /* do diff or not */ + int can_compare=1; /* do diff or not */ void *buf1=NULL; void *buf2=NULL; void *sm_buf1=NULL; @@ -265,9 +266,9 @@ hsize_t diff_datasetid( hid_t did1, if (storage_size1==0 || storage_size2==0) { - if (options->m_verbose && obj1_name && obj2_name) + if ( (options->m_verbose||options->m_list_not_cmp) && obj1_name && obj2_name) parallel_print("<%s> or <%s> are empty datasets\n", obj1_name, obj2_name); - cmp=0; + can_compare=0; options->not_cmp=1; } @@ -288,8 +289,7 @@ hsize_t diff_datasetid( hid_t did1, obj2_name, options)!=1) { - cmp=0; - options->not_cmp=1; + can_compare=0; } /*------------------------------------------------------------------------- @@ -314,12 +314,13 @@ hsize_t diff_datasetid( hid_t did1, sign2=H5Tget_sign(m_tid2); if ( sign1 != sign2 ) { - if (options->m_verbose && obj1_name) { - parallel_print("Comparison not supported: <%s> has sign %s ", obj1_name, get_sign(sign1)); + if ((options->m_verbose||options->m_list_not_cmp) && obj1_name && obj2_name) + { + parallel_print("<%s> has sign %s ", obj1_name, get_sign(sign1)); parallel_print("and <%s> has sign %s\n", obj2_name, get_sign(sign2)); } - cmp=0; + can_compare=0; options->not_cmp=1; } @@ -327,7 +328,7 @@ hsize_t diff_datasetid( hid_t did1, * only attempt to compare if possible *------------------------------------------------------------------------- */ - if (cmp) + if (can_compare ) /* it is possible to compare */ { /*------------------------------------------------------------------------- @@ -543,7 +544,7 @@ hsize_t diff_datasetid( hid_t did1, } } /* hyperslab read */ - }/*cmp*/ + }/*can_compare*/ /*------------------------------------------------------------------------- * compare attributes @@ -669,6 +670,7 @@ int diff_can_type( hid_t f_tid1, /* file data type */ int maxdim_diff=0; /* maximum dimensions are different */ int dim_diff=0; /* current dimensions are different */ int i; + int can_compare = 1; /* return value */ /*------------------------------------------------------------------------- * check for the same class @@ -683,13 +685,15 @@ int diff_can_type( hid_t f_tid1, /* file data type */ if ( tclass1 != tclass2 ) { - if (options->m_verbose && obj1_name) + if ( (options->m_verbose||options->m_list_not_cmp) && obj1_name && obj2_name) { - printf("Comparison not possible: <%s> is of class %s and <%s> is of class %s\n", + parallel_print("<%s> is of class %s and <%s> is of class %s\n", obj1_name, get_class(tclass1), obj2_name, get_class(tclass2) ); } - return 0; + can_compare = 0; + options->not_cmp = 1; + return can_compare; } /*------------------------------------------------------------------------- @@ -714,10 +718,16 @@ int diff_can_type( hid_t f_tid1, /* file data type */ break; default: /*H5T_TIME */ - if (options->m_verbose && obj1_name ) - printf("Comparison not supported: <%s> and <%s> are of class %s\n", - obj1_name,obj2_name,get_class(tclass2) ); - return 0; + + + if ( (options->m_verbose||options->m_list_not_cmp) && obj1_name && obj2_name) + { + parallel_print("<%s> and <%s> are of class %s\n", + obj1_name,obj2_name,get_class(tclass2) ); + } + can_compare = 0; + options->not_cmp = 1; + return can_compare; } /*------------------------------------------------------------------------- @@ -725,21 +735,26 @@ int diff_can_type( hid_t f_tid1, /* file data type */ *------------------------------------------------------------------------- */ - if ( (H5Tequal(f_tid1, f_tid2)==0) && options->m_verbose && obj1_name) + if ( (H5Tequal(f_tid1, f_tid2)==0) && + (options->m_verbose) && obj1_name && obj2_name) { H5T_class_t cl = H5Tget_class(f_tid1); - - printf("Warning: different storage datatype\n"); + + + parallel_print("Warning: different storage datatype\n"); if ( cl == H5T_INTEGER || cl == H5T_FLOAT ) { - printf("<%s> has file datatype ", obj1_name); + parallel_print("<%s> has file datatype ", obj1_name); print_type(f_tid1); - printf("\n"); - printf("<%s> has file datatype ", obj2_name); + parallel_print("\n"); + parallel_print("<%s> has file datatype ", obj2_name); print_type(f_tid2); - printf("\n"); + parallel_print("\n"); } + + + } /*------------------------------------------------------------------------- @@ -749,18 +764,23 @@ int diff_can_type( hid_t f_tid1, /* file data type */ if ( rank1 != rank2 ) { - if (options->m_verbose && obj1_name) { - printf("Comparison not supported: <%s> has rank %d, dimensions ", obj1_name, rank1); + + if ( (options->m_verbose||options->m_list_not_cmp) && obj1_name && obj2_name) + { + parallel_print("<%s> has rank %d, dimensions ", obj1_name, rank1); print_dimensions(rank1,dims1); - printf(", max dimensions "); + parallel_print(", max dimensions "); print_dimensions(rank1,maxdim1); - printf("\n" ); - printf("<%s> has rank %d, dimensions ", obj2_name, rank2); + parallel_print("\n" ); + parallel_print("<%s> has rank %d, dimensions ", obj2_name, rank2); print_dimensions(rank2,dims2); - printf(", max dimensions "); + parallel_print(", max dimensions "); print_dimensions(rank2,maxdim2); } - return 0; + + can_compare = 0; + options->not_cmp = 1; + return can_compare; } /*------------------------------------------------------------------------- @@ -787,20 +807,29 @@ int diff_can_type( hid_t f_tid1, /* file data type */ if (dim_diff==1) { - if (options->m_verbose && obj1_name) { - printf("Comparison not supported: <%s> has rank %d, dimensions ", obj1_name, rank1); + if ( (options->m_verbose||options->m_list_not_cmp) && obj1_name && obj2_name) + { + parallel_print("<%s> has rank %d, dimensions ", obj1_name, rank1); print_dimensions(rank1,dims1); - if (maxdim1 && maxdim2) { - printf(", max dimensions "); + if (maxdim1 && maxdim2) + { + parallel_print(", max dimensions "); print_dimensions(rank1,maxdim1); - printf("\n" ); - printf("<%s> has rank %d, dimensions ", obj2_name, rank2); + parallel_print("\n" ); + parallel_print("<%s> has rank %d, dimensions ", obj2_name, rank2); print_dimensions(rank2,dims2); - printf(", max dimensions "); + parallel_print(", max dimensions "); print_dimensions(rank2,maxdim2); } } - return 0; + + + can_compare = 0; + options->not_cmp = 1; + return can_compare; + + + } /*------------------------------------------------------------------------- @@ -810,17 +839,17 @@ int diff_can_type( hid_t f_tid1, /* file data type */ if (maxdim1 && maxdim2 && maxdim_diff==1 && obj1_name ) { if (options->m_verbose) { - printf( "Warning: different maximum dimensions\n"); - printf("<%s> has max dimensions ", obj1_name); + parallel_print( "Warning: different maximum dimensions\n"); + parallel_print("<%s> has max dimensions ", obj1_name); print_dimensions(rank1,maxdim1); - printf("\n"); - printf("<%s> has max dimensions ", obj2_name); + parallel_print("\n"); + parallel_print("<%s> has max dimensions ", obj2_name); print_dimensions(rank2,maxdim2); - printf("\n"); + parallel_print("\n"); } } - return 1; + return can_compare; } |