summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorAllen Byrne <byrn@hdfgroup.org>2018-01-02 20:39:32 (GMT)
committerAllen Byrne <byrn@hdfgroup.org>2018-01-02 20:39:45 (GMT)
commit5f4676f3c8f077b1667611b78d2cb19deec1f37a (patch)
tree41772222082c0496ac6e4086e1b70e6020e24943 /tools
parentd31b45766fa5bdbb7245cf5aa9444c9e6c6ca863 (diff)
downloadhdf5-5f4676f3c8f077b1667611b78d2cb19deec1f37a.zip
hdf5-5f4676f3c8f077b1667611b78d2cb19deec1f37a.tar.gz
hdf5-5f4676f3c8f077b1667611b78d2cb19deec1f37a.tar.bz2
HDFFV-8745 - fix implementation of 8625
Diffstat (limited to 'tools')
-rw-r--r--tools/lib/h5diff_attr.c20
-rw-r--r--tools/lib/h5diff_dset.c19
-rw-r--r--tools/test/h5diff/CMakeTests.cmake12
-rw-r--r--tools/test/h5diff/testfiles/h5diff_8625.txt10
-rw-r--r--tools/test/h5diff/testfiles/h5diff_tmp1.txt5
-rw-r--r--tools/test/h5diff/testh5diff.sh.in8
6 files changed, 40 insertions, 34 deletions
diff --git a/tools/lib/h5diff_attr.c b/tools/lib/h5diff_attr.c
index 6019738..4e4b40d 100644
--- a/tools/lib/h5diff_attr.c
+++ b/tools/lib/h5diff_attr.c
@@ -385,28 +385,8 @@ hsize_t diff_attr(hid_t loc1_id,
/* get the datatypes */
if((ftype1_id = H5Aget_type(attr1_id)) < 0)
HGOTO_ERROR(1, H5E_tools_min_id_g, "H5Aget_type first attribute failed");
- vstrtype1 = H5Tis_variable_str(ftype1_id);
if((ftype2_id = H5Aget_type(attr2_id)) < 0)
HGOTO_ERROR(1, H5E_tools_min_id_g, "H5Aget_type second attribute failed");
- vstrtype2 = H5Tis_variable_str(ftype2_id);
-
- /* no compare if either one but not both are variable string type */
- if (vstrtype1 != vstrtype2) {
- if((opts->m_verbose || opts->m_list_not_cmp))
- parallel_print("Not comparable: one of attribute <%s/%s> or <%s/%s> is of variable length type\n",
- path1, name1, path2, name2);
- opts->not_cmp = 1;
- if (H5Tclose(ftype1_id) < 0)
- HGOTO_ERROR(1, H5E_tools_min_id_g, "H5Tclose first attribute ftype failed");
- if (H5Tclose(ftype2_id) < 0)
- HGOTO_ERROR(1, H5E_tools_min_id_g, "H5Tclose second attribute ftype failed");
- if (H5Aclose(attr1_id) < 0)
- HGOTO_ERROR(1, H5E_tools_min_id_g, "H5Aclose first attribute failed");
- if (H5Aclose(attr2_id) < 0)
- HGOTO_ERROR(1, H5E_tools_min_id_g, "H5Aclose second attribute failed");
-
- continue;
- }
if((mtype1_id = H5Tget_native_type(ftype1_id, H5T_DIR_DEFAULT)) < 0)
HGOTO_ERROR(1, H5E_tools_min_id_g, "H5Tget_native_type first attribute ftype failed");
diff --git a/tools/lib/h5diff_dset.c b/tools/lib/h5diff_dset.c
index ee42b99..55e9839 100644
--- a/tools/lib/h5diff_dset.c
+++ b/tools/lib/h5diff_dset.c
@@ -767,12 +767,31 @@ int diff_can_type(hid_t f_tid1, /* file data type */
}
}
+ if(tclass1 == H5T_STRING) {
+ hid_t vstrtype1 = -1;
+ hid_t vstrtype2 = -1;
+ h5difftrace("diff_can_type end - H5T_STRING\n");
+
+ vstrtype1 = H5Tis_variable_str(f_tid1);
+ vstrtype2 = H5Tis_variable_str(f_tid2);
+
+ /* no compare if either one but not both are variable string type */
+ if (vstrtype1 != vstrtype2) {
+ if((opts->m_verbose || opts->m_list_not_cmp))
+ parallel_print("Not comparable: <%s> or <%s> is of mixed string type\n",
+ obj1_name, obj2_name);
+ opts->not_cmp = 1;
+ HGOTO_DONE(0);
+ }
+ }
+
if(tclass1 == H5T_COMPOUND) {
int nmembs1;
int nmembs2;
int j;
hid_t memb_type1 = -1;
hid_t memb_type2 = -1;
+ h5difftrace("diff_can_type end - H5T_COMPOUND\n");
nmembs1 = H5Tget_nmembers(f_tid1);
nmembs2 = H5Tget_nmembers(f_tid2);
diff --git a/tools/test/h5diff/CMakeTests.cmake b/tools/test/h5diff/CMakeTests.cmake
index bbc39d8..773b03d 100644
--- a/tools/test/h5diff/CMakeTests.cmake
+++ b/tools/test/h5diff/CMakeTests.cmake
@@ -293,7 +293,7 @@
${HDF5_TOOLS_TEST_H5DIFF_SOURCE_DIR}/testfiles/h5diff_800.txt
${HDF5_TOOLS_TEST_H5DIFF_SOURCE_DIR}/testfiles/h5diff_801.txt
${HDF5_TOOLS_TEST_H5DIFF_SOURCE_DIR}/testfiles/h5diff_90.txt
- ${HDF5_TOOLS_TEST_H5DIFF_SOURCE_DIR}/testfiles/h5diff_tmp1.txt
+ ${HDF5_TOOLS_TEST_H5DIFF_SOURCE_DIR}/testfiles/h5diff_8625.txt
${HDF5_TOOLS_TEST_H5DIFF_SOURCE_DIR}/testfiles/h5diff_tmp2.txt
${HDF5_TOOLS_TEST_H5DIFF_SOURCE_DIR}/testfiles/h5diff_ud.txt
${HDF5_TOOLS_TEST_H5DIFF_SOURCE_DIR}/testfiles/h5diff_udfail.txt
@@ -1021,6 +1021,8 @@
h5diff_800.out.err
h5diff_801.out
h5diff_801.out.err
+ h5diff_8625.out
+ h5diff_8625.out.err
h5diff_90.out
h5diff_90.out.err
h5diff_v1.out
@@ -1281,9 +1283,7 @@ ADD_H5_TEST (h5diff_631 0 -v --use-system-epsilon ${FILE1} ${FILE1} g1/fp18 g1/f
# 7. attributes
# ##############################################################################
ADD_H5_TEST (h5diff_70 1 -v ${FILE5} ${FILE6})
-# temporary test to verify HDF5-8625
-ADD_H5_TEST (h5diff_tmp1 0 tmptest2.he5 tmptest.he5)
-# temporary test to verify HDF5-8639
+# temporary test to verify HDFFV-8639
ADD_H5_TEST (h5diff_tmp2 1 tmpSingleSiteBethe.output.h5 tmpSingleSiteBethe.reference.h5)
# ##################################################
@@ -1613,7 +1613,9 @@ ADD_H5_TEST (h5diff_487 1 -v --exclude-path "/group1/dset" h5diff_exclude3-1.h5
# ##############################################################################
# # diff various multiple vlen and fixed strings in a compound type dataset
# ##############################################################################
-ADD_H5_TEST (h5diff_530 0 -v ${COMP_VL_STRS_FILE} ${COMP_VL_STRS_FILE} /group /group_copy)
+ADD_H5_TEST (h5diff_530 0 -v ${COMP_VL_STRS_FILE} ${COMP_VL_STRS_FILE} /group /group_copy)
+# test to verify HDFFV-8625
+ADD_H5_TEST (h5diff_8625 0 -v --enable-error-stack ${COMP_VL_STRS_FILE} ${COMP_VL_STRS_FILE} /group/Compound_dset1 /group_copy/Compound_dset3)
ADD_H5_TEST (h5diff_vlstr 0 -v tvlstr.h5 tvlstr2.h5)
# ##############################################################################
diff --git a/tools/test/h5diff/testfiles/h5diff_8625.txt b/tools/test/h5diff/testfiles/h5diff_8625.txt
new file mode 100644
index 0000000..a7ddb86
--- /dev/null
+++ b/tools/test/h5diff/testfiles/h5diff_8625.txt
@@ -0,0 +1,10 @@
+dataset: </group/Compound_dset1> and </group_copy/Compound_dset3>
+Warning: different storage datatype
+Warning: different storage datatype
+Not comparable: </group/Compound_dset1> or </group_copy/Compound_dset3> is of mixed string type
+0 differences found
+--------------------------------
+Some objects are not comparable
+--------------------------------
+Use -c for a list of objects without details of differences.
+EXIT CODE: 0
diff --git a/tools/test/h5diff/testfiles/h5diff_tmp1.txt b/tools/test/h5diff/testfiles/h5diff_tmp1.txt
deleted file mode 100644
index 40e3fb6..0000000
--- a/tools/test/h5diff/testfiles/h5diff_tmp1.txt
+++ /dev/null
@@ -1,5 +0,0 @@
---------------------------------
-Some objects are not comparable
---------------------------------
-Use -c for a list of objects.
-EXIT CODE: 0
diff --git a/tools/test/h5diff/testh5diff.sh.in b/tools/test/h5diff/testh5diff.sh.in
index df472d4..2f04ab2 100644
--- a/tools/test/h5diff/testh5diff.sh.in
+++ b/tools/test/h5diff/testh5diff.sh.in
@@ -337,7 +337,7 @@ $SRC_H5DIFF_TESTFILES/h5diff_709.txt
$SRC_H5DIFF_TESTFILES/h5diff_710.txt
$SRC_H5DIFF_TESTFILES/h5diff_80.txt
$SRC_H5DIFF_TESTFILES/h5diff_90.txt
-$SRC_H5DIFF_TESTFILES/h5diff_tmp1.txt
+$SRC_H5DIFF_TESTFILES/h5diff_8625.txt
$SRC_H5DIFF_TESTFILES/h5diff_tmp2.txt
$SRC_H5DIFF_TESTFILES/h5diff_v1.txt
$SRC_H5DIFF_TESTFILES/h5diff_v2.txt
@@ -820,9 +820,7 @@ TOOLTEST h5diff_631.txt -v --use-system-epsilon h5diff_basic1.h5 h5diff_basic1.h
# 7. attributes
# ##############################################################################
TOOLTEST h5diff_70.txt -v h5diff_attr1.h5 h5diff_attr2.h5
-# temporary test to verify HDF5-8625
-TOOLTEST h5diff_tmp1.txt tmptest2.he5 tmptest.he5
-# temporary test to verify HDF5-8639
+# temporary test to verify HDFFV-8639
TOOLTEST h5diff_tmp2.txt tmpSingleSiteBethe.output.h5 tmpSingleSiteBethe.reference.h5
# ##################################################
@@ -1145,6 +1143,8 @@ TOOLTEST h5diff_487.txt -v --exclude-path "/group1/dset" h5diff_exclude3-1.h5 h5
# # diff various multiple vlen and fixed strings in a compound type dataset
# ##############################################################################
TOOLTEST h5diff_530.txt -v h5diff_comp_vl_strs.h5 h5diff_comp_vl_strs.h5 /group /group_copy
+# test to verify HDFFV-8625
+TOOLTEST h5diff_8625.txt -v --enable-error-stack h5diff_comp_vl_strs.h5 h5diff_comp_vl_strs.h5 /group/Compound_dset1 /group_copy/Compound_dset3
TOOLTEST h5diff_vlstr.txt -v tvlstr.h5 tvlstr2.h5
# ##############################################################################