diff options
-rw-r--r-- | release_docs/RELEASE.txt | 6 | ||||
-rw-r--r-- | tools/h5diff/testfiles/h5diff_220.txt | 2 | ||||
-rw-r--r-- | tools/h5diff/testfiles/h5diff_221.txt | 4 | ||||
-rw-r--r-- | tools/h5diff/testfiles/h5diff_222.txt | 6 | ||||
-rw-r--r-- | tools/h5diff/testfiles/h5diff_59.txt | 2 | ||||
-rw-r--r-- | tools/h5diff/testfiles/h5diff_70.txt | 2 | ||||
-rw-r--r-- | tools/h5diff/testfiles/h5diff_700.txt | 2 | ||||
-rw-r--r-- | tools/h5diff/testfiles/h5diff_701.txt | 2 | ||||
-rw-r--r-- | tools/h5diff/testfiles/h5diff_702.txt | 2 | ||||
-rw-r--r-- | tools/h5diff/testfiles/h5diff_703.txt | 2 | ||||
-rw-r--r-- | tools/h5diff/testfiles/h5diff_705.txt | 2 | ||||
-rw-r--r-- | tools/h5diff/testfiles/h5diff_710.txt | 2 | ||||
-rw-r--r-- | tools/lib/h5diff.c | 22 | ||||
-rw-r--r-- | tools/lib/h5diff_dset.c | 7 |
14 files changed, 40 insertions, 23 deletions
diff --git a/release_docs/RELEASE.txt b/release_docs/RELEASE.txt index dd83d84..1572d24 100644 --- a/release_docs/RELEASE.txt +++ b/release_docs/RELEASE.txt @@ -116,6 +116,12 @@ Bug Fixes since HDF5-1.8.9 Tools ----- + - h5diff: Fixed not to accumulate attribute difference to dataset + difference in verbose mode (-v, -r), which caused incorrect + difference between dataset and group/datatype object if attribute + exist with any differences. This also lead to fix inconsistent + format indicating difference between dataset and group/datatype + object. HDFFV-5919 (JKM 2012/09/10) - h5diff: Fixed the incorrect result when comparing attribute data values and the data type has same class but different size. HDFFV-7942 (JKM 2012/08/15) diff --git a/tools/h5diff/testfiles/h5diff_220.txt b/tools/h5diff/testfiles/h5diff_220.txt index cadbb6d..0092fc1 100644 --- a/tools/h5diff/testfiles/h5diff_220.txt +++ b/tools/h5diff/testfiles/h5diff_220.txt @@ -1,8 +1,6 @@ Not comparable: </g1/dset1> is of class H5T_INTEGER and </g1/dset1> is of class H5T_STRING attribute: <attr of </g1/dset1>> and <attr of </g1/dset1>> 3 differences found -dataset: </g1/dset1> and </g1/dset1> -3 differences found dataset: </g1/dset2> and </g1/dset2> 3 differences found EXIT CODE: 1 diff --git a/tools/h5diff/testfiles/h5diff_221.txt b/tools/h5diff/testfiles/h5diff_221.txt index 621f5c3..5f10860 100644 --- a/tools/h5diff/testfiles/h5diff_221.txt +++ b/tools/h5diff/testfiles/h5diff_221.txt @@ -1,3 +1,5 @@ +dataset: </g2/dset1> and </g2/dset1> +3 differences found Not comparable: <attr1> is of class H5T_INTEGER and <attr1> is of class H5T_STRING Not comparable: <attr2> has rank 1, dimensions [3], max dimensions [3] and <attr2> has rank 1, dimensions [4], max dimensions [4] @@ -5,8 +7,6 @@ Not comparable: <attr3> has rank 1, dimensions [3], max dimensions [3] and <attr3> has rank 2, dimensions [3x1], max dimensions [3x1] attribute: <attr4 of </g2/dset1>> and <attr4 of </g2/dset1>> 3 differences found -dataset: </g2/dset1> and </g2/dset1> -6 differences found dataset: </g2/dset2> and </g2/dset2> 3 differences found EXIT CODE: 1 diff --git a/tools/h5diff/testfiles/h5diff_222.txt b/tools/h5diff/testfiles/h5diff_222.txt index 53c9464..77447da 100644 --- a/tools/h5diff/testfiles/h5diff_222.txt +++ b/tools/h5diff/testfiles/h5diff_222.txt @@ -4,10 +4,10 @@ Not comparable: </diffobjtypes/obj3> is of type H5G_TYPE and </diffobjtypes/obj3 Not comparable: </g1/dset1> is of class H5T_INTEGER and </g1/dset1> is of class H5T_STRING attribute: <attr of </g1/dset1>> and <attr of </g1/dset1>> 3 differences found -dataset: </g1/dset1> and </g1/dset1> -3 differences found dataset: </g1/dset2> and </g1/dset2> 3 differences found +dataset: </g2/dset1> and </g2/dset1> +3 differences found Not comparable: <attr1> is of class H5T_INTEGER and <attr1> is of class H5T_STRING Not comparable: <attr2> has rank 1, dimensions [3], max dimensions [3] and <attr2> has rank 1, dimensions [4], max dimensions [4] @@ -15,8 +15,6 @@ Not comparable: <attr3> has rank 1, dimensions [3], max dimensions [3] and <attr3> has rank 2, dimensions [3x1], max dimensions [3x1] attribute: <attr4 of </g2/dset1>> and <attr4 of </g2/dset1>> 3 differences found -dataset: </g2/dset1> and </g2/dset1> -6 differences found dataset: </g2/dset2> and </g2/dset2> 3 differences found EXIT CODE: 1 diff --git a/tools/h5diff/testfiles/h5diff_59.txt b/tools/h5diff/testfiles/h5diff_59.txt index aeefa3a..996a7b2 100644 --- a/tools/h5diff/testfiles/h5diff_59.txt +++ b/tools/h5diff/testfiles/h5diff_59.txt @@ -2,10 +2,10 @@ dataset: </dset11a> and </dset11b> Warning: different storage datatype </dset11a> has file datatype H5T_STD_U16LE </dset11b> has file datatype H5T_STD_U32LE +0 differences found Warning: different storage datatype <attr> has file datatype H5T_STD_U16LE <attr> has file datatype H5T_STD_U32LE attribute: <attr of </dset11a>> and <attr of </dset11b>> 0 differences found -0 differences found EXIT CODE: 0 diff --git a/tools/h5diff/testfiles/h5diff_70.txt b/tools/h5diff/testfiles/h5diff_70.txt index 47b057c..0a6b0c0 100644 --- a/tools/h5diff/testfiles/h5diff_70.txt +++ b/tools/h5diff/testfiles/h5diff_70.txt @@ -678,6 +678,7 @@ position vlen3D of </> vlen3D of </> difference 59 differences found dataset: </dset> and </dset> Not comparable: </dset> or </dset> is an empty dataset +0 differences found attribute: <VLstring of </dset>> and <VLstring of </dset>> size: [2] [2] position VLstring of </dset> VLstring of </dset> difference @@ -1353,7 +1354,6 @@ position vlen3D of </dset> vlen3D of </dset> difference [ 3 2 1 ] 58 0 58 [ 3 2 1 ] 59 0 59 59 differences found -519 differences found group : </g1> and </g1> 0 differences found attribute: <VLstring of </g1>> and <VLstring of </g1>> diff --git a/tools/h5diff/testfiles/h5diff_700.txt b/tools/h5diff/testfiles/h5diff_700.txt index 00c5b07..1cf71dd 100644 --- a/tools/h5diff/testfiles/h5diff_700.txt +++ b/tools/h5diff/testfiles/h5diff_700.txt @@ -681,6 +681,7 @@ position vlen3D of </> vlen3D of </> difference dataset: </dset> and </dset> Not comparable: </dset> or </dset> is an empty dataset +0 differences found Attributes status: 33 common, 0 only in obj1, 0 only in obj2 attribute: <VLstring of </dset>> and <VLstring of </dset>> size: [2] [2] @@ -1357,7 +1358,6 @@ position vlen3D of </dset> vlen3D of </dset> difference [ 3 2 1 ] 58 0 58 [ 3 2 1 ] 59 0 59 59 differences found -519 differences found group : </g1> and </g1> 0 differences found diff --git a/tools/h5diff/testfiles/h5diff_701.txt b/tools/h5diff/testfiles/h5diff_701.txt index a4b436f..405ab2f 100644 --- a/tools/h5diff/testfiles/h5diff_701.txt +++ b/tools/h5diff/testfiles/h5diff_701.txt @@ -713,6 +713,7 @@ position vlen3D of </> vlen3D of </> difference dataset: </dset> and </dset> Not comparable: </dset> or </dset> is an empty dataset +0 differences found obj1 obj2 -------------------------------------- x x VLstring @@ -1424,7 +1425,6 @@ position vlen3D of </dset> vlen3D of </dset> difference [ 3 2 1 ] 58 0 58 [ 3 2 1 ] 59 0 59 59 differences found -519 differences found group : </g1> and </g1> 0 differences found diff --git a/tools/h5diff/testfiles/h5diff_702.txt b/tools/h5diff/testfiles/h5diff_702.txt index 00c5b07..1cf71dd 100644 --- a/tools/h5diff/testfiles/h5diff_702.txt +++ b/tools/h5diff/testfiles/h5diff_702.txt @@ -681,6 +681,7 @@ position vlen3D of </> vlen3D of </> difference dataset: </dset> and </dset> Not comparable: </dset> or </dset> is an empty dataset +0 differences found Attributes status: 33 common, 0 only in obj1, 0 only in obj2 attribute: <VLstring of </dset>> and <VLstring of </dset>> size: [2] [2] @@ -1357,7 +1358,6 @@ position vlen3D of </dset> vlen3D of </dset> difference [ 3 2 1 ] 58 0 58 [ 3 2 1 ] 59 0 59 59 differences found -519 differences found group : </g1> and </g1> 0 differences found diff --git a/tools/h5diff/testfiles/h5diff_703.txt b/tools/h5diff/testfiles/h5diff_703.txt index a4b436f..405ab2f 100644 --- a/tools/h5diff/testfiles/h5diff_703.txt +++ b/tools/h5diff/testfiles/h5diff_703.txt @@ -713,6 +713,7 @@ position vlen3D of </> vlen3D of </> difference dataset: </dset> and </dset> Not comparable: </dset> or </dset> is an empty dataset +0 differences found obj1 obj2 -------------------------------------- x x VLstring @@ -1424,7 +1425,6 @@ position vlen3D of </dset> vlen3D of </dset> difference [ 3 2 1 ] 58 0 58 [ 3 2 1 ] 59 0 59 59 differences found -519 differences found group : </g1> and </g1> 0 differences found diff --git a/tools/h5diff/testfiles/h5diff_705.txt b/tools/h5diff/testfiles/h5diff_705.txt index 1609189..2e52f18 100644 --- a/tools/h5diff/testfiles/h5diff_705.txt +++ b/tools/h5diff/testfiles/h5diff_705.txt @@ -1,5 +1,6 @@ dataset: </dset> and </dset> +0 differences found obj1 obj2 -------------------------------------- x float2 @@ -13,5 +14,4 @@ position integer1 of </dset> integer1 of </dset> difference [ 0 ] 1 2 1 [ 1 ] 2 3 1 2 differences found -2 differences found EXIT CODE: 1 diff --git a/tools/h5diff/testfiles/h5diff_710.txt b/tools/h5diff/testfiles/h5diff_710.txt index 862c062..10a8501 100644 --- a/tools/h5diff/testfiles/h5diff_710.txt +++ b/tools/h5diff/testfiles/h5diff_710.txt @@ -17,6 +17,7 @@ group : </> and </> Attributes status: 0 common, 0 only in obj1, 0 only in obj2 dataset: </dset> and </dset> +0 differences found obj1 obj2 -------------------------------------- x float2 @@ -30,7 +31,6 @@ position integer1 of </dset> integer1 of </dset> difference [ 0 ] 1 2 1 [ 1 ] 2 3 1 2 differences found -2 differences found group : </g> and </g> 0 differences found diff --git a/tools/lib/h5diff.c b/tools/lib/h5diff.c index c12b9da..9d73d2b 100644 --- a/tools/lib/h5diff.c +++ b/tools/lib/h5diff.c @@ -1524,6 +1524,8 @@ hsize_t diff(hid_t file1_id, diff_opt_t * options, diff_args_t *argdata) { + hid_t dset1_id = (-1); + hid_t dset2_id = (-1); hid_t type1_id = (-1); hid_t type2_id = (-1); hid_t grp1_id = (-1); @@ -1689,6 +1691,10 @@ hsize_t diff(hid_t file1_id, *---------------------------------------------------------------------- */ case H5TRAV_TYPE_DATASET: + if((dset1_id = H5Dopen2(file1_id, path1, H5P_DEFAULT)) < 0) + goto out; + if((dset2_id = H5Dopen2(file2_id, path2, H5P_DEFAULT)) < 0) + goto out; /* verbose (-v) and report (-r) mode */ if(options->m_verbose || options->m_report) { @@ -1712,6 +1718,22 @@ hsize_t diff(hid_t file1_id, print_found(nfound); } } + + + /*--------------------------------------------------------- + * compare attributes + * if condition refers to cases when the dataset is a + * referenced object + *--------------------------------------------------------- + */ + if(path1) + nfound += diff_attr(dset1_id, dset2_id, path1, path2, options); + + + if(H5Dclose(dset1_id) < 0) + goto out; + if(H5Dclose(dset2_id) < 0) + goto out; break; /*---------------------------------------------------------------------- diff --git a/tools/lib/h5diff_dset.c b/tools/lib/h5diff_dset.c index a08f0be..aea2192 100644 --- a/tools/lib/h5diff_dset.c +++ b/tools/lib/h5diff_dset.c @@ -499,13 +499,6 @@ hsize_t diff_datasetid( hid_t did1, } /* hyperslab read */ } /*can_compare*/ - /*------------------------------------------------------------------------- - * compare attributes - * the if condition refers to cases when the dataset is a referenced object - *------------------------------------------------------------------------- - */ - if(obj1_name) - nfound += diff_attr(did1,did2,obj1_name,obj2_name,options); /*------------------------------------------------------------------------- * close |