summaryrefslogtreecommitdiffstats
path: root/tools/h5ls
diff options
context:
space:
mode:
authorPedro Vicente Nunes <pvn@hdfgroup.org>2009-01-14 15:58:16 (GMT)
committerPedro Vicente Nunes <pvn@hdfgroup.org>2009-01-14 15:58:16 (GMT)
commit98d4ba5d8a6fcb80fdf02517e48c4d6b19b1b122 (patch)
tree84519a1daf58c1a383429d58c21d46d79edf7f11 /tools/h5ls
parentb7a12779d578169ec9d2b27dea9be68de38e48d3 (diff)
downloadhdf5-98d4ba5d8a6fcb80fdf02517e48c4d6b19b1b122.zip
hdf5-98d4ba5d8a6fcb80fdf02517e48c4d6b19b1b122.tar.gz
hdf5-98d4ba5d8a6fcb80fdf02517e48c4d6b19b1b122.tar.bz2
[svn-r16310] merge 16299
Print a message of Storage: information not available When displaying storage information for VL and dataset region types Added 2 shell runs that display this information #818 Tested: windows, linux
Diffstat (limited to 'tools/h5ls')
-rw-r--r--tools/h5ls/h5ls.c36
-rwxr-xr-xtools/h5ls/testh5ls.sh6
2 files changed, 35 insertions, 7 deletions
diff --git a/tools/h5ls/h5ls.c b/tools/h5ls/h5ls.c
index eec1fcd..d0af4bb 100644
--- a/tools/h5ls/h5ls.c
+++ b/tools/h5ls/h5ls.c
@@ -1515,7 +1515,8 @@ dataset_list2(hid_t dset, const char UNUSED *name)
int ndims; /* dimensionality */
int n, max_len; /* max extern file name length */
double utilization; /* percent utilization of storage */
- int i;
+ H5T_class_t tclass; /* datatype class identifier */
+ int i;
if(verbose_g > 0) {
dcpl = H5Dget_create_plist(dset);
@@ -1539,14 +1540,35 @@ dataset_list2(hid_t dset, const char UNUSED *name)
/* Print total raw storage size */
total = H5Sget_simple_extent_npoints(space) * H5Tget_size(type);
used = H5Dget_storage_size(dset);
+ tclass = H5Tget_class(type);
printf(" %-10s ", "Storage:");
- printf("%lu logical byte%s, %lu allocated byte%s",
- (unsigned long)total, 1==total?"":"s",
- (unsigned long)used, 1==used?"":"s");
- if (used>0) {
- utilization = (total*100.0)/used;
- printf(", %1.2f%% utilization", utilization);
+ switch (tclass)
+ {
+
+ case H5T_VLEN:
+ printf("information not available");
+ break;
+
+ case H5T_REFERENCE:
+ if ( H5Tequal(type, H5T_STD_REF_DSETREG))
+ {
+ printf("information not available");
+ }
+ break;
+
+ default:
+ printf("%lu logical byte%s, %lu allocated byte%s",
+ (unsigned long)total, 1==total?"":"s",
+ (unsigned long)used, 1==used?"":"s");
+ if (used>0)
+ {
+ utilization = (total*100.0)/used;
+ printf(", %1.2f%% utilization", utilization);
+ }
+
}
+
+
putchar('\n');
/* Print information about external strorage */
diff --git a/tools/h5ls/testh5ls.sh b/tools/h5ls/testh5ls.sh
index 0bae60b..8194bfb 100755
--- a/tools/h5ls/testh5ls.sh
+++ b/tools/h5ls/testh5ls.sh
@@ -173,6 +173,12 @@ TOOLTEST tattr2.ls 0 -w80 -v -S tattr2.h5
# test for non-existing file
TOOLTEST nosuchfile.ls 0 nosuchfile.h5
+# test for variable length data types in verbose mode
+TOOLTEST tvldtypes2.ls 0 -v tvldtypes1.h5
+
+# test for dataset region references data types in verbose mode
+TOOLTEST tdatareg.ls 0 -v tdatareg.h5
+
if test $nerrors -eq 0 ; then
echo "All h5ls tests passed."
fi