mirror of
https://github.com/HDFGroup/hdf5.git
synced 2025-01-30 15:32:37 +08:00
[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:
parent
ebc9e3981b
commit
a2f9ebb3ab
@ -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
|
||||
|
@ -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.
@ -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.
|
||||
|
@ -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.
|
||||
|
@ -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
|
||||
--------------------------------
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
--------------------------------
|
||||
|
Loading…
Reference in New Issue
Block a user