[svn-r12124] Purpose:

bug fix

Description:
1) the compare flag test was not being put in a correct place, making comparisons attempts that were not supposed to be done
2) some duplicate warnings were being made

Solution:
eliminate the duplicate warnings, put the if compare flag on the correct place

Platforms tested:
linux 32, 64
solaris

Misc. update:
This commit is contained in:
Pedro Vicente Nunes 2006-03-20 14:39:46 -05:00
parent ebc9e3981b
commit a2f9ebb3ab
16 changed files with 38 additions and 81 deletions

View File

@ -272,8 +272,8 @@ int test_basic(const char *file1, const char *file2)
write_dset(group2_id,2,dims,"dset1",H5T_NATIVE_DOUBLE,data2);
/* integer relative */
write_dset(group1_id,2,dims,"dset2",H5T_NATIVE_INT,data5);
write_dset(group1_id,2,dims,"dset4",H5T_NATIVE_INT,data6);
write_dset(group1_id,2,dims,"dset5",H5T_NATIVE_INT,data5);
write_dset(group1_id,2,dims,"dset6",H5T_NATIVE_INT,data6);
/*-------------------------------------------------------------------------
* Close

View File

@ -233,6 +233,14 @@ hsize_t diff_datasetid( hid_t dset1_id,
cmp=0;
options->not_cmp=1;
}
/*-------------------------------------------------------------------------
* only attempt to compare if possible
*-------------------------------------------------------------------------
*/
if (cmp)
{
/*-------------------------------------------------------------------------
* get number of elements
*-------------------------------------------------------------------------
@ -249,25 +257,8 @@ hsize_t diff_datasetid( hid_t dset1_id,
nelmts2 *= dims2[i];
}
if (cmp)
/* onnly assert if the space is the same */
assert(nelmts1==nelmts2);
/*-------------------------------------------------------------------------
* check for equal file datatype; warning only
*-------------------------------------------------------------------------
*/
if ( (H5Tequal(f_type1, f_type2)==0) && options->m_verbose && obj1_name)
{
printf("Warning: Different storage datatype\n");
printf("<%s> has file datatype ", obj1_name);
print_type(f_type1);
printf("\n");
printf("<%s> has file datatype ", obj2_name);
print_type(f_type2);
printf("\n");
}
/* only assert if the space is the same */
assert(nelmts1==nelmts2);
/*-------------------------------------------------------------------------
* memory type and sizes
@ -296,13 +287,13 @@ hsize_t diff_datasetid( hid_t dset1_id,
sign2=H5Tget_sign(m_type2);
if ( sign1 != sign2 )
{
if (options->m_verbose && obj1_name) {
parallel_print("Comparison not supported: <%s> has sign %s ", obj1_name, get_sign(sign1));
parallel_print("and <%s> has sign %s\n", obj2_name, get_sign(sign2));
}
cmp=0;
options->not_cmp=1;
if (options->m_verbose && obj1_name) {
parallel_print("Comparison not supported: <%s> has sign %s ", obj1_name, get_sign(sign1));
parallel_print("and <%s> has sign %s\n", obj2_name, get_sign(sign2));
}
cmp=0;
options->not_cmp=1;
}
/*-------------------------------------------------------------------------
@ -315,35 +306,29 @@ hsize_t diff_datasetid( hid_t dset1_id,
if ( m_size1 < m_size2 )
{
H5Tclose(m_type1);
if ((m_type1=h5tools_get_native_type(f_type2))<0)
goto error;
goto error;
m_size1 = H5Tget_size( m_type1 );
}
else
{
H5Tclose(m_type2);
if ((m_type2=h5tools_get_native_type(f_type1))<0)
goto error;
goto error;
m_size2 = H5Tget_size( m_type2 );
}
#if defined (H5DIFF_DEBUG)
printf("WARNING: Size was upgraded\n");
if (obj1_name)
print_sizes(obj1_name,obj2_name,f_type1,f_type2,m_type1,m_type2);
print_sizes(obj1_name,obj2_name,f_type1,f_type2,m_type1,m_type2);
#endif
}
assert(m_size1==m_size2);
/*-------------------------------------------------------------------------
* only attempt to compare if possible
*-------------------------------------------------------------------------
*/
if (cmp)
{
buf1 = (void *) HDmalloc((unsigned) (nelmts1*m_size1));
buf2 = (void *) HDmalloc((unsigned) (nelmts2*m_size2));

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -3,7 +3,3 @@ Expected output for 'h5diff file1.h5 file2.h5'
#############################
Dataset: </g1/dset1> and </g1/dset1>
4 differences found
--------------------------------
Some objects are not comparable
--------------------------------
Use -v for a list of objects.

View File

@ -9,7 +9,3 @@ position dset1 dset1 difference
[ 1 1 ] 1.000000 1.001000 0.001000
[ 2 0 ] 1.000000 1.000100 0.000100
4 differences found
--------------------------------
Some objects are not comparable
--------------------------------
Use -v for a list of objects.

View File

@ -6,9 +6,11 @@ file1 file2
---------------------------------------
x x /g1
x x /g1/dset1
x x /g1/dset2
x /g1/dset2
x /g1/dset3
x x /g1/dset4
x /g1/dset4
x /g1/dset5
x /g1/dset6
x /g2
Group: </g1> and </g1>
@ -21,22 +23,5 @@ position dset1 dset1 difference
[ 1 1 ] 1.000000 1.001000 0.001000
[ 2 0 ] 1.000000 1.000100 0.000100
4 differences found
Dataset: </g1/dset2> and </g1/dset2>
Comparison not possible: </g1/dset2> is of class H5T_INTEGER and </g1/dset2> is of class H5T_FLOAT
Warning: Different storage datatype
</g1/dset2> has file datatype H5T_STD_I32LE
</g1/dset2> has file datatype H5T_IEEE_F64LE
Comparison not supported: </g1/dset2> has sign H5T_SGN_2 and </g1/dset2> has sign H5T_SGN_ERROR
0 differences found
Dataset: </g1/dset4> and </g1/dset4>
Comparison not possible: </g1/dset4> is of class H5T_INTEGER and </g1/dset4> is of class H5T_FLOAT
Warning: Different storage datatype
</g1/dset4> has file datatype H5T_STD_I32LE
</g1/dset4> has file datatype H5T_IEEE_F64LE
Comparison not supported: </g1/dset4> has sign H5T_SGN_2 and </g1/dset4> has sign H5T_SGN_ERROR
0 differences found
Group: </> and </>
0 differences found
--------------------------------
Some objects are not comparable
--------------------------------

View File

@ -5,9 +5,6 @@ Dataset: </dset0a> and </dset0b>
Warning: Different storage datatype
</dset0a> has file datatype H5T_STD_I16LE
</dset0b> has file datatype H5T_STD_I32LE
Warning: Different storage datatype
</dset0a> has file datatype H5T_STD_I16LE
</dset0b> has file datatype H5T_STD_I32LE
position dset0a dset0b difference
------------------------------------------------------------
[ 1 0 ] 1 3 2

View File

@ -2,12 +2,6 @@
Expected output for 'h5diff file4.h5 file4.h5 -v dset3a dset4b'
#############################
Dataset: </dset3a> and </dset4b>
Warning: Different storage datatype
</dset3a> has file datatype H5T_STD_I32LE
</dset4b> has file datatype H5T_STD_I64LE
Warning: Different storage datatype
</dset3a> has file datatype H5T_STD_I32LE
</dset4b> has file datatype H5T_STD_I64LE
position dset3a dset4b difference
------------------------------------------------------------
[ 1 0 ] 1 3 2

View File

@ -5,11 +5,15 @@ Dataset: </dset7a> and </dset7b>
Warning: Different storage datatype
</dset7a> has file datatype H5T_STD_I8LE
</dset7b> has file datatype H5T_STD_U8LE
Warning: Different storage datatype
</dset7a> has file datatype H5T_STD_I8LE
</dset7b> has file datatype H5T_STD_U8LE
Comparison not supported: </dset7a> has sign H5T_SGN_2 and </dset7b> has sign H5T_SGN_NONE
0 differences found
position dset7a dset7b difference
------------------------------------------------------------
[ 0 0 ] -1 1 2
[ 1 0 ] -1 1 2
[ 1 1 ] -1 1 2
[ 2 0 ] -1 1 2
[ 2 1 ] -1 1 2
5 differences found
--------------------------------
Some objects are not comparable
--------------------------------