summaryrefslogtreecommitdiffstats
path: root/tools/lib/h5diff_dset.c
diff options
context:
space:
mode:
authorJonathan Kim <jkm@hdfgroup.org>2011-09-16 19:29:03 (GMT)
committerJonathan Kim <jkm@hdfgroup.org>2011-09-16 19:29:03 (GMT)
commit86faf0b30252ff752420010fce5a12b0498a2b04 (patch)
treee51f37c642e5402e2db78205d93930385857912e /tools/lib/h5diff_dset.c
parent35d9b3462131ec2287fc7e74c07584ed0d771067 (diff)
downloadhdf5-86faf0b30252ff752420010fce5a12b0498a2b04.zip
hdf5-86faf0b30252ff752420010fce5a12b0498a2b04.tar.gz
hdf5-86faf0b30252ff752420010fce5a12b0498a2b04.tar.bz2
[svn-r21396] Purpose:
HDFFV-7693 - h5diff produces different behavior between versions: 1.8.3 and 1.8.6 Description: There were two issues on this. One was not displaying all the comparable objects if non-comparable object/attribute exist and compared before comparables ones. This issue occurred after 1.8.4 release. This is the issue from user. The other issue was not displaying all the comparable attributes, if non-comparable object/attribute exist and compared ahead. This issue were exist even before 1.8.4 release. So it's possible some attribute comparison may have not displayed correctly in the past, if non-comparable data were exist in common object. Fixed h5diff to display all the comparable object and attribute regardless of non-comparables. Tested: jam (linux32-LE), koala (linux64-LE), heiwa (linuxppc64-BE), tejeda (mac32-LE), linew (solaris-BE), Cmake (jam, Windows)
Diffstat (limited to 'tools/lib/h5diff_dset.c')
-rw-r--r--tools/lib/h5diff_dset.c36
1 files changed, 19 insertions, 17 deletions
diff --git a/tools/lib/h5diff_dset.c b/tools/lib/h5diff_dset.c
index c26c766..03ec067 100644
--- a/tools/lib/h5diff_dset.c
+++ b/tools/lib/h5diff_dset.c
@@ -313,19 +313,21 @@ hsize_t diff_datasetid( hid_t did1,
* check for different signed/unsigned types
*-------------------------------------------------------------------------
*/
-
- sign1=H5Tget_sign(m_tid1);
- sign2=H5Tget_sign(m_tid2);
- if ( sign1 != sign2 )
+ if (can_compare)
{
- if ((options->m_verbose||options->m_list_not_cmp) && obj1_name && obj2_name)
+ sign1=H5Tget_sign(m_tid1);
+ sign2=H5Tget_sign(m_tid2);
+ if ( sign1 != sign2 )
{
- parallel_print("Not comparable: <%s> has sign %s ", obj1_name, get_sign(sign1));
- parallel_print("and <%s> has sign %s\n", obj2_name, get_sign(sign2));
+ if ((options->m_verbose||options->m_list_not_cmp) && obj1_name && obj2_name)
+ {
+ parallel_print("Not comparable: <%s> has sign %s ", obj1_name, get_sign(sign1));
+ parallel_print("and <%s> has sign %s\n", obj2_name, get_sign(sign2));
+ }
+
+ can_compare=0;
+ options->not_cmp=1;
}
-
- can_compare=0;
- options->not_cmp=1;
}
/* Check if type is either VLEN-data or VLEN-string to reclaim any
@@ -333,16 +335,16 @@ hsize_t diff_datasetid( hid_t did1,
if( TRUE == h5tools_detect_vlen(m_tid1) )
vl_data = TRUE;
- /*-------------------------------------------------------------------------
+ /*------------------------------------------------------------------------
* only attempt to compare if possible
*-------------------------------------------------------------------------
*/
if(can_compare) /* it is possible to compare */
{
- /*-------------------------------------------------------------------------
+ /*-----------------------------------------------------------------
* get number of elements
- *-------------------------------------------------------------------------
+ *------------------------------------------------------------------
*/
nelmts1 = 1;
for(i = 0; i < rank1; i++)
@@ -354,9 +356,9 @@ hsize_t diff_datasetid( hid_t did1,
HDassert(nelmts1 == nelmts2);
- /*-------------------------------------------------------------------------
+ /*-----------------------------------------------------------------
* "upgrade" the smaller memory size
- *-------------------------------------------------------------------------
+ *------------------------------------------------------------------
*/
if(m_size1 != m_size2) {
@@ -386,9 +388,9 @@ hsize_t diff_datasetid( hid_t did1,
name2 = diff_basename(obj2_name);
- /*-------------------------------------------------------------------------
+ /*----------------------------------------------------------------
* read/compare
- *-------------------------------------------------------------------------
+ *-----------------------------------------------------------------
*/
need = (size_t)(nelmts1 * m_size1); /* bytes needed */
if(need < H5TOOLS_MALLOCSIZE) {