From 40b3a8dee9bd7ece6e9e3a2740d804e93c83f589 Mon Sep 17 00:00:00 2001 From: Jonathan Kim Date: Tue, 9 Nov 2010 16:13:53 -0500 Subject: [svn-r19751] Purpose: Fixed Bug# 1979 Output from h5ls -rdlS on nested compound datatypes is difficult to parse. Description: Update to add curly brackets for the nested compound members, when S (--simple) option is used with -l (--label), so user can tell which members blong to which compound type. Tested: jam (linux32-LE), amani (linux64-LE), heiwa (linuxppc64-BE), tejeda (mac32) --- MANIFEST | 3 +++ release_docs/RELEASE.txt | 4 ++++ tools/h5ls/CMakeLists.txt | 15 +++++++++++++++ tools/h5ls/h5ls.c | 12 ++++++++++-- tools/h5ls/testh5ls.sh.in | 6 ++++++ tools/testfiles/tnestcomp-2.ls | 16 ++++++++++++++++ tools/testfiles/tnestcomp-3.ls | 26 ++++++++++++++++++++++++++ tools/testfiles/tnestcomp-4.ls | 16 ++++++++++++++++ windows/tools/h5ls/testh5ls.bat | 3 +++ 9 files changed, 99 insertions(+), 2 deletions(-) create mode 100644 tools/testfiles/tnestcomp-2.ls create mode 100644 tools/testfiles/tnestcomp-3.ls create mode 100644 tools/testfiles/tnestcomp-4.ls diff --git a/MANIFEST b/MANIFEST index c6c98da..e4cf1b8 100644 --- a/MANIFEST +++ b/MANIFEST @@ -1382,6 +1382,9 @@ ./tools/testfiles/tgroup.ls ./tools/testfiles/tloop-1.ls ./tools/testfiles/tnestcomp-1.ls +./tools/testfiles/tnestcomp-2.ls +./tools/testfiles/tnestcomp-3.ls +./tools/testfiles/tnestcomp-4.ls ./tools/testfiles/tsaf.ls ./tools/testfiles/tstr-1.ls ./tools/testfiles/tattr2.ls diff --git a/release_docs/RELEASE.txt b/release_docs/RELEASE.txt index c2abbfa..6cc1b46 100644 --- a/release_docs/RELEASE.txt +++ b/release_docs/RELEASE.txt @@ -474,6 +474,10 @@ Bug Fixes since HDF5-1.8.0 release Tools ----- + - Fixed h5ls to display nested compound type with curly bracket + when -S (--simple) option is used with -l (--label), so it shows + which member (in curly bracket) belong to which nested compound type + and make the output make sense. bug#1979 (JKM 2010/11/09) - Fixed h5diff to handle variable-length strings in a compound dataset correctly. (also variable-length string array in a compound dataset) Garbage values were displayed when h5diff compared multiple diff --git a/tools/h5ls/CMakeLists.txt b/tools/h5ls/CMakeLists.txt index c81f42b..149e69f 100644 --- a/tools/h5ls/CMakeLists.txt +++ b/tools/h5ls/CMakeLists.txt @@ -72,6 +72,9 @@ IF (BUILD_TESTING) thlink-1.ls tloop-1.ls tnestcomp-1.ls + tnestcomp-2.ls + tnestcomp-3.ls + tnestcomp-4.ls tsaf.ls tslink-1.ls tstr-1.ls @@ -240,6 +243,12 @@ IF (BUILD_TESTING) tloop-1.out.err tnestcomp-1.out tnestcomp-1.out.err + tnestcomp-2.out + tnestcomp-2.out.err + tnestcomp-3.out + tnestcomp-3.out.err + tnestcomp-4.out + tnestcomp-4.out.err tsaf.out tsaf.out.err tslink-1.out @@ -325,6 +334,12 @@ IF (BUILD_TESTING) #test for the nested compound type ADD_H5_TEST (tnestcomp-1 0 -w80 -r -d tnestedcomp.h5) + ADD_H5_TEST (tnestcomp-2 0 -w80 -r -d -S tnestedcomp.h5) + + ADD_H5_TEST (tnestcomp-3 0 -w80 -r -d -l tnestedcomp.h5) + + ADD_H5_TEST (tnestcomp-4 0 -w80 -r -d -l -S tnestedcomp.h5) + # test for loop detection ADD_H5_TEST (tloop-1 0 -w80 -r -d tloop.h5) diff --git a/tools/h5ls/h5ls.c b/tools/h5ls/h5ls.c index b1d9ee9..b74d525 100644 --- a/tools/h5ls/h5ls.c +++ b/tools/h5ls/h5ls.c @@ -1263,8 +1263,16 @@ dump_dataset_values(hid_t dset) info.arr_suf = ""; info.arr_sep = " "; - info.cmpd_pre = ""; - info.cmpd_suf = ""; + if (label_g) + { + info.cmpd_pre = "{"; + info.cmpd_suf = "}"; + } + else + { + info.cmpd_pre = ""; + info.cmpd_suf = ""; + } info.cmpd_sep = " "; if (label_g) info.cmpd_name = "%s="; diff --git a/tools/h5ls/testh5ls.sh.in b/tools/h5ls/testh5ls.sh.in index 642241f..a996401 100644 --- a/tools/h5ls/testh5ls.sh.in +++ b/tools/h5ls/testh5ls.sh.in @@ -188,6 +188,12 @@ TOOLTEST tcomp-1.ls 0 -w80 -r -d tcompound.h5 #test for the nested compound type TOOLTEST tnestcomp-1.ls 0 -w80 -r -d tnestedcomp.h5 +TOOLTEST tnestcomp-2.ls 0 -w80 -r -d -S tnestedcomp.h5 + +TOOLTEST tnestcomp-3.ls 0 -w80 -r -d -l tnestedcomp.h5 + +TOOLTEST tnestcomp-4.ls 0 -w80 -r -d -l -S tnestedcomp.h5 + # test for loop detection TOOLTEST tloop-1.ls 0 -w80 -r -d tloop.h5 diff --git a/tools/testfiles/tnestcomp-2.ls b/tools/testfiles/tnestcomp-2.ls new file mode 100644 index 0000000..be60e8d --- /dev/null +++ b/tools/testfiles/tnestcomp-2.ls @@ -0,0 +1,16 @@ +############################# + output for 'h5ls -w80 -r -d -S tnestedcomp.h5' +############################# +/ Group +/ArrayOfStructures Dataset {10} + Data: + 0 0 1 "A" -100 100 + 1 1 0.5 "B" -100 100 + 2 4 0.333333333333333 "C" -100 100 + 3 9 0.25 "D" -100 100 + 4 16 0.2 "E" -100 100 + 5 25 0.166666666666667 "F" -100 100 + 6 36 0.142857142857143 "G" -100 100 + 7 49 0.125 "H" -100 100 + 8 64 0.111111111111111 "I" -100 100 + 9 81 0.1 "J" -100 100 diff --git a/tools/testfiles/tnestcomp-3.ls b/tools/testfiles/tnestcomp-3.ls new file mode 100644 index 0000000..98eca8e --- /dev/null +++ b/tools/testfiles/tnestcomp-3.ls @@ -0,0 +1,26 @@ +############################# + output for 'h5ls -w80 -r -d -l tnestedcomp.h5' +############################# +/ Group +/ArrayOfStructures Dataset {10} + Data: + (0) {a_name=0, b_name=0, c_name=1, d_name={char_name="A", + (0) array_name=[-100,100]}}, + (1) {a_name=1, b_name=1, c_name=0.5, d_name={char_name="B", + (1) array_name=[-100,100]}}, + (2) {a_name=2, b_name=4, c_name=0.333333333333333, + (2) d_name={char_name="C", array_name=[-100,100]}}, + (3) {a_name=3, b_name=9, c_name=0.25, d_name={char_name="D", + (3) array_name=[-100,100]}}, + (4) {a_name=4, b_name=16, c_name=0.2, d_name={char_name="E", + (4) array_name=[-100,100]}}, + (5) {a_name=5, b_name=25, c_name=0.166666666666667, + (5) d_name={char_name="F", array_name=[-100,100]}}, + (6) {a_name=6, b_name=36, c_name=0.142857142857143, + (6) d_name={char_name="G", array_name=[-100,100]}}, + (7) {a_name=7, b_name=49, c_name=0.125, d_name={char_name="H", + (7) array_name=[-100,100]}}, + (8) {a_name=8, b_name=64, c_name=0.111111111111111, + (8) d_name={char_name="I", array_name=[-100,100]}}, + (9) {a_name=9, b_name=81, c_name=0.1, d_name={char_name="J", + (9) array_name=[-100,100]}} diff --git a/tools/testfiles/tnestcomp-4.ls b/tools/testfiles/tnestcomp-4.ls new file mode 100644 index 0000000..6618597 --- /dev/null +++ b/tools/testfiles/tnestcomp-4.ls @@ -0,0 +1,16 @@ +############################# + output for 'h5ls -w80 -r -d -l -S tnestedcomp.h5' +############################# +/ Group +/ArrayOfStructures Dataset {10} + Data: + {a_name=0 b_name=0 c_name=1 d_name={char_name="A" array_name=-100 100}} + {a_name=1 b_name=1 c_name=0.5 d_name={char_name="B" array_name=-100 100}} + {a_name=2 b_name=4 c_name=0.333333333333333 d_name={char_name="C" array_name=-100 100}} + {a_name=3 b_name=9 c_name=0.25 d_name={char_name="D" array_name=-100 100}} + {a_name=4 b_name=16 c_name=0.2 d_name={char_name="E" array_name=-100 100}} + {a_name=5 b_name=25 c_name=0.166666666666667 d_name={char_name="F" array_name=-100 100}} + {a_name=6 b_name=36 c_name=0.142857142857143 d_name={char_name="G" array_name=-100 100}} + {a_name=7 b_name=49 c_name=0.125 d_name={char_name="H" array_name=-100 100}} + {a_name=8 b_name=64 c_name=0.111111111111111 d_name={char_name="I" array_name=-100 100}} + {a_name=9 b_name=81 c_name=0.1 d_name={char_name="J" array_name=-100 100}} diff --git a/windows/tools/h5ls/testh5ls.bat b/windows/tools/h5ls/testh5ls.bat index 953216d..f15274c 100644 --- a/windows/tools/h5ls/testh5ls.bat +++ b/windows/tools/h5ls/testh5ls.bat @@ -218,6 +218,9 @@ rem ############################################################################ rem test for the nested compound type call :tooltest tnestcomp-1.ls 0 -w80 -r -d tnestedcomp.h5 + call :tooltest tnestcomp-2.ls 0 -w80 -r -d -S tnestedcomp.h5 + call :tooltest tnestcomp-3.ls 0 -w80 -r -d -l tnestedcomp.h5 + call :tooltest tnestcomp-4.ls 0 -w80 -r -d -l -S tnestedcomp.h5 rem test for loop detection call :tooltest tloop-1.ls 0 -w80 -r -d tloop.h5 -- cgit v0.12