summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--MANIFEST1
-rw-r--r--release_docs/RELEASE.txt3
-rw-r--r--tools/h5diff/CMakeLists.txt7
-rw-r--r--tools/h5diff/testfiles/h5diff_465.txt2
-rwxr-xr-xtools/h5diff/testh5diff.sh4
-rw-r--r--tools/lib/h5diff.c24
6 files changed, 30 insertions, 11 deletions
diff --git a/MANIFEST b/MANIFEST
index fd79de8..6e9f002 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -1838,6 +1838,7 @@
./tools/h5diff/testfiles/h5diff_457.txt
./tools/h5diff/testfiles/h5diff_458.txt
./tools/h5diff/testfiles/h5diff_459.txt
+./tools/h5diff/testfiles/h5diff_465.txt
./tools/h5diff/testfiles/h5diff_480.txt
./tools/h5diff/testfiles/h5diff_481.txt
./tools/h5diff/testfiles/h5diff_482.txt
diff --git a/release_docs/RELEASE.txt b/release_docs/RELEASE.txt
index 9a234eb..41d6f6e 100644
--- a/release_docs/RELEASE.txt
+++ b/release_docs/RELEASE.txt
@@ -632,6 +632,9 @@ Bug Fixes since HDF5-1.8.0 release
Tools
-----
+ - h5diff: fixed to prevent from displaying error stack message when
+ comparing the two dangling symlinks with follow-symlinks option.
+ HDFFV-7836 (JKM 2012/01/13)
- h5repack: fixed memory leak for handling variable length string in
attribute. HDFFV-7840 (JKM 2012/01/06)
- h5ls: fixed segfault when access region reference data in an
diff --git a/tools/h5diff/CMakeLists.txt b/tools/h5diff/CMakeLists.txt
index cbb5ed3..1fa1cf3 100644
--- a/tools/h5diff/CMakeLists.txt
+++ b/tools/h5diff/CMakeLists.txt
@@ -130,6 +130,7 @@ IF (BUILD_TESTING)
h5diff_457.txt
h5diff_458.txt
h5diff_459.txt
+ h5diff_465.txt
h5diff_480.txt
h5diff_481.txt
h5diff_482.txt
@@ -655,6 +656,8 @@ IF (BUILD_TESTING)
h5diff_458.out.err
h5diff_459.out
h5diff_459.out.err
+ h5diff_465.out
+ h5diff_465.out.err
h5diff_480.out
h5diff_480.out.err
h5diff_481.out
@@ -1262,6 +1265,10 @@ ADD_H5_TEST (h5diff_458 2 --follow-symlinks -v --no-dangling-links ${FILE15} $
# dangling link found for ext links (obj to obj). Both dangle links
ADD_H5_TEST (h5diff_459 2 --follow-symlinks -v --no-dangling-links ${FILE15} ${FILE15} /ext_link_noexist1 /ext_link_noexist2)
+# dangling link --follow-symlinks (obj vs obj)
+# (HDFFV-7836)
+ADD_H5_TEST (h5diff_465 1 --follow-symlinks h5diff_danglelinks1.h5 h5diff_danglelinks2.h5 /soft_link1)
+
# ##############################################################################
# # test for group diff recursivly
# ##############################################################################
diff --git a/tools/h5diff/testfiles/h5diff_465.txt b/tools/h5diff/testfiles/h5diff_465.txt
new file mode 100644
index 0000000..827e88e
--- /dev/null
+++ b/tools/h5diff/testfiles/h5diff_465.txt
@@ -0,0 +1,2 @@
+1 differences found
+EXIT CODE: 1
diff --git a/tools/h5diff/testh5diff.sh b/tools/h5diff/testh5diff.sh
index 8de12a5..aa0f502 100755
--- a/tools/h5diff/testh5diff.sh
+++ b/tools/h5diff/testh5diff.sh
@@ -200,6 +200,7 @@ $SRC_H5DIFF_TESTFILES/h5diff_456.txt
$SRC_H5DIFF_TESTFILES/h5diff_457.txt
$SRC_H5DIFF_TESTFILES/h5diff_458.txt
$SRC_H5DIFF_TESTFILES/h5diff_459.txt
+$SRC_H5DIFF_TESTFILES/h5diff_465.txt
$SRC_H5DIFF_TESTFILES/h5diff_480.txt
$SRC_H5DIFF_TESTFILES/h5diff_481.txt
$SRC_H5DIFF_TESTFILES/h5diff_482.txt
@@ -939,6 +940,9 @@ TOOLTEST h5diff_458.txt --follow-symlinks -v --no-dangling-links h5diff_extlin
# dangling link found for ext links (obj to obj). Both dangle links
TOOLTEST h5diff_459.txt --follow-symlinks -v --no-dangling-links h5diff_extlink_src.h5 h5diff_extlink_src.h5 /ext_link_noexist1 /ext_link_noexist2
+# dangling link --follow-symlinks (obj vs obj)
+# (HDFFV-7836)
+TOOLTEST h5diff_465.txt --follow-symlinks h5diff_danglelinks1.h5 h5diff_danglelinks2.h5 /soft_link1
# ##############################################################################
# # test for group diff recursivly
diff --git a/tools/lib/h5diff.c b/tools/lib/h5diff.c
index 6e9fee8..be20ed4 100644
--- a/tools/lib/h5diff.c
+++ b/tools/lib/h5diff.c
@@ -861,17 +861,6 @@ hsize_t h5diff(const char *fname1,
HDstrcat(obj2fullname, "/");
}
- /*
- * If verbose options is used, need to traverse thorugh the list of objects
- * in the group to print out objects information.
- * Use h5tools_is_obj_same() to improve performance by skipping
- * comparing details of same objects.
- */
- if(!(options->m_verbose || options->m_report))
- {
- if (h5tools_is_obj_same(file1_id,obj1fullname,file2_id,obj2fullname)!=0)
- goto out;
- }
/*---------------------------------------------
* check for following symlinks
@@ -949,6 +938,19 @@ hsize_t h5diff(const char *fname1,
obj2type = trg_linfo2.trg_type;
} /* end of if follow symlinks */
+ /*
+ * If verbose options is not used, don't need to traverse thorugh the list
+ * of objects in the group to display objects information,
+ * So use h5tools_is_obj_same() to improve performance by skipping
+ * comparing details of same objects.
+ */
+
+ if(!(options->m_verbose || options->m_report))
+ {
+ if (h5tools_is_obj_same(file1_id,obj1fullname,file2_id,obj2fullname)!=0)
+ goto out;
+ }
+
/* if both obj1 and obj2 are group */
if (obj1type == H5TRAV_TYPE_GROUP && obj2type == H5TRAV_TYPE_GROUP)