summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
Diffstat (limited to 'tools')
-rw-r--r--tools/Makefile.am2
-rw-r--r--tools/h5copy/CMakeTests.cmake2
-rw-r--r--tools/h5copy/h5copygentest.c44
-rw-r--r--tools/h5copy/testfiles/h5copytst_new.h5bin0 -> 30280 bytes
-rw-r--r--tools/h5copy/testfiles/h5copytst_new.out.ls502
-rw-r--r--tools/h5diff/CMakeTests.cmake6
-rw-r--r--tools/h5diff/testfiles/h5diff_v1.txt2
-rw-r--r--tools/h5diff/testfiles/h5diff_v3.txt2
-rw-r--r--tools/h5dump/CMakeTests.cmake69
-rw-r--r--tools/h5dump/CMakeTestsPBITS.cmake6
-rw-r--r--tools/h5dump/CMakeTestsVDS.cmake38
-rw-r--r--tools/h5dump/CMakeTestsXML.cmake4
-rw-r--r--tools/h5dump/errfiles/non_existing.err1
-rw-r--r--tools/h5dump/errfiles/tdset-2.err2
-rw-r--r--tools/h5dump/errfiles/tperror.err2
-rw-r--r--tools/h5dump/h5dump.c82
-rw-r--r--tools/h5dump/h5dump.h2
-rw-r--r--tools/h5dump/h5dump_ddl.c306
-rw-r--r--tools/h5dump/h5dump_extern.h2
-rw-r--r--tools/h5dump/h5dump_xml.c3
-rw-r--r--tools/h5dump/h5dumpgentest.c177
-rw-r--r--tools/h5dump/testh5dump.sh.in78
-rw-r--r--tools/h5dump/testh5dumpvds.sh.in18
-rw-r--r--tools/h5ls/CMakeTests.cmake2
-rw-r--r--tools/h5ls/CMakeTestsVDS.cmake2
-rw-r--r--tools/h5ls/h5ls.c5
-rw-r--r--tools/h5repack/CMakeLists.txt11
-rw-r--r--tools/h5repack/CMakeTests.cmake59
-rw-r--r--tools/h5repack/h5repack.c4
-rw-r--r--tools/h5repack/h5repack.h5
-rw-r--r--tools/h5repack/h5repack.sh.in131
-rw-r--r--tools/h5repack/h5repack_main.c12
-rw-r--r--tools/h5repack/h5repacktst.c169
-rw-r--r--tools/h5repack/testfiles/deflate_limit.h5repack_layout.h5.ddl16
-rw-r--r--tools/h5repack/testfiles/h5repack_attr.h5bin20056 -> 21856 bytes
-rw-r--r--tools/h5repack/testfiles/h5repack_attr_refs.h5bin10112 -> 10336 bytes
-rw-r--r--tools/h5repack/testfiles/h5repack_deflate.h5bin5962 -> 6336 bytes
-rw-r--r--tools/h5repack/testfiles/h5repack_early.h5bin2067224 -> 3074224 bytes
-rw-r--r--tools/h5repack/testfiles/h5repack_ext.h5bin1464 -> 1464 bytes
-rw-r--r--tools/h5repack/testfiles/h5repack_fill.h5bin2072 -> 2168 bytes
-rw-r--r--tools/h5repack/testfiles/h5repack_filters.h5bin29744 -> 27604 bytes
-rw-r--r--tools/h5repack/testfiles/h5repack_fletcher.h5bin7880 -> 7232 bytes
-rw-r--r--tools/h5repack/testfiles/h5repack_hlink.h5bin6576 -> 6544 bytes
-rw-r--r--tools/h5repack/testfiles/h5repack_layout.UD.h5-plugin_none.ddl14
-rw-r--r--tools/h5repack/testfiles/h5repack_layout.h5bin27280 -> 29480 bytes
-rw-r--r--tools/h5repack/testfiles/h5repack_layout.h5-plugin_test.ddl16
-rw-r--r--tools/h5repack/testfiles/h5repack_layout2.h5bin6808 -> 6808 bytes
-rw-r--r--tools/h5repack/testfiles/h5repack_layout3.h5bin491840 -> 491840 bytes
-rw-r--r--tools/h5repack/testfiles/h5repack_named_dtypes.h5bin4304 -> 4320 bytes
-rw-r--r--tools/h5repack/testfiles/h5repack_nbit.h5bin13776 -> 13208 bytes
-rw-r--r--tools/h5repack/testfiles/h5repack_objs.h5bin19770 -> 19738 bytes
-rw-r--r--tools/h5repack/testfiles/h5repack_refs.h5bin9472 -> 10336 bytes
-rw-r--r--tools/h5repack/testfiles/h5repack_shuffle.h5bin7864 -> 7216 bytes
-rw-r--r--tools/h5repack/testfiles/h5repack_soffset.h5bin11052 -> 12452 bytes
-rw-r--r--tools/h5stat/h5stat_gentest.c8
-rw-r--r--tools/lib/CMakeLists.txt18
-rw-r--r--tools/lib/h5diff_dset.c41
-rw-r--r--tools/lib/h5tools.h2
-rw-r--r--tools/lib/h5tools_dump.c347
-rw-r--r--tools/lib/h5tools_str.c3
-rw-r--r--tools/lib/h5tools_utils.c51
-rw-r--r--tools/misc/h5debug.c102
-rw-r--r--tools/perform/sio_standalone.h12
-rw-r--r--tools/testfiles/h5dump-help.txt4
-rw-r--r--tools/testfiles/non_existing.ddl31
-rw-r--r--tools/testfiles/pbits/tnofilename-with-packed-bits.ddl4
-rw-r--r--tools/testfiles/pbits/tpbitsIncomplete.ddl4
-rw-r--r--tools/testfiles/pbits/tpbitsLengthExceeded.ddl4
-rw-r--r--tools/testfiles/pbits/tpbitsLengthPositive.ddl4
-rw-r--r--tools/testfiles/pbits/tpbitsMaxExceeded.ddl4
-rw-r--r--tools/testfiles/pbits/tpbitsOffsetExceeded.ddl4
-rw-r--r--tools/testfiles/pbits/tpbitsOffsetNegative.ddl4
-rw-r--r--tools/testfiles/tallfilters.ddl2
-rw-r--r--tools/testfiles/tchunked.ddl2
-rw-r--r--tools/testfiles/tcompact.ddl2
-rw-r--r--tools/testfiles/tcontiguos.ddl2
-rw-r--r--tools/testfiles/tdeflate.ddl2
-rw-r--r--tools/testfiles/texternal.ddl2
-rw-r--r--tools/testfiles/tfill.ddl6
-rw-r--r--tools/testfiles/tfletcher32.ddl2
-rw-r--r--tools/testfiles/tints4dims.ddl202
-rw-r--r--tools/testfiles/tints4dims.h5bin0 -> 9824 bytes
-rw-r--r--tools/testfiles/tints4dimsBlock2.ddl16
-rw-r--r--tools/testfiles/tints4dimsBlockEq.ddl30
-rw-r--r--tools/testfiles/tints4dimsCount2.ddl22
-rw-r--r--tools/testfiles/tints4dimsCountEq.ddl30
-rw-r--r--tools/testfiles/tints4dimsStride2.ddl22
-rw-r--r--tools/testfiles/tnbit.ddl2
-rw-r--r--tools/testfiles/tscaleoffset.ddl2
-rw-r--r--tools/testfiles/tshuffle.ddl2
-rw-r--r--tools/testfiles/tszip.ddl2
-rw-r--r--tools/testfiles/tuserfilter.ddl2
-rw-r--r--tools/testfiles/vds/a.h5bin0 -> 7736 bytes
-rw-r--r--tools/testfiles/vds/b.h5bin0 -> 7736 bytes
-rw-r--r--tools/testfiles/vds/c.h5bin0 -> 7736 bytes
-rw-r--r--tools/testfiles/vds/d.h5bin0 -> 7736 bytes
-rw-r--r--tools/testfiles/vds/f-0.h5bin0 -> 4144 bytes
-rw-r--r--tools/testfiles/vds/f-3.h5bin0 -> 4144 bytes
-rw-r--r--tools/testfiles/vds/tvds_layout-1.ddl6
-rw-r--r--tools/testfiles/vds/tvds_layout-2.ddl6
-rw-r--r--tools/testfiles/vds/tvds_layout-3_1.ddl6
-rw-r--r--tools/testfiles/vds/tvds_layout-3_2.ddl6
-rw-r--r--tools/testfiles/vds/tvds_layout-4.ddl6
-rw-r--r--tools/testfiles/vds/tvds_layout-5.ddl6
-rw-r--r--tools/testfiles/vds/vds-eiger.h5bin0 -> 5496 bytes
-rw-r--r--tools/testfiles/vds/vds-first.ddl210
-rw-r--r--tools/testfiles/vds/vds-gap1.ddl58
-rw-r--r--tools/testfiles/vds/vds-gap2.ddl210
-rw-r--r--tools/testfiles/vds/vds-percival-unlim-maxmin.h5bin0 -> 5496 bytes
-rw-r--r--tools/testfiles/vds/vds_layout-eiger.ddl81
-rw-r--r--tools/testfiles/vds/vds_layout-maxmin.ddl416
111 files changed, 3048 insertions, 758 deletions
diff --git a/tools/Makefile.am b/tools/Makefile.am
index 095cc30..38e853d 100644
--- a/tools/Makefile.am
+++ b/tools/Makefile.am
@@ -25,6 +25,6 @@ CONFIG=ordered
# All subdirectories
SUBDIRS=lib h5diff h5ls h5dump misc h5import h5repack h5jam h5copy h5stat \
- perform
+ perform
include $(top_srcdir)/config/conclude.am
diff --git a/tools/h5copy/CMakeTests.cmake b/tools/h5copy/CMakeTests.cmake
index 9002e5a..4ef49ee 100644
--- a/tools/h5copy/CMakeTests.cmake
+++ b/tools/h5copy/CMakeTests.cmake
@@ -22,7 +22,7 @@
file (MAKE_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles")
foreach (listfiles ${LIST_HDF5_TEST_FILES} ${LIST_OTHER_TEST_FILES})
- GET_FILENAME_COMPONENT(fname "${listfiles}" NAME)
+ get_filename_component(fname "${listfiles}" NAME)
set (dest "${PROJECT_BINARY_DIR}/testfiles/${fname}")
#message (STATUS " Copying ${listfiles}")
add_custom_command (
diff --git a/tools/h5copy/h5copygentest.c b/tools/h5copy/h5copygentest.c
index 49204f5..93203c6 100644
--- a/tools/h5copy/h5copygentest.c
+++ b/tools/h5copy/h5copygentest.c
@@ -22,6 +22,7 @@
/* HDF file names */
#define HDF_FILE1 "h5copytst.h5"
+#define HDF_FILE1_NEW "h5copytst_new.h5"
#define HDF_FILE2 "h5copy_ref.h5"
#define HDF_EXT_SRC_FILE "h5copy_extlinks_src.h5"
#define HDF_EXT_TRG_FILE "h5copy_extlinks_trg.h5"
@@ -644,20 +645,41 @@ out:
*------------------------------------------------------------------------*/
static void Test_Obj_Copy(void)
{
- hid_t fid=0;
+ hid_t fid = -1; /* File id */
+ hid_t fapl_new = (-1); /* File access property id */
+ unsigned new_format; /* New format or old format */
- /* Create source file */
- fid = H5Fcreate(HDF_FILE1, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
- if (fid < 0)
- {
- fprintf(stderr, "Error: %s> H5Fcreate failed.\n", HDF_FILE1);
+ if((fapl_new = H5Pcreate(H5P_FILE_ACCESS)) < 0) {
+ fprintf(stderr, "Error: H5Pcreate failed.\n");
goto out;
}
+ if(H5Pset_libver_bounds(fapl_new, H5F_LIBVER_LATEST, H5F_LIBVER_LATEST) < 0) {
+ fprintf(stderr, "Error: H5Pset_libver_bounds failed.\n");
+ goto out;
+ }
+
+ /* Test with old & new format groups */
+ for(new_format = FALSE; new_format <= TRUE; new_format++) {
+
+ /* Set the FAPL for the type of format */
+ /* Create source file */
+ if(new_format)
+ fid = H5Fcreate(HDF_FILE1, H5F_ACC_TRUNC, H5P_DEFAULT, fapl_new);
+ else
+ fid = H5Fcreate(HDF_FILE1_NEW, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
+ if(fid < 0) {
+ fprintf(stderr, "Error: H5Fcreate failed.\n");
+ goto out;
+ }
+
+ gent_datasets(fid);
+ gent_empty_group(fid);
+ gent_nested_datasets(fid);
+ gent_nested_group(fid);
- gent_datasets(fid);
- gent_empty_group(fid);
- gent_nested_datasets(fid);
- gent_nested_group(fid);
+ H5Fclose(fid);
+ fid = (-1);
+ } /* end for */
out:
/*-----------------------------------------------------------------------
@@ -665,6 +687,8 @@ out:
*------------------------------------------------------------------------*/
if(fid > 0)
H5Fclose(fid);
+ if(fapl_new > 0)
+ H5Pclose(fapl_new);
}
/*-------------------------------------------------------------------------
diff --git a/tools/h5copy/testfiles/h5copytst_new.h5 b/tools/h5copy/testfiles/h5copytst_new.h5
new file mode 100644
index 0000000..222c511
--- /dev/null
+++ b/tools/h5copy/testfiles/h5copytst_new.h5
Binary files differ
diff --git a/tools/h5copy/testfiles/h5copytst_new.out.ls b/tools/h5copy/testfiles/h5copytst_new.out.ls
new file mode 100644
index 0000000..9df6b2e
--- /dev/null
+++ b/tools/h5copy/testfiles/h5copytst_new.out.ls
@@ -0,0 +1,502 @@
+#############################
+Expected output for 'h5ls ../testfiles/h5copytst_new.out.h5'
+#############################
+Opened "../testfiles/h5copytst_new.out.h5" with sec2 driver.
+/ Group
+ Location: 1:96
+ Links: 1
+/A Group
+ Location: 1:65602
+ Links: 1
+/A/B1 Group
+ Location: 1:66306
+ Links: 1
+/A/B1/simple Dataset {6/6}
+ Location: 1:65509
+ Links: 1
+ Modified: XXXX-XX-XX XX:XX:XX XXX
+ Storage: <details removed for portability>
+ Type: 32-bit little-endian integer
+/A/B2 Group
+ Location: 1:69807
+ Links: 1
+/A/B2/simple2 Dataset {6/6}
+ Location: 1:69714
+ Links: 1
+ Modified: XXXX-XX-XX XX:XX:XX XXX
+ Storage: <details removed for portability>
+ Type: 32-bit little-endian integer
+/C Group
+ Location: 1:72980
+ Links: 1
+/C/D Group
+ Location: 1:73684
+ Links: 1
+/C/D/simple Dataset {6/6}
+ Location: 1:72887
+ Links: 1
+ Modified: XXXX-XX-XX XX:XX:XX XXX
+ Storage: <details removed for portability>
+ Type: 32-bit little-endian integer
+/E Group
+ Location: 1:76217
+ Links: 1
+/E/F Group
+ Location: 1:76921
+ Links: 1
+/E/F/grp_dsets Group
+ Location: 1:75044
+ Links: 1
+ Modified: XXXX-XX-XX XX:XX:XX XXX
+/E/F/grp_dsets/chunk Dataset {6/6}
+ Location: 1:76014
+ Links: 1
+ Modified: XXXX-XX-XX XX:XX:XX XXX
+ Chunks: {2} 8 bytes
+ Storage: <details removed for portability>
+ Type: 32-bit little-endian integer
+/E/F/grp_dsets/compact Dataset {6/6}
+ Location: 1:75367
+ Links: 1
+ Modified: XXXX-XX-XX XX:XX:XX XXX
+ Storage: <details removed for portability>
+ Type: 32-bit little-endian integer
+/E/F/grp_dsets/compound Dataset {2/2}
+ Location: 1:75470
+ Links: 1
+ Modified: XXXX-XX-XX XX:XX:XX XXX
+ Storage: <details removed for portability>
+ Type: struct {
+ "str1" +0 20-byte null-terminated ASCII string
+ "str2" +20 20-byte null-terminated ASCII string
+ } 40 bytes
+/E/F/grp_dsets/compressed Dataset {6/6}
+ Location: 1:75683
+ Links: 1
+ Modified: XXXX-XX-XX XX:XX:XX XXX
+ Chunks: {2} 8 bytes
+ Storage: <details removed for portability>
+ Filter-0: deflate-1 OPT {1}
+ Type: 32-bit little-endian integer
+/E/F/grp_dsets/named_vl Dataset {2/2}
+ Location: 1:75853
+ Links: 1
+ Modified: XXXX-XX-XX XX:XX:XX XXX
+ Storage: <details removed for portability>
+ Type: shared-1:75793 variable length of
+ 32-bit little-endian integer
+/E/F/grp_dsets/nested_vl Dataset {2/2}
+ Location: 1:76108
+ Links: 1
+ Modified: XXXX-XX-XX XX:XX:XX XXX
+ Storage: <details removed for portability>
+ Type: variable length of
+ variable length of
+ 32-bit little-endian integer
+/E/F/grp_dsets/simple Dataset {6/6}
+ Location: 1:75274
+ Links: 1
+ Modified: XXXX-XX-XX XX:XX:XX XXX
+ Storage: <details removed for portability>
+ Type: 32-bit little-endian integer
+/E/F/grp_dsets/vl Type
+ Location: 1:75793
+ Links: 2
+ Modified: XXXX-XX-XX XX:XX:XX XXX
+ Type: shared-1:75793 variable length of
+ 32-bit little-endian integer
+/G Group
+ Location: 1:85688
+ Links: 1
+/G/H Group
+ Location: 1:86392
+ Links: 1
+/G/H/grp_nested Group
+ Location: 1:84436
+ Links: 1
+ Modified: XXXX-XX-XX XX:XX:XX XXX
+/G/H/grp_nested/grp_dsets Group
+ Location: 1:84515
+ Links: 1
+ Modified: XXXX-XX-XX XX:XX:XX XXX
+/G/H/grp_nested/grp_dsets/chunk Dataset {6/6}
+ Location: 1:85485
+ Links: 1
+ Modified: XXXX-XX-XX XX:XX:XX XXX
+ Chunks: {2} 8 bytes
+ Storage: <details removed for portability>
+ Type: 32-bit little-endian integer
+/G/H/grp_nested/grp_dsets/compact Dataset {6/6}
+ Location: 1:84838
+ Links: 1
+ Modified: XXXX-XX-XX XX:XX:XX XXX
+ Storage: <details removed for portability>
+ Type: 32-bit little-endian integer
+/G/H/grp_nested/grp_dsets/compound Dataset {2/2}
+ Location: 1:84941
+ Links: 1
+ Modified: XXXX-XX-XX XX:XX:XX XXX
+ Storage: <details removed for portability>
+ Type: struct {
+ "str1" +0 20-byte null-terminated ASCII string
+ "str2" +20 20-byte null-terminated ASCII string
+ } 40 bytes
+/G/H/grp_nested/grp_dsets/compressed Dataset {6/6}
+ Location: 1:85154
+ Links: 1
+ Modified: XXXX-XX-XX XX:XX:XX XXX
+ Chunks: {2} 8 bytes
+ Storage: <details removed for portability>
+ Filter-0: deflate-1 OPT {1}
+ Type: 32-bit little-endian integer
+/G/H/grp_nested/grp_dsets/named_vl Dataset {2/2}
+ Location: 1:85324
+ Links: 1
+ Modified: XXXX-XX-XX XX:XX:XX XXX
+ Storage: <details removed for portability>
+ Type: shared-1:85264 variable length of
+ 32-bit little-endian integer
+/G/H/grp_nested/grp_dsets/nested_vl Dataset {2/2}
+ Location: 1:85579
+ Links: 1
+ Modified: XXXX-XX-XX XX:XX:XX XXX
+ Storage: <details removed for portability>
+ Type: variable length of
+ variable length of
+ 32-bit little-endian integer
+/G/H/grp_nested/grp_dsets/simple Dataset {6/6}
+ Location: 1:84745
+ Links: 1
+ Modified: XXXX-XX-XX XX:XX:XX XXX
+ Storage: <details removed for portability>
+ Type: 32-bit little-endian integer
+/G/H/grp_nested/grp_dsets/vl Type
+ Location: 1:85264
+ Links: 2
+ Modified: XXXX-XX-XX XX:XX:XX XXX
+ Type: shared-1:85264 variable length of
+ 32-bit little-endian integer
+/chunk Dataset {6/6}
+ Location: 1:2238
+ Links: 1
+ Modified: XXXX-XX-XX XX:XX:XX XXX
+ Chunks: {2} 8 bytes
+ Storage: <details removed for portability>
+ Type: 32-bit little-endian integer
+/compact Dataset {6/6}
+ Location: 1:4240
+ Links: 1
+ Modified: XXXX-XX-XX XX:XX:XX XXX
+ Storage: <details removed for portability>
+ Type: 32-bit little-endian integer
+/compound Dataset {2/2}
+ Location: 1:6391
+ Links: 1
+ Modified: XXXX-XX-XX XX:XX:XX XXX
+ Storage: <details removed for portability>
+ Type: struct {
+ "str1" +0 20-byte null-terminated ASCII string
+ "str2" +20 20-byte null-terminated ASCII string
+ } 40 bytes
+/compressed Dataset {6/6}
+ Location: 1:6604
+ Links: 1
+ Modified: XXXX-XX-XX XX:XX:XX XXX
+ Chunks: {2} 8 bytes
+ Storage: <details removed for portability>
+ Filter-0: deflate-1 OPT {1}
+ Type: 32-bit little-endian integer
+/grp_dsets Group
+ Location: 1:27748
+ Links: 1
+ Modified: XXXX-XX-XX XX:XX:XX XXX
+/grp_dsets/chunk Dataset {6/6}
+ Location: 1:28718
+ Links: 1
+ Modified: XXXX-XX-XX XX:XX:XX XXX
+ Chunks: {2} 8 bytes
+ Storage: <details removed for portability>
+ Type: 32-bit little-endian integer
+/grp_dsets/compact Dataset {6/6}
+ Location: 1:28071
+ Links: 1
+ Modified: XXXX-XX-XX XX:XX:XX XXX
+ Storage: <details removed for portability>
+ Type: 32-bit little-endian integer
+/grp_dsets/compound Dataset {2/2}
+ Location: 1:28174
+ Links: 1
+ Modified: XXXX-XX-XX XX:XX:XX XXX
+ Storage: <details removed for portability>
+ Type: struct {
+ "str1" +0 20-byte null-terminated ASCII string
+ "str2" +20 20-byte null-terminated ASCII string
+ } 40 bytes
+/grp_dsets/compressed Dataset {6/6}
+ Location: 1:28387
+ Links: 1
+ Modified: XXXX-XX-XX XX:XX:XX XXX
+ Chunks: {2} 8 bytes
+ Storage: <details removed for portability>
+ Filter-0: deflate-1 OPT {1}
+ Type: 32-bit little-endian integer
+/grp_dsets/named_vl Dataset {2/2}
+ Location: 1:28557
+ Links: 1
+ Modified: XXXX-XX-XX XX:XX:XX XXX
+ Storage: <details removed for portability>
+ Type: shared-1:28497 variable length of
+ 32-bit little-endian integer
+/grp_dsets/nested_vl Dataset {2/2}
+ Location: 1:28812
+ Links: 1
+ Modified: XXXX-XX-XX XX:XX:XX XXX
+ Storage: <details removed for portability>
+ Type: variable length of
+ variable length of
+ 32-bit little-endian integer
+/grp_dsets/simple Dataset {6/6}
+ Location: 1:27978
+ Links: 1
+ Modified: XXXX-XX-XX XX:XX:XX XXX
+ Storage: <details removed for portability>
+ Type: 32-bit little-endian integer
+/grp_dsets/simple_group Dataset {6/6}
+ Location: 1:46180
+ Links: 1
+ Modified: XXXX-XX-XX XX:XX:XX XXX
+ Storage: <details removed for portability>
+ Type: 32-bit little-endian integer
+/grp_dsets/vl Type
+ Location: 1:28497
+ Links: 2
+ Modified: XXXX-XX-XX XX:XX:XX XXX
+ Type: shared-1:28497 variable length of
+ 32-bit little-endian integer
+/grp_empty Group
+ Location: 1:27693
+ Links: 1
+ Modified: XXXX-XX-XX XX:XX:XX XXX
+/grp_nested Group
+ Location: 1:35940
+ Links: 1
+ Modified: XXXX-XX-XX XX:XX:XX XXX
+/grp_nested/grp_dsets Group
+ Location: 1:36019
+ Links: 1
+ Modified: XXXX-XX-XX XX:XX:XX XXX
+/grp_nested/grp_dsets/chunk Dataset {6/6}
+ Location: 1:36989
+ Links: 1
+ Modified: XXXX-XX-XX XX:XX:XX XXX
+ Chunks: {2} 8 bytes
+ Storage: <details removed for portability>
+ Type: 32-bit little-endian integer
+/grp_nested/grp_dsets/compact Dataset {6/6}
+ Location: 1:36342
+ Links: 1
+ Modified: XXXX-XX-XX XX:XX:XX XXX
+ Storage: <details removed for portability>
+ Type: 32-bit little-endian integer
+/grp_nested/grp_dsets/compound Dataset {2/2}
+ Location: 1:36445
+ Links: 1
+ Modified: XXXX-XX-XX XX:XX:XX XXX
+ Storage: <details removed for portability>
+ Type: struct {
+ "str1" +0 20-byte null-terminated ASCII string
+ "str2" +20 20-byte null-terminated ASCII string
+ } 40 bytes
+/grp_nested/grp_dsets/compressed Dataset {6/6}
+ Location: 1:36658
+ Links: 1
+ Modified: XXXX-XX-XX XX:XX:XX XXX
+ Chunks: {2} 8 bytes
+ Storage: <details removed for portability>
+ Filter-0: deflate-1 OPT {1}
+ Type: 32-bit little-endian integer
+/grp_nested/grp_dsets/named_vl Dataset {2/2}
+ Location: 1:36828
+ Links: 1
+ Modified: XXXX-XX-XX XX:XX:XX XXX
+ Storage: <details removed for portability>
+ Type: shared-1:36768 variable length of
+ 32-bit little-endian integer
+/grp_nested/grp_dsets/nested_vl Dataset {2/2}
+ Location: 1:37083
+ Links: 1
+ Modified: XXXX-XX-XX XX:XX:XX XXX
+ Storage: <details removed for portability>
+ Type: variable length of
+ variable length of
+ 32-bit little-endian integer
+/grp_nested/grp_dsets/simple Dataset {6/6}
+ Location: 1:36249
+ Links: 1
+ Modified: XXXX-XX-XX XX:XX:XX XXX
+ Storage: <details removed for portability>
+ Type: 32-bit little-endian integer
+/grp_nested/grp_dsets/vl Type
+ Location: 1:36768
+ Links: 2
+ Modified: XXXX-XX-XX XX:XX:XX XXX
+ Type: shared-1:36768 variable length of
+ 32-bit little-endian integer
+/grp_rename Group
+ Location: 1:47077
+ Links: 1
+ Modified: XXXX-XX-XX XX:XX:XX XXX
+/grp_rename/chunk Dataset {6/6}
+ Location: 1:48047
+ Links: 1
+ Modified: XXXX-XX-XX XX:XX:XX XXX
+ Chunks: {2} 8 bytes
+ Storage: <details removed for portability>
+ Type: 32-bit little-endian integer
+/grp_rename/compact Dataset {6/6}
+ Location: 1:47400
+ Links: 1
+ Modified: XXXX-XX-XX XX:XX:XX XXX
+ Storage: <details removed for portability>
+ Type: 32-bit little-endian integer
+/grp_rename/compound Dataset {2/2}
+ Location: 1:47503
+ Links: 1
+ Modified: XXXX-XX-XX XX:XX:XX XXX
+ Storage: <details removed for portability>
+ Type: struct {
+ "str1" +0 20-byte null-terminated ASCII string
+ "str2" +20 20-byte null-terminated ASCII string
+ } 40 bytes
+/grp_rename/compressed Dataset {6/6}
+ Location: 1:47716
+ Links: 1
+ Modified: XXXX-XX-XX XX:XX:XX XXX
+ Chunks: {2} 8 bytes
+ Storage: <details removed for portability>
+ Filter-0: deflate-1 OPT {1}
+ Type: 32-bit little-endian integer
+/grp_rename/grp_dsets Group
+ Location: 1:55269
+ Links: 1
+ Modified: XXXX-XX-XX XX:XX:XX XXX
+/grp_rename/grp_dsets/chunk Dataset {6/6}
+ Location: 1:56239
+ Links: 1
+ Modified: XXXX-XX-XX XX:XX:XX XXX
+ Chunks: {2} 8 bytes
+ Storage: <details removed for portability>
+ Type: 32-bit little-endian integer
+/grp_rename/grp_dsets/compact Dataset {6/6}
+ Location: 1:55592
+ Links: 1
+ Modified: XXXX-XX-XX XX:XX:XX XXX
+ Storage: <details removed for portability>
+ Type: 32-bit little-endian integer
+/grp_rename/grp_dsets/compound Dataset {2/2}
+ Location: 1:55695
+ Links: 1
+ Modified: XXXX-XX-XX XX:XX:XX XXX
+ Storage: <details removed for portability>
+ Type: struct {
+ "str1" +0 20-byte null-terminated ASCII string
+ "str2" +20 20-byte null-terminated ASCII string
+ } 40 bytes
+/grp_rename/grp_dsets/compressed Dataset {6/6}
+ Location: 1:55908
+ Links: 1
+ Modified: XXXX-XX-XX XX:XX:XX XXX
+ Chunks: {2} 8 bytes
+ Storage: <details removed for portability>
+ Filter-0: deflate-1 OPT {1}
+ Type: 32-bit little-endian integer
+/grp_rename/grp_dsets/named_vl Dataset {2/2}
+ Location: 1:56078
+ Links: 1
+ Modified: XXXX-XX-XX XX:XX:XX XXX
+ Storage: <details removed for portability>
+ Type: shared-1:56018 variable length of
+ 32-bit little-endian integer
+/grp_rename/grp_dsets/nested_vl Dataset {2/2}
+ Location: 1:56333
+ Links: 1
+ Modified: XXXX-XX-XX XX:XX:XX XXX
+ Storage: <details removed for portability>
+ Type: variable length of
+ variable length of
+ 32-bit little-endian integer
+/grp_rename/grp_dsets/simple Dataset {6/6}
+ Location: 1:55499
+ Links: 1
+ Modified: XXXX-XX-XX XX:XX:XX XXX
+ Storage: <details removed for portability>
+ Type: 32-bit little-endian integer
+/grp_rename/grp_dsets/vl Type
+ Location: 1:56018
+ Links: 2
+ Modified: XXXX-XX-XX XX:XX:XX XXX
+ Type: shared-1:56018 variable length of
+ 32-bit little-endian integer
+/grp_rename/named_vl Dataset {2/2}
+ Location: 1:47886
+ Links: 1
+ Modified: XXXX-XX-XX XX:XX:XX XXX
+ Storage: <details removed for portability>
+ Type: shared-1:47826 variable length of
+ 32-bit little-endian integer
+/grp_rename/nested_vl Dataset {2/2}
+ Location: 1:48141
+ Links: 1
+ Modified: XXXX-XX-XX XX:XX:XX XXX
+ Storage: <details removed for portability>
+ Type: variable length of
+ variable length of
+ 32-bit little-endian integer
+/grp_rename/simple Dataset {6/6}
+ Location: 1:47307
+ Links: 1
+ Modified: XXXX-XX-XX XX:XX:XX XXX
+ Storage: <details removed for portability>
+ Type: 32-bit little-endian integer
+/grp_rename/vl Type
+ Location: 1:47826
+ Links: 2
+ Modified: XXXX-XX-XX XX:XX:XX XXX
+ Type: shared-1:47826 variable length of
+ 32-bit little-endian integer
+/named_vl Dataset {2/2}
+ Location: 1:8657
+ Links: 1
+ Modified: XXXX-XX-XX XX:XX:XX XXX
+ Storage: <details removed for portability>
+ Type: shared-1:8606 variable length of
+ 32-bit little-endian integer
+/nested_vl Dataset {2/2}
+ Location: 1:22942
+ Links: 1
+ Modified: XXXX-XX-XX XX:XX:XX XXX
+ Storage: <details removed for portability>
+ Type: variable length of
+ variable length of
+ 32-bit little-endian integer
+/rename Dataset {2/2}
+ Location: 1:27240
+ Links: 1
+ Modified: XXXX-XX-XX XX:XX:XX XXX
+ Storage: <details removed for portability>
+ Type: struct {
+ "str1" +0 20-byte null-terminated ASCII string
+ "str2" +20 20-byte null-terminated ASCII string
+ } 40 bytes
+/simple Dataset {6/6}
+ Location: 1:800
+ Links: 1
+ Modified: XXXX-XX-XX XX:XX:XX XXX
+ Storage: <details removed for portability>
+ Type: 32-bit little-endian integer
+/simple_top Dataset {6/6}
+ Location: 1:25099
+ Links: 1
+ Modified: XXXX-XX-XX XX:XX:XX XXX
+ Storage: <details removed for portability>
+ Type: 32-bit little-endian integer
diff --git a/tools/h5diff/CMakeTests.cmake b/tools/h5diff/CMakeTests.cmake
index 0595edd..c815325 100644
--- a/tools/h5diff/CMakeTests.cmake
+++ b/tools/h5diff/CMakeTests.cmake
@@ -267,7 +267,7 @@
# copy test files from source to build dir
#
foreach (h5_tstfiles ${LIST_HDF5_TEST_FILES} ${LIST_OTHER_TEST_FILES})
- GET_FILENAME_COMPONENT(fname "${h5_tstfiles}" NAME)
+ get_filename_component(fname "${h5_tstfiles}" NAME)
set (dest "${PROJECT_BINARY_DIR}/testfiles/${fname}")
#message (STATUS " Copying ${fname}")
add_custom_command (
@@ -1115,8 +1115,10 @@ ADD_H5_TEST (h5diff_90 0 -v ${FILE2} ${FILE2})
ADD_H5_TEST (h5diff_100 1 -v ${FILE9} ${FILE10})
# 11. floating point comparison
+# double value
ADD_H5_TEST (h5diff_101 1 -v ${FILE1} ${FILE1} g1/d1 g1/d2)
+# float value
ADD_H5_TEST (h5diff_102 1 -v ${FILE1} ${FILE1} g1/fp1 g1/fp2)
# with --use-system-epsilon for double value. expect less differences
@@ -1361,7 +1363,7 @@ ADD_H5_TEST (h5diff_517 1 -v ${GRP_RECURSE1_EXT} ${GRP_RECURSE2_EXT1} /g1)
ADD_H5_TEST (h5diff_518 0 -v --follow-symlinks ${GRP_RECURSE1_EXT} ${GRP_RECURSE2_EXT1} /g1)
# ##############################################################################
-# # Exclude path (--exclude-path)
+# # Exclude objects (--exclude-path)
# ##############################################################################
#
# Same structure, same names and different value.
diff --git a/tools/h5diff/testfiles/h5diff_v1.txt b/tools/h5diff/testfiles/h5diff_v1.txt
index 31a3eae..8210cf9 100644
--- a/tools/h5diff/testfiles/h5diff_v1.txt
+++ b/tools/h5diff/testfiles/h5diff_v1.txt
@@ -7,7 +7,7 @@ file1 file2
group : </> and </>
0 differences found
dataset: </vds_dset> and </vds_dset>
-Not comparable: </vds_dset> or </vds_dset> is an empty dataset
+Warning: </vds_dset> or </vds_dset> is a virtual dataset
Not comparable: </vds_dset> has rank 3, dimensions [5x18x8], max dimensions [18446744073709551615x18x8]
and </vds_dset> has rank 3, dimensions [6x8x14], max dimensions [18446744073709551615x8x14]
0 differences found
diff --git a/tools/h5diff/testfiles/h5diff_v3.txt b/tools/h5diff/testfiles/h5diff_v3.txt
index 8c5d2a2..57af303 100644
--- a/tools/h5diff/testfiles/h5diff_v3.txt
+++ b/tools/h5diff/testfiles/h5diff_v3.txt
@@ -1,4 +1,4 @@
-Not comparable: </vds_dset> or </vds_dset> is an empty dataset
+Warning: </vds_dset> or </vds_dset> is a virtual dataset
Not comparable: </vds_dset> has rank 3, dimensions [5x18x8], max dimensions [18446744073709551615x18x8]
and </vds_dset> has rank 3, dimensions [6x8x14], max dimensions [18446744073709551615x8x14]
EXIT CODE: 0
diff --git a/tools/h5dump/CMakeTests.cmake b/tools/h5dump/CMakeTests.cmake
index 00ec760..7897311 100644
--- a/tools/h5dump/CMakeTests.cmake
+++ b/tools/h5dump/CMakeTests.cmake
@@ -4,7 +4,7 @@
### T E S T I N G ###
##############################################################################
##############################################################################
-
+
# --------------------------------------------------------------------
# Copy all the HDF5 files from the test directory into the source directory
# --------------------------------------------------------------------
@@ -12,6 +12,7 @@
${HDF5_TOOLS_SRC_DIR}/testfiles/charsets.ddl
${HDF5_TOOLS_SRC_DIR}/testfiles/file_space.ddl
${HDF5_TOOLS_SRC_DIR}/testfiles/filter_fail.ddl
+ ${HDF5_TOOLS_SRC_DIR}/testfiles/non_existing.ddl
${HDF5_TOOLS_SRC_DIR}/testfiles/packedbits.ddl
${HDF5_TOOLS_SRC_DIR}/testfiles/tall-1.ddl
${HDF5_TOOLS_SRC_DIR}/testfiles/tall-2.ddl
@@ -102,6 +103,12 @@
${HDF5_TOOLS_SRC_DIR}/testfiles/tindicessub3.ddl
${HDF5_TOOLS_SRC_DIR}/testfiles/tindicessub4.ddl
${HDF5_TOOLS_SRC_DIR}/testfiles/tindicesyes.ddl
+ ${HDF5_TOOLS_SRC_DIR}/testfiles/tints4dims.ddl
+ ${HDF5_TOOLS_SRC_DIR}/testfiles/tints4dimsBlock2.ddl
+ ${HDF5_TOOLS_SRC_DIR}/testfiles/tints4dimsBlockEq.ddl
+ ${HDF5_TOOLS_SRC_DIR}/testfiles/tints4dimsCount2.ddl
+ ${HDF5_TOOLS_SRC_DIR}/testfiles/tints4dimsCountEq.ddl
+ ${HDF5_TOOLS_SRC_DIR}/testfiles/tints4dimsStride2.ddl
${HDF5_TOOLS_SRC_DIR}/testfiles/tintsattrs.ddl
${HDF5_TOOLS_SRC_DIR}/testfiles/tlarge_objname.ddl
#${HDF5_TOOLS_SRC_DIR}/testfiles/tldouble.ddl
@@ -243,6 +250,7 @@
${HDF5_TOOLS_SRC_DIR}/testfiles/tgrp_comments.h5
${HDF5_TOOLS_SRC_DIR}/testfiles/thlink.h5
${HDF5_TOOLS_SRC_DIR}/testfiles/thyperslab.h5
+ ${HDF5_TOOLS_SRC_DIR}/testfiles/tints4dims.h5
${HDF5_TOOLS_SRC_DIR}/testfiles/tintsattrs.h5
${HDF5_TOOLS_SRC_DIR}/testfiles/tlarge_objname.h5
#${HDF5_TOOLS_SRC_DIR}/testfiles/tldouble.h5
@@ -284,6 +292,7 @@
)
set (HDF5_ERROR_REFERENCE_TEST_FILES
${PROJECT_SOURCE_DIR}/errfiles/filter_fail.err
+ ${PROJECT_SOURCE_DIR}/errfiles/non_existing.err
${PROJECT_SOURCE_DIR}/errfiles/tall-1.err
${PROJECT_SOURCE_DIR}/errfiles/tall-2A.err
${PROJECT_SOURCE_DIR}/errfiles/tall-2A0.err
@@ -325,7 +334,7 @@
ARGS -E copy_if_different ${tst_h5_file} ${dest}
)
endforeach (tst_h5_file ${HDF5_REFERENCE_TEST_FILES})
-
+
foreach (tst_exp_file ${HDF5_REFERENCE_EXP_FILES})
if (WIN32)
file (READ ${HDF5_TOOLS_SRC_DIR}/testfiles/${tst_exp_file} TEST_STREAM)
@@ -373,7 +382,7 @@
COMMAND ${CMAKE_COMMAND}
ARGS -E copy_if_different ${HDF5_TOOLS_SOURCE_DIR}/testfiles/tbin1.ddl ${PROJECT_BINARY_DIR}/testfiles/std/tbin1LE.ddl
)
-
+
if (WIN32)
file (READ ${HDF5_TOOLS_SRC_DIR}/testfiles/tbinregR.exp TEST_STREAM)
file (WRITE ${PROJECT_BINARY_DIR}/testfiles/std/tbinregR.exp "${TEST_STREAM}")
@@ -385,7 +394,7 @@
ARGS -E copy_if_different ${HDF5_TOOLS_SRC_DIR}/testfiles/tbinregR.exp ${PROJECT_BINARY_DIR}/testfiles/std/tbinregR.exp
)
endif (WIN32)
-
+
##############################################################################
##############################################################################
### T H E T E S T S M A C R O S ###
@@ -730,7 +739,7 @@
add_test (
NAME H5DUMP-clearall-objects
COMMAND ${CMAKE_COMMAND}
- -E remove
+ -E remove
h5dump-help.out
charsets.out
charsets.out.err
@@ -738,6 +747,8 @@
file_space.out.err
filter_fail.out
filter_fail.out.err
+ non_existing.out
+ non_existing.out.err
packedbits.out
packedbits.out.err
tall-1.out
@@ -911,6 +922,18 @@
texceedsubblock.out.err
tindicesyes.out
tindicesyes.out.err
+ tints4dims.out
+ tints4dims.out.err
+ tints4dimsBlock2.out
+ tints4dimsBlock2.out.err
+ tints4dimsBlockEq.out
+ tints4dimsBlockEq.out.err
+ tints4dimsCount2.out
+ tints4dimsCount2.out.err
+ tints4dimsCountEq.out
+ tints4dimsCountEq.out.err
+ tints4dimsStride2.out
+ tints4dimsStride2.out.err
tintsattrs.out
tintsattrs.out.err
tlarge_objname.out
@@ -1075,9 +1098,9 @@
ADD_H5_TEST_EXPORT (trawdatafile packedbits.h5 0 --enable-error-stack -y -o)
ADD_H5_TEST_EXPORT (tnoddlfile packedbits.h5 0 --enable-error-stack -O -y -o)
ADD_H5_TEST_EXPORT (trawssetfile tdset.h5 0 --enable-error-stack -d "/dset1[1,1;;;]" -y -o)
-
+
ADD_H5_TEST_EXPORT_DDL (twithddlfile packedbits.h5 0 twithddl --enable-error-stack --ddl=twithddl.txt -y -o)
-
+
# test for maximum display datasets
ADD_H5_TEST (twidedisplay 0 --enable-error-stack -w0 packedbits.h5)
@@ -1118,10 +1141,10 @@
ADD_H5_TEST_N (tattr-2 0 --enable-error-stack -N /\\\\/attr1 --any_path /attr4 --any_path=/attr5 tattr.h5)
# test for header and error messages
ADD_H5ERR_MASK_TEST (tattr-3 1 --enable-error-stack --header -a /attr2 --attribute=/attr tattr.h5)
- # test for displaying attributes in shared datatype (also in group and dataset)
- ADD_H5_TEST (tnamed_dtype_attr 0 --enable-error-stack tnamed_dtype_attr.h5)
# test for displaying at least 9 attributes on root from a be machine
ADD_H5_TEST (tattr-4_be 0 --enable-error-stack tattr4_be.h5)
+ # test for displaying attributes in shared datatype (also in group and dataset)
+ ADD_H5_TEST (tnamed_dtype_attr 0 --enable-error-stack tnamed_dtype_attr.h5)
# test for displaying soft links and user-defined links
ADD_H5_TEST (tslink-1 0 --enable-error-stack tslink.h5)
@@ -1147,7 +1170,7 @@
# test for named data types
ADD_H5_TEST (tcomp-2 0 --enable-error-stack -t /type1 --datatype /type2 --datatype=/group1/type3 tcompound.h5)
ADD_H5_TEST_N (tcomp-2 0 --enable-error-stack -N /type1 --any_path /type2 --any_path=/group1/type3 tcompound.h5)
- # test for unamed type
+ # test for unamed type
ADD_H5ERR_MASK_TEST (tcomp-3 0 "--enable-error-stack;-t;/#6632;-g;/group2;tcompound.h5")
# test complicated compound datatype
ADD_H5_TEST (tcomp-4 0 --enable-error-stack tcompound_complex.h5)
@@ -1169,7 +1192,7 @@
# test for loop detection
ADD_H5_TEST (tloop-1 0 --enable-error-stack tloop.h5)
- # test for string
+ # test for string
ADD_H5_TEST (tstr-1 0 --enable-error-stack tstr.h5)
ADD_H5_TEST (tstr-2 0 --enable-error-stack tstr2.h5)
@@ -1202,7 +1225,7 @@
#ADD_H5_MASK_TEST (tstarfile 0 --enable-error-stack -H -d Dataset1 tarr*.h5)
#ADD_H5_MASK_TEST (tqmarkfile 0 --enable-error-stack -H -d Dataset1 tarray?.h5)
ADD_H5_TEST (tmultifile 0 --enable-error-stack -H -d Dataset1 tarray2.h5 tarray3.h5 tarray4.h5 tarray5.h5 tarray6.h5 tarray7.h5)
-
+
# test for files with empty data
ADD_H5_TEST (tempty 0 --enable-error-stack tempty.h5)
@@ -1232,6 +1255,12 @@
ADD_H5_TEST (tdset-3s 0 --enable-error-stack -d "/dset1[1,1;;;]" tdset.h5)
ADD_H5_TEST (tno-subset 0 --enable-error-stack --no-compact-subset -d "AHFINDERDIRECT::ah_centroid_t[0] it=0 tl=0" tno-subset.h5)
+ ADD_H5_TEST (tints4dimsCount2 0 --enable-error-stack -d FourDimInts -s 0,0,0,0 -c 2,2,2,2 tints4dims.h5)
+ ADD_H5_TEST (tints4dimsBlock2 0 --enable-error-stack -d FourDimInts -s 0,0,0,0 -c 1,1,1,1 -k 2,2,2,2 tints4dims.h5)
+ ADD_H5_TEST (tints4dimsStride2 0 --enable-error-stack -d FourDimInts -s 0,0,0,0 -S 2,2,2,2 -c 2,2,2,2 tints4dims.h5)
+ ADD_H5_TEST (tints4dimsCountEq 0 --enable-error-stack -d FourDimInts -s 0,0,0,0 -S 2,2,1,1 -k 1,2,1,1 -c 2,2,4,4 tints4dims.h5)
+ ADD_H5_TEST (tints4dimsBlockEq 0 --enable-error-stack -d FourDimInts -s 0,0,0,0 -S 2,2,1,1 -c 2,2,1,1 -k 1,2,4,4 tints4dims.h5)
+
# test printing characters in ASCII instead of decimal
ADD_H5_TEST (tchar1 0 --enable-error-stack -r tchar.h5)
@@ -1263,7 +1292,7 @@
ADD_H5_TEST (tcontiguos 0 --enable-error-stack -H -p -d contiguous tfilters.h5)
# chunked
ADD_H5_TEST (tchunked 0 --enable-error-stack -H -p -d chunked tfilters.h5)
- # external
+ # external
ADD_H5_TEST (texternal 0 --enable-error-stack -H -p -d external tfilters.h5)
# fill values
@@ -1331,7 +1360,7 @@
# don't have). Do this by searching H5pubconf.h to see which
# filters are defined.
-# detect whether the encoder is present.
+# detect whether the encoder is present.
if (H5_HAVE_FILTER_DEFLATE)
set (USE_FILTER_DEFLATE "true")
endif (H5_HAVE_FILTER_DEFLATE)
@@ -1352,12 +1381,12 @@
# test for displaying objects with very long names
ADD_H5_TEST (tlonglinks 0 --enable-error-stack tlonglinks.h5)
- # dimensions over 4GB, print boundary
+ # dimensions over 4GB, print boundary
ADD_H5_TEST (tbigdims 0 --enable-error-stack -d dset4gb -s 4294967284 -c 22 tbigdims.h5)
# hyperslab read
ADD_H5_TEST (thyperslab 0 --enable-error-stack thyperslab.h5)
-
+
# test for displaying dataset and attribute of null space
ADD_H5_TEST (tnullspace 0 --enable-error-stack tnullspace.h5)
@@ -1391,9 +1420,10 @@
ADD_H5_TEST (tbin4 0 --enable-error-stack -d double -b FILE -o tbin4.bin tbinary.h5)
endif (NOT HDF5_ENABLE_USING_MEMCHECKER)
- # test for dataset region references
+ # test for dataset region references
ADD_H5_TEST (tdatareg 0 --enable-error-stack tdatareg.h5)
ADD_H5ERR_MASK_TEST (tdataregR 0 --enable-error-stack -R tdatareg.h5)
+ ADD_H5_TEST (tattrreg 0 --enable-error-stack tattrreg.h5)
ADD_H5ERR_MASK_TEST (tattrregR 0 -R --enable-error-stack tattrreg.h5)
ADD_H5_EXPORT_TEST (tbinregR tdatareg.h5 0 --enable-error-stack -d /Dataset1 -s 0 -R -y -o)
@@ -1414,7 +1444,7 @@
# tests for link references and order
ADD_H5ERR_MASK_TEST (torderlinks1 0 --enable-error-stack --sort_by=name --sort_order=ascending tfcontents1.h5)
ADD_H5ERR_MASK_TEST (torderlinks2 0 --enable-error-stack --sort_by=name --sort_order=descending tfcontents1.h5)
-
+
# tests for floating point user defined printf format
ADD_H5_TEST (tfpformat 0 --enable-error-stack -m %.7f tfpformat.h5)
@@ -1430,3 +1460,6 @@
# test for -o -y for dataset with attributes
ADD_H5_TEST_EXPORT (tall-6 tall.h5 0 --enable-error-stack -d /g1/g1.1/dset1.1.1 -y -o)
+
+ # test for non-existing file
+ ADD_H5_TEST (non_existing 1 --enable-error-stack tgroup.h5 non_existing.h5)
diff --git a/tools/h5dump/CMakeTestsPBITS.cmake b/tools/h5dump/CMakeTestsPBITS.cmake
index e76fa0e..745d5b1 100644
--- a/tools/h5dump/CMakeTestsPBITS.cmake
+++ b/tools/h5dump/CMakeTestsPBITS.cmake
@@ -86,7 +86,7 @@
)
foreach (pbits_h5_file ${HDF5_REFERENCE_TEST_PBITS})
- GET_FILENAME_COMPONENT(fname "${pbits_h5_file}" NAME)
+ get_filename_component(fname "${pbits_h5_file}" NAME)
set (dest "${PROJECT_BINARY_DIR}/testfiles/pbits/${fname}")
#message (STATUS " Copying ${pbits_h5_file}")
add_custom_command (
@@ -99,7 +99,7 @@
foreach (ddl_pbits ${HDF5_REFERENCE_PBITS})
- GET_FILENAME_COMPONENT(fname "${ddl_pbits}" NAME)
+ get_filename_component(fname "${ddl_pbits}" NAME)
set (ddldest "${PROJECT_BINARY_DIR}/testfiles/pbits/${fname}")
#message (STATUS " Copying ${ddl_pbits}")
add_custom_command (
@@ -111,7 +111,7 @@
endforeach (ddl_pbits ${HDF5_REFERENCE_PBITS})
foreach (ddl_pbits ${HDF5_ERROR_REFERENCE_PBITS})
- GET_FILENAME_COMPONENT(fname "${ddl_pbits}" NAME)
+ get_filename_component(fname "${ddl_pbits}" NAME)
set (ddldest "${PROJECT_BINARY_DIR}/testfiles/pbits/${fname}")
#message (STATUS " Copying ${ddl_pbits}")
add_custom_command (
diff --git a/tools/h5dump/CMakeTestsVDS.cmake b/tools/h5dump/CMakeTestsVDS.cmake
index 58287fa..dcb90e0 100644
--- a/tools/h5dump/CMakeTestsVDS.cmake
+++ b/tools/h5dump/CMakeTestsVDS.cmake
@@ -22,6 +22,11 @@
tvds_layout-3_2.ddl
tvds_layout-4.ddl
tvds_layout-5.ddl
+ vds-first.ddl
+ vds-gap1.ddl
+ vds-gap2.ddl
+ vds_layout-eiger.ddl
+ vds_layout-maxmin.ddl
)
set (HDF5_REFERENCE_TEST_VDS
1_a.h5
@@ -47,12 +52,20 @@
5_b.h5
5_c.h5
5_vds.h5
+ a.h5
+ b.h5
+ c.h5
+ d.h5
+ vds-percival-unlim-maxmin.h5
+ f-0.h5
+ f-3.h5
+ vds-eiger.h5
)
set (HDF5_ERROR_REFERENCE_VDS
)
foreach (vds_h5_file ${HDF5_REFERENCE_TEST_VDS})
- GET_FILENAME_COMPONENT(fname "${vds_h5_file}" NAME)
+ get_filename_component(fname "${vds_h5_file}" NAME)
set (dest "${PROJECT_BINARY_DIR}/testfiles/vds/${fname}")
#message (STATUS " Copying ${vds_h5_file}")
add_custom_command (
@@ -65,7 +78,7 @@
foreach (ddl_vds ${HDF5_REFERENCE_VDS})
- GET_FILENAME_COMPONENT(fname "${ddl_vds}" NAME)
+ get_filename_component(fname "${ddl_vds}" NAME)
set (ddldest "${PROJECT_BINARY_DIR}/testfiles/vds/${fname}")
#message (STATUS " Copying ${ddl_vds}")
add_custom_command (
@@ -77,7 +90,7 @@
endforeach (ddl_vds ${HDF5_REFERENCE_VDS})
foreach (ddl_vds ${HDF5_ERROR_REFERENCE_VDS})
- GET_FILENAME_COMPONENT(fname "${ddl_vds}" NAME)
+ get_filename_component(fname "${ddl_vds}" NAME)
set (ddldest "${PROJECT_BINARY_DIR}/testfiles/vds/${fname}")
#message (STATUS " Copying ${ddl_vds}")
add_custom_command (
@@ -98,7 +111,7 @@
# If using memchecker add tests without using scripts
if (HDF5_ENABLE_USING_MEMCHECKER)
add_test (NAME H5DUMP-${resultfile} COMMAND $<TARGET_FILE:h5dump> ${ARGN})
- set_tests_properties (H5DUMP-${resultfile} PROPERTIES WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfilesvds")
+ set_tests_properties (H5DUMP-${resultfile} PROPERTIES WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles/vds")
if (NOT ${resultcode} STREQUAL "0")
set_tests_properties (H5DUMP-${resultfile} PROPERTIES WILL_FAIL "true")
endif (NOT ${resultcode} STREQUAL "0")
@@ -131,7 +144,7 @@
# If using memchecker add tests without using scripts
if (HDF5_ENABLE_USING_MEMCHECKER)
add_test (NAME H5DUMP-${resultfile} COMMAND $<TARGET_FILE:h5dump> -p ${ARGN})
- set_tests_properties (H5DUMP-${resultfile} PROPERTIES WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfilesvds")
+ set_tests_properties (H5DUMP-${resultfile} PROPERTIES WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles/vds")
if (NOT ${resultcode} STREQUAL "0")
set_tests_properties (H5DUMP-${resultfile} PROPERTIES WILL_FAIL "true")
endif (NOT ${resultcode} STREQUAL "0")
@@ -184,6 +197,12 @@
tvds-4.out.err
tvds-5.out
tvds-5.out.err
+ vds-first.out
+ vds-first.out.err
+ vds-gap1.out
+ vds-gap1.out.err
+ vds-gap2.out
+ vds-gap2.out.err
tvds_layout-1.out
tvds_layout-1.out.err
tvds_layout-2.out
@@ -196,6 +215,10 @@
tvds_layout-4.out.err
tvds_layout-5.out
tvds_layout-5.out.err
+ vds_layout-eiger.out
+ vds_layout-eiger.out.err
+ vds_layout-maxmin.out
+ vds_layout-maxmin.out.err
)
set_tests_properties (H5DUMP_VDS-clearall-objects PROPERTIES WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles/vds")
if (NOT "${last_vds_test}" STREQUAL "")
@@ -225,6 +248,9 @@
ADD_H5_VDS_TEST (tvds-3_2 0 --enable-error-stack 3_2_vds.h5)
ADD_H5_VDS_TEST (tvds-4 0 --enable-error-stack 4_vds.h5)
ADD_H5_VDS_TEST (tvds-5 0 --enable-error-stack 5_vds.h5)
+ ADD_H5_VDS_TEST (vds-first 0 --vds-view-first-missing --enable-error-stack vds-percival-unlim-maxmin.h5)
+ ADD_H5_VDS_TEST (vds-gap1 0 -d /VDS-Eiger --vds-gap-size=1 --enable-error-stack vds-eiger.h5)
+ ADD_H5_VDS_TEST (vds-gap2 0 --vds-gap-size=2 --enable-error-stack vds-eiger.h5)
endif (USE_FILTER_DEFLATE)
# Layout read
@@ -235,4 +261,6 @@
ADD_H5_VDS_LAYOUT (tvds_layout-3_2 0 --enable-error-stack 3_2_vds.h5)
ADD_H5_VDS_LAYOUT (tvds_layout-4 0 --enable-error-stack 4_vds.h5)
ADD_H5_VDS_LAYOUT (tvds_layout-5 0 --enable-error-stack 5_vds.h5)
+ ADD_H5_VDS_LAYOUT (vds_layout-eiger 0 --enable-error-stack vds-eiger.h5)
+ ADD_H5_VDS_LAYOUT (vds_layout-maxmin 0 --enable-error-stack vds-percival-unlim-maxmin.h5)
endif (USE_FILTER_DEFLATE)
diff --git a/tools/h5dump/CMakeTestsXML.cmake b/tools/h5dump/CMakeTestsXML.cmake
index 0a667c4..fc6cae7 100644
--- a/tools/h5dump/CMakeTestsXML.cmake
+++ b/tools/h5dump/CMakeTestsXML.cmake
@@ -128,7 +128,7 @@
)
foreach (tst_xml_h5_file ${HDF5_XML_REFERENCE_TEST_FILES})
- GET_FILENAME_COMPONENT(fname "${tst_xml_h5_file}" NAME)
+ get_filename_component(fname "${tst_xml_h5_file}" NAME)
set (dest "${PROJECT_BINARY_DIR}/testfiles/xml/${fname}")
#message (STATUS " Copying ${tst_xml_h5_file}")
add_custom_command (
@@ -140,7 +140,7 @@
endforeach (tst_xml_h5_file ${HDF5_XML_REFERENCE_TEST_FILES})
foreach (tst_xml_other_file ${HDF5_XML_REFERENCE_FILES})
- GET_FILENAME_COMPONENT(fname "${tst_xml_other_file}" NAME)
+ get_filename_component(fname "${tst_xml_other_file}" NAME)
set (dest "${PROJECT_BINARY_DIR}/testfiles/xml/${fname}")
#message (STATUS " Copying ${tst_xml_other_file}")
add_custom_command (
diff --git a/tools/h5dump/errfiles/non_existing.err b/tools/h5dump/errfiles/non_existing.err
new file mode 100644
index 0000000..f7e3afa
--- /dev/null
+++ b/tools/h5dump/errfiles/non_existing.err
@@ -0,0 +1 @@
+h5dump error: unable to open file "non_existing.h5"
diff --git a/tools/h5dump/errfiles/tdset-2.err b/tools/h5dump/errfiles/tdset-2.err
index cef8c0a..45f2354 100644
--- a/tools/h5dump/errfiles/tdset-2.err
+++ b/tools/h5dump/errfiles/tdset-2.err
@@ -31,7 +31,7 @@ HDF5-DIAG: Error detected in HDF5 (version (number)) thread (IDs):
major: Virtual Object Layer
minor: Can't get value
#002: (file name) line (number) in H5VL_native_link_get(): unable to get link info
- major: Symbol table
+ major: Links
minor: Object not found
#003: (file name) line (number) in H5L_get_info(): name doesn't exist
major: Symbol table
diff --git a/tools/h5dump/errfiles/tperror.err b/tools/h5dump/errfiles/tperror.err
index bd5239b..8ea6d9c 100644
--- a/tools/h5dump/errfiles/tperror.err
+++ b/tools/h5dump/errfiles/tperror.err
@@ -31,7 +31,7 @@ HDF5-DIAG: Error detected in HDF5 (version (number)) thread (IDs):
major: Virtual Object Layer
minor: Can't get value
#002: (file name) line (number) in H5VL_native_link_get(): unable to get link info
- major: Symbol table
+ major: Links
minor: Object not found
#003: (file name) line (number) in H5L_get_info(): name doesn't exist
major: Symbol table
diff --git a/tools/h5dump/h5dump.c b/tools/h5dump/h5dump.c
index 68889c9..553db93 100644
--- a/tools/h5dump/h5dump.c
+++ b/tools/h5dump/h5dump.c
@@ -71,7 +71,7 @@ struct handler_t {
*/
/* The following initialization makes use of C language cancatenating */
/* "xxx" "yyy" into "xxxyyy". */
-static const char *s_opts = "hn*peyBHirVa:c:d:f:g:k:l:t:w:xD:uX:o*b*F:s:S:A*q:z:m:RECM:O*N:";
+static const char *s_opts = "hn*peyBHirVa:c:d:f:g:k:l:t:w:xD:uX:o*b*F:s:S:A*q:z:m:RECM:O*N:vG:";
static struct long_options l_opts[] = {
{ "help", no_arg, 'h' },
{ "hel", no_arg, 'h' },
@@ -190,6 +190,8 @@ static struct long_options l_opts[] = {
{ "no-compact-subset", no_arg, 'C' },
{ "ddl", optional_arg, 'O' },
{ "any_path", require_arg, 'N' },
+ { "vds-view-first-missing", no_arg, 'v' },
+ { "vds-gap-size", require_arg, 'G' },
{ NULL, 0, '\0' }
};
@@ -242,7 +244,7 @@ usage(const char *prog)
PRINTVALSTREAM(rawoutstream, " -o F, --output=F Output raw data into file F\n");
PRINTVALSTREAM(rawoutstream, " -b B, --binary=B Binary file output, of form B\n");
PRINTVALSTREAM(rawoutstream, " -O F, --ddl=F Output ddl text into file F\n");
- PRINTVALSTREAM(rawoutstream, " Do not use filename F to suppress ddl display\n");
+ PRINTVALSTREAM(rawoutstream, " Use blank(empty) filename F to suppress ddl display\n");
PRINTVALSTREAM(rawoutstream, "--------------- Object Options ---------------\n");
PRINTVALSTREAM(rawoutstream, " -a P, --attribute=P Print the specified attribute\n");
PRINTVALSTREAM(rawoutstream, " If an attribute name contains a slash (/), escape the\n");
@@ -256,6 +258,8 @@ usage(const char *prog)
PRINTVALSTREAM(rawoutstream, " P can be the absolute path or just a relative path.\n");
PRINTVALSTREAM(rawoutstream, " -A, --onlyattr Print the header and value of attributes\n");
PRINTVALSTREAM(rawoutstream, " Optional value 0 suppresses printing attributes.\n");
+ PRINTVALSTREAM(rawoutstream, " --vds-view-first-missing Set the VDS bounds to first missing mapped elements.\n");
+ PRINTVALSTREAM(rawoutstream, " --vds-gap-size=N Set the missing file gap size, N=non-negative integers\n");
PRINTVALSTREAM(rawoutstream, "--------------- Object Property Options ---------------\n");
PRINTVALSTREAM(rawoutstream, " -i, --object-ids Print the object ids\n");
PRINTVALSTREAM(rawoutstream, " -p, --properties Print dataset filters, storage layout and fill value\n");
@@ -620,7 +624,7 @@ parse_hsize_list(const char *h_list, subset_d *d)
size_count++;
last_digit = 1;
- }
+ }
else {
last_digit = 0;
}
@@ -643,7 +647,7 @@ parse_hsize_list(const char *h_list, subset_d *d)
}
d->data = p_list;
d->len = size_count;
-
+
return;
}
@@ -705,7 +709,7 @@ parse_subset_params(char *dset)
*
* Purpose: Parse a list of comma or space separated integers and fill
* the packed_bits list and counter. The string being passed into this function
- * should be at the start of the list you want to parse.
+ * should be at the start of the list you want to parse.
*
* Return: Success: SUCCEED
*
@@ -831,7 +835,7 @@ static void
free_handler(struct handler_t *hand, int len)
{
int i;
-
+
if(hand) {
for (i = 0; i < len; i++) {
if(hand[i].obj) {
@@ -1121,6 +1125,16 @@ parse_start:
}
display_packed_bits = TRUE;
break;
+ case 'v':
+ display_vds_first = TRUE;
+ break;
+ case 'G':
+ vds_gap_size = HDatoi(opt_arg);
+ if (vds_gap_size < 0) {
+ usage(h5tools_getprogname());
+ goto error;
+ }
+ break;
/** begin XML parameters **/
case 'x':
@@ -1161,7 +1175,7 @@ parse_start:
}
if (HDstrcmp(opt_arg,":") == 0) {
xmlnsprefix = "";
- }
+ }
else {
xmlnsprefix = opt_arg;
}
@@ -1187,7 +1201,7 @@ parse_start:
* the two.
*/
s = last_dset->subset_info;
- }
+ }
else {
last_dset->subset_info = s = (struct subset_t *)HDcalloc(1, sizeof(struct subset_t));
}
@@ -1358,7 +1372,7 @@ main(int argc, const char *argv[])
/* Disable tools error reporting */
H5Eget_auto2(H5tools_ERR_STACK_g, &tools_func, &tools_edata);
H5Eset_auto2(H5tools_ERR_STACK_g, NULL, NULL);
-
+
if((hand = parse_command_line(argc, argv))==NULL) {
goto done;
}
@@ -1444,12 +1458,12 @@ main(int argc, const char *argv[])
if (xml_dtd_uri == NULL) {
if (useschema) {
xml_dtd_uri = DEFAULT_XSD;
- }
+ }
else {
xml_dtd_uri = DEFAULT_DTD;
xmlnsprefix = "";
}
- }
+ }
else {
if (useschema && HDstrcmp(xmlnsprefix,"")) {
error_msg("Cannot set Schema URL for a qualified namespace--use -X or -U option with -D \n");
@@ -1486,7 +1500,7 @@ main(int argc, const char *argv[])
/* start to dump - display file header information */
if (!doxml) {
begin_obj(h5tools_dump_header_format->filebegin, fname, h5tools_dump_header_format->fileblockbegin);
- }
+ }
else {
PRINTVALSTREAM(rawoutstream, "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
@@ -1495,7 +1509,7 @@ main(int argc, const char *argv[])
if (HDstrcmp(xmlnsprefix,"") == 0) {
PRINTSTREAM(rawoutstream, "<HDF5-File xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:noNamespaceSchemaLocation=\"%s\">\n",
xml_dtd_uri);
- }
+ }
else {
/* TO DO: make -url option work in this case (may need new option) */
char *ns;
@@ -1511,7 +1525,7 @@ main(int argc, const char *argv[])
"http://www.hdfgroup.org/HDF5/XML/schema/HDF5-File.xsd\">\n",xmlnsprefix,ns);
HDfree(ns);
}
- }
+ }
else {
PRINTSTREAM(rawoutstream, "<!DOCTYPE HDF5-File PUBLIC \"HDF5-File.dtd\" \"%s\">\n", xml_dtd_uri);
PRINTVALSTREAM(rawoutstream, "<HDF5-File>\n");
@@ -1570,7 +1584,7 @@ main(int argc, const char *argv[])
if (!doxml) {
end_obj(h5tools_dump_header_format->fileend, h5tools_dump_header_format->fileblockend);
PRINTVALSTREAM(rawoutstream, "\n");
- }
+ }
else {
PRINTSTREAM(rawoutstream, "</%sHDF5-File>\n", xmlnsprefix);
}
@@ -1581,13 +1595,17 @@ main(int argc, const char *argv[])
if (H5Fclose(fid) < 0)
h5tools_setstatus(EXIT_FAILURE);
- if(prefix)
+ if(prefix) {
HDfree(prefix);
- if(fname)
+ prefix = NULL;
+ }
+ if(fname) {
HDfree(fname);
+ fname = NULL;
+ }
} /* end while */
- if(hand)
+ if(hand)
free_handler(hand, argc);
/* To Do: clean up XML table */
@@ -1601,13 +1619,17 @@ done:
if(fid >=0)
if (H5Fclose(fid) < 0)
h5tools_setstatus(EXIT_FAILURE);
-
- if(prefix)
+
+ if(prefix) {
HDfree(prefix);
- if(fname)
+ prefix = NULL;
+ }
+ if(fname) {
HDfree(fname);
+ fname = NULL;
+ }
- if(hand)
+ if(hand)
free_handler(hand, argc);
/* To Do: clean up XML table */
@@ -1660,20 +1682,20 @@ h5_fileaccess(void)
if (!HDstrcmp(name, "sec2")) {
/* Unix read() and write() system calls */
if (H5Pset_fapl_sec2(fapl)<0) return -1;
- }
+ }
else if (!HDstrcmp(name, "stdio")) {
/* Standard C fread() and fwrite() system calls */
if (H5Pset_fapl_stdio(fapl)<0) return -1;
- }
+ }
else if (!HDstrcmp(name, "core")) {
/* In-core temporary file with 1MB increment */
if (H5Pset_fapl_core(fapl, 1024*1024, FALSE)<0) return -1;
- }
+ }
else if (!HDstrcmp(name, "split")) {
/* Split meta data and raw data each using default driver */
if (H5Pset_fapl_split(fapl, "-m.h5", H5P_DEFAULT, "-r.h5", H5P_DEFAULT) < 0)
return -1;
- }
+ }
else if (!HDstrcmp(name, "multi")) {
/* Multi-file driver, general case of the split driver */
H5FD_mem_t memb_map[H5FD_MEM_NTYPES];
@@ -1699,7 +1721,7 @@ h5_fileaccess(void)
if (H5Pset_fapl_multi(fapl, memb_map, memb_fapl, memb_name, memb_addr, FALSE) < 0)
return -1;
- }
+ }
else if (!HDstrcmp(name, "family")) {
hsize_t fam_size = 100*1024*1024; /*100 MB*/
@@ -1708,7 +1730,7 @@ h5_fileaccess(void)
fam_size = (hsize_t)(HDstrtod(val, NULL) * 1024*1024);
if (H5Pset_fapl_family(fapl, fam_size, H5P_DEFAULT)<0)
return -1;
- }
+ }
else if (!HDstrcmp(name, "log")) {
long log_flags = H5FD_LOG_LOC_IO;
@@ -1718,12 +1740,12 @@ h5_fileaccess(void)
if (H5Pset_fapl_log(fapl, NULL, (unsigned)log_flags, 0) < 0)
return -1;
- }
+ }
else if (!HDstrcmp(name, "direct")) {
/* Substitute Direct I/O driver with sec2 driver temporarily because
* some output has sec2 driver as the standard. */
if (H5Pset_fapl_sec2(fapl)<0) return -1;
- }
+ }
else {
/* Unknown driver */
return -1;
diff --git a/tools/h5dump/h5dump.h b/tools/h5dump/h5dump.h
index 2b1fb04..7cf4efd 100644
--- a/tools/h5dump/h5dump.h
+++ b/tools/h5dump/h5dump.h
@@ -78,6 +78,8 @@ int enable_error_stack= FALSE; /* re-enable error stack */
int disable_compact_subset= FALSE; /* disable compact form of subset notation */
int display_packed_bits = FALSE; /*print 1-8 byte numbers as packed bits*/
int include_attrs = TRUE; /* Display attributes */
+int display_vds_first = FALSE; /* vds display to all by default*/
+int vds_gap_size = 0; /* vds skip missing files default is none */
/* sort parameters */
H5_index_t sort_by = H5_INDEX_NAME; /*sort_by [creation_order | name] */
diff --git a/tools/h5dump/h5dump_ddl.c b/tools/h5dump/h5dump_ddl.c
index fd50710..09751ab 100644
--- a/tools/h5dump/h5dump_ddl.c
+++ b/tools/h5dump/h5dump_ddl.c
@@ -26,12 +26,12 @@
typedef struct {
hid_t fid; /* File ID being traversed */
- char *op_name; /* Object name wanted */
+ char *op_name; /* Object name wanted */
} trav_handle_udata_t;
typedef struct {
- char *path; /* Path of object being searched */
- char *op_name; /* Object name wanted */
+ char *path; /* Path of object being searched */
+ char *op_name; /* Object name wanted */
} trav_attr_udata_t;
/* callback function used by H5Literate() */
@@ -90,7 +90,7 @@ dump_dataspace(hid_t space)
HDmemset(&ctx, 0, sizeof(ctx));
ctx.indent_level = dump_indent/COL;
ctx.cur_column = dump_indent;
-
+
h5tools_dump_dataspace(rawoutstream, outputformat, &ctx, space);
}
@@ -117,19 +117,19 @@ dump_attr_cb(hid_t oid, const char *attr_name, const H5A_info_t H5_ATTR_UNUSED *
h5tools_context_t ctx; /* print context */
h5tool_format_t *outputformat = &h5tools_dataformat;
h5tool_format_t string_dataformat;
-
+
hid_t attr_id;
herr_t ret = SUCCEED;
HDmemset(&ctx, 0, sizeof(ctx));
ctx.indent_level = dump_indent/COL;
ctx.cur_column = dump_indent;
-
+
attr_id = H5Aopen(oid, attr_name, H5P_DEFAULT);
oid_output = display_oid;
data_output = display_data;
attr_data_output = display_attr_data;
-
+
string_dataformat = *outputformat;
if (fp_format) {
@@ -155,7 +155,7 @@ dump_attr_cb(hid_t oid, const char *attr_name, const H5A_info_t H5_ATTR_UNUSED *
h5tools_setstatus(EXIT_FAILURE);
ret = FAIL;
}
-
+
return ret;
}
@@ -185,6 +185,7 @@ static herr_t
dump_all_cb(hid_t group, const char *name, const H5L_info_t *linfo, void H5_ATTR_UNUSED *op_data)
{
hid_t obj;
+ hid_t dapl_id = H5P_DEFAULT; /* dataset access property list ID */
herr_t ret = SUCCEED;
char *obj_path = NULL; /* Full path of object */
h5tools_str_t buffer; /* string into which to render */
@@ -199,7 +200,7 @@ dump_all_cb(hid_t group, const char *name, const H5L_info_t *linfo, void H5_ATTR
HDmemset(&ctx, 0, sizeof(ctx));
ctx.indent_level = dump_indent/COL;
ctx.cur_column = dump_indent;
-
+
string_dataformat = *outputformat;
if (fp_format) {
@@ -222,8 +223,8 @@ dump_all_cb(hid_t group, const char *name, const H5L_info_t *linfo, void H5_ATTR
if(!obj_path) {
ret = FAIL;
goto done;
- }
-
+ }
+
HDstrcpy(obj_path, prefix);
HDstrcat(obj_path, "/");
HDstrcat(obj_path, name);
@@ -269,7 +270,20 @@ dump_all_cb(hid_t group, const char *name, const H5L_info_t *linfo, void H5_ATTR
break;
case H5O_TYPE_DATASET:
- if((obj = H5Dopen2(group, name, H5P_DEFAULT)) >= 0) {
+ if(display_data) {
+ if ((dapl_id = H5Pcreate(H5P_DATASET_ACCESS)) < 0) {
+ error_msg("error in creating default access property list ID\n");
+ }
+ if (display_vds_first) {
+ if(H5Pset_virtual_view(dapl_id, H5D_VDS_FIRST_MISSING) < 0)
+ error_msg("error in setting access property list ID, virtual_view\n");
+ }
+ if (vds_gap_size > 0) {
+ if(H5Pset_virtual_printf_gap(dapl_id, (hsize_t)vds_gap_size) < 0)
+ error_msg("error in setting access property list ID, virtual_printf_gap\n");
+ }
+ }
+ if((obj = H5Dopen2(group, name, dapl_id)) >= 0) {
if(oinfo.rc > 1 || hit_elink) {
obj_t *found_obj; /* Found object */
@@ -308,9 +322,11 @@ dump_all_cb(hid_t group, const char *name, const H5L_info_t *linfo, void H5_ATTR
h5tools_setstatus(EXIT_FAILURE);
ret = FAIL;
+ if (dapl_id != H5P_DEFAULT)
+ H5Pclose(dapl_id);
H5Dclose(obj);
goto done;
- }
+ }
else if(found_obj->displayed) {
ctx.need_prefix = TRUE;
h5tools_simple_prefix(rawoutstream, outputformat, &ctx, (hsize_t)0, 0);
@@ -347,18 +363,24 @@ dump_all_cb(hid_t group, const char *name, const H5L_info_t *linfo, void H5_ATTR
h5tools_str_append(&buffer, "%s", h5tools_dump_header_format->datasetend);
h5tools_render_element(rawoutstream, outputformat, &ctx, &buffer, &curr_pos, (size_t)outputformat->line_ncols, (hsize_t)0, (hsize_t)0);
+ if (dapl_id != H5P_DEFAULT)
+ H5Pclose(dapl_id);
H5Dclose(obj);
goto done;
- }
+ }
else {
found_obj->displayed = TRUE;
}
} /* end if */
dump_function_table->dump_dataset_function(obj, name, NULL);
+ if (dapl_id != H5P_DEFAULT)
+ H5Pclose(dapl_id);
H5Dclose(obj);
- }
+ }
else {
+ if (dapl_id)
+ H5Pclose(dapl_id && dapl_id != H5P_DEFAULT);
error_msg("unable to dump dataset \"%s\"\n", name);
h5tools_setstatus(EXIT_FAILURE);
ret = FAIL;
@@ -370,7 +392,7 @@ dump_all_cb(hid_t group, const char *name, const H5L_info_t *linfo, void H5_ATTR
error_msg("unable to dump datatype \"%s\"\n", name);
h5tools_setstatus(EXIT_FAILURE);
ret = FAIL;
- }
+ }
else {
dump_function_table->dump_named_datatype_function(obj, name);
H5Tclose(obj);
@@ -408,7 +430,7 @@ dump_all_cb(hid_t group, const char *name, const H5L_info_t *linfo, void H5_ATTR
error_msg("unable to get link value\n");
h5tools_setstatus(EXIT_FAILURE);
ret = FAIL;
- }
+ }
else {
/* print the value of a soft link */
/* Standard DDL: no modification */
@@ -558,7 +580,7 @@ dump_all_cb(hid_t group, const char *name, const H5L_info_t *linfo, void H5_ATTR
done:
h5tools_str_close(&buffer);
-
+
if(obj_path)
HDfree(obj_path);
return ret;
@@ -650,7 +672,7 @@ dump_named_datatype(hid_t tid, const char *name)
HDmemset(&ctx, 0, sizeof(ctx));
ctx.indent_level = dump_indent/COL;
ctx.cur_column = dump_indent;
-
+
string_dataformat = *outputformat;
if (fp_format) {
@@ -685,7 +707,7 @@ dump_named_datatype(hid_t tid, const char *name)
}
ctx.need_prefix = TRUE;
-
+
/* Render the element */
h5tools_str_reset(&buffer);
h5tools_str_append(&buffer, "%s \"%s\" %s",
@@ -718,7 +740,7 @@ dump_named_datatype(hid_t tid, const char *name)
else
found_obj->displayed = TRUE;
} /* end if */
-
+
/* Render the element */
h5tools_str_reset(&buffer);
h5tools_print_datatype(rawoutstream, &buffer, outputformat, &ctx, tid, FALSE);
@@ -726,7 +748,7 @@ dump_named_datatype(hid_t tid, const char *name)
if(H5Tget_class(tid) != H5T_COMPOUND) {
h5tools_str_append(&buffer, ";");
}
-
+
h5tools_render_element(rawoutstream, outputformat, &ctx, &buffer, &curr_pos, (size_t)outputformat->line_ncols, (hsize_t)0, (hsize_t)0);
/* print attributes */
@@ -813,7 +835,7 @@ dump_group(hid_t gid, const char *name)
HDmemset(&ctx, 0, sizeof(ctx));
ctx.indent_level = dump_indent/COL;
ctx.cur_column = dump_indent;
-
+
string_dataformat = *outputformat;
if (fp_format) {
@@ -839,7 +861,7 @@ dump_group(hid_t gid, const char *name)
h5tools_dump_header_format->groupbegin, name,
h5tools_dump_header_format->groupblockbegin);
h5tools_render_element(rawoutstream, outputformat, &ctx, &buffer, &curr_pos, (size_t)outputformat->line_ncols, (hsize_t)0, (hsize_t)0);
-
+
ctx.indent_level++;
dump_indent += COL;
@@ -948,7 +970,7 @@ dump_dataset(hid_t did, const char *name, struct subset_t *sset)
HDmemset(&ctx, 0, sizeof(ctx));
ctx.indent_level = dump_indent/COL;
ctx.cur_column = dump_indent;
-
+
string_dataformat = *outputformat;
if (fp_format) {
@@ -982,7 +1004,7 @@ dump_dataset(hid_t did, const char *name, struct subset_t *sset)
ctx.need_prefix = TRUE;
h5tools_simple_prefix(rawoutstream, outputformat, &ctx, (hsize_t)0, 0);
-
+
/* Render the element */
h5tools_str_reset(&buffer);
h5tools_str_append(&buffer, "%s \"%s\" %s",
@@ -994,7 +1016,7 @@ dump_dataset(hid_t did, const char *name, struct subset_t *sset)
dump_indent += COL;
ctx.indent_level++;
-
+
type = H5Dget_type(did);
h5dump_type_table = type_table;
h5tools_dump_datatype(rawoutstream, outputformat, &ctx, type);
@@ -1018,6 +1040,7 @@ dump_dataset(hid_t did, const char *name, struct subset_t *sset)
if(display_data) {
int data_loop = 1;
int i;
+
if(display_packed_bits)
data_loop = packed_bits_num;
for(i=0; i<data_loop; i++) {
@@ -1042,7 +1065,7 @@ dump_dataset(hid_t did, const char *name, struct subset_t *sset)
h5tools_str_reset(&buffer);
h5tools_str_append(&buffer, "DATA{ not yet implemented.}");
h5tools_render_element(rawoutstream, outputformat, &ctx, &buffer, &curr_pos, (size_t)outputformat->line_ncols, (hsize_t)0, (hsize_t)0);
-
+
ctx.indent_level--;
break;
@@ -1079,7 +1102,7 @@ dump_dataset(hid_t did, const char *name, struct subset_t *sset)
ctx.need_prefix = TRUE;
h5tools_simple_prefix(rawoutstream, outputformat, &ctx, (hsize_t)0, 0);
-
+
/* Render the element */
h5tools_str_reset(&buffer);
if(HDstrlen(h5tools_dump_header_format->datasetblockend)) {
@@ -1189,7 +1212,7 @@ dump_fcpl(hid_t fid)
fdriver=H5Pget_driver(fapl);
H5Pclose(fapl);
#endif
-
+
/*-------------------------------------------------------------------------
* SUPER_BLOCK
*-------------------------------------------------------------------------
@@ -1308,54 +1331,54 @@ static herr_t
attr_search(hid_t oid, const char *attr_name, const H5A_info_t H5_ATTR_UNUSED *ainfo, void *_op_data)
{
herr_t ret = SUCCEED;
- int i;
- int j;
- int k;
- char *obj_op_name;
+ int i;
+ int j;
+ int k;
+ char *obj_op_name;
char *obj_name;
- trav_attr_udata_t *attr_data = (trav_attr_udata_t*)_op_data;
+ trav_attr_udata_t *attr_data = (trav_attr_udata_t*)_op_data;
char *buf = attr_data->path;
- char *op_name = attr_data->op_name;
+ char *op_name = attr_data->op_name;
j = (int)HDstrlen(op_name) - 1;
/* find the last / */
while(j >= 0) {
- if (op_name[j] == '/' && (j==0 || (j>0 && op_name[j-1]!='\\')))
- break;
- j--;
+ if (op_name[j] == '/' && (j==0 || (j>0 && op_name[j-1]!='\\')))
+ break;
+ j--;
}
obj_op_name = h5tools_str_replace(op_name + j + 1, "\\/", "/");
if(obj_op_name == NULL) {
- h5tools_setstatus(EXIT_FAILURE);
- ret = FAIL;
+ h5tools_setstatus(EXIT_FAILURE);
+ ret = FAIL;
}
else {
- if(HDstrcmp(attr_name, obj_op_name)==0) {
- /* object name */
- i = (int)HDstrlen(buf);
- j = (int)HDstrlen(op_name);
- k = (size_t)i + 1 + (size_t)j + 1 + 2;
- obj_name = (char *)HDmalloc((size_t)k);
- if(obj_name == NULL) {
- h5tools_setstatus(EXIT_FAILURE);
- ret = FAIL;
- }
- else {
- HDmemset(obj_name, '\0', (size_t)k);
- if(op_name[0] != '/') {
- HDstrncat(obj_name, buf, (size_t)i + 1);
- if(buf[i-1] != '/')
- HDstrncat(obj_name, "/", (size_t)2);
- }
- HDstrncat(obj_name, op_name, (size_t)j + 1);
-
- handle_attributes(oid, obj_name, NULL, 0, NULL);
- HDfree(obj_name);
- }
- }
- HDfree(obj_op_name);
+ if(HDstrcmp(attr_name, obj_op_name)==0) {
+ /* object name */
+ i = (int)HDstrlen(buf);
+ j = (int)HDstrlen(op_name);
+ k = (size_t)i + 1 + (size_t)j + 1 + 2;
+ obj_name = (char *)HDmalloc((size_t)k);
+ if(obj_name == NULL) {
+ h5tools_setstatus(EXIT_FAILURE);
+ ret = FAIL;
+ }
+ else {
+ HDmemset(obj_name, '\0', (size_t)k);
+ if(op_name[0] != '/') {
+ HDstrncat(obj_name, buf, (size_t)i + 1);
+ if(buf[i-1] != '/')
+ HDstrncat(obj_name, "/", (size_t)2);
+ }
+ HDstrncat(obj_name, op_name, (size_t)j + 1);
+
+ handle_attributes(oid, obj_name, NULL, 0, NULL);
+ HDfree(obj_name);
+ }
+ }
+ HDfree(obj_op_name);
}
return ret;
} /* end attr_search() */
@@ -1363,7 +1386,7 @@ attr_search(hid_t oid, const char *attr_name, const H5A_info_t H5_ATTR_UNUSED *a
static herr_t
obj_search(const char *path, const H5O_info_t *oi, const char H5_ATTR_UNUSED *already_visited, void *_op_data)
{
- trav_handle_udata_t *handle_data = (trav_handle_udata_t*)_op_data;
+ trav_handle_udata_t *handle_data = (trav_handle_udata_t*)_op_data;
char *op_name = (char*)handle_data->op_name;
trav_attr_udata_t attr_data;
@@ -1372,22 +1395,22 @@ obj_search(const char *path, const H5O_info_t *oi, const char H5_ATTR_UNUSED *al
H5Aiterate_by_name(handle_data->fid, path, H5_INDEX_NAME, H5_ITER_INC, NULL, attr_search, (void*)&attr_data, H5P_DEFAULT);
if(HDstrcmp(path, op_name)==0) {
- switch(oi->type) {
- case H5O_TYPE_GROUP:
- handle_groups(handle_data->fid, path, NULL, 0, NULL);
- break;
- case H5O_TYPE_DATASET:
- handle_datasets(handle_data->fid, path, NULL, 0, NULL);
- break;
- case H5O_TYPE_NAMED_DATATYPE:
- handle_datatypes(handle_data->fid, path, NULL, 0, NULL);
- break;
- case H5O_TYPE_UNKNOWN:
- case H5O_TYPE_NTYPES:
- default:
- error_msg("unknown object type value\n");
- h5tools_setstatus(EXIT_FAILURE);
- } /* end switch */
+ switch(oi->type) {
+ case H5O_TYPE_GROUP:
+ handle_groups(handle_data->fid, path, NULL, 0, NULL);
+ break;
+ case H5O_TYPE_DATASET:
+ handle_datasets(handle_data->fid, path, NULL, 0, NULL);
+ break;
+ case H5O_TYPE_NAMED_DATATYPE:
+ handle_datatypes(handle_data->fid, path, NULL, 0, NULL);
+ break;
+ case H5O_TYPE_UNKNOWN:
+ case H5O_TYPE_NTYPES:
+ default:
+ error_msg("unknown object type value\n");
+ h5tools_setstatus(EXIT_FAILURE);
+ } /* end switch */
}
return 0;
@@ -1397,48 +1420,48 @@ static herr_t
lnk_search(const char *path, const H5L_info_t *li, void *_op_data)
{
int search_len;
- int k;
+ int k;
char *search_name;
- trav_handle_udata_t *handle_data = (trav_handle_udata_t*)_op_data;
+ trav_handle_udata_t *handle_data = (trav_handle_udata_t*)_op_data;
char *op_name = (char*)handle_data->op_name;
search_len = HDstrlen(op_name);
if(search_len > 0 && op_name[0] != '/') {
- k = 2;
+ k = 2;
}
else
k = 1;
- search_name = (char *)HDmalloc((size_t)(search_len + k));
+ search_name = (char *)HDmalloc((size_t)(search_len + k));
if(search_name == NULL) {
- error_msg("creating temporary link\n");
- h5tools_setstatus(EXIT_FAILURE);
+ error_msg("creating temporary link\n");
+ h5tools_setstatus(EXIT_FAILURE);
}
else {
- if (k == 2) {
- HDstrcpy(search_name, "/");
- HDstrncat(search_name, op_name, (size_t)search_len + 1);
- }
- else
- HDstrncpy(search_name, op_name, (size_t)search_len + 1);
- search_name[search_len + k - 1] = '\0';
-
- if(HDstrcmp(path, search_name) == 0) {
- switch(li->type) {
- case H5L_TYPE_SOFT:
- case H5L_TYPE_EXTERNAL:
- handle_links(handle_data->fid, op_name, NULL, 0, NULL);
- break;
-
- case H5L_TYPE_HARD:
- case H5L_TYPE_MAX:
- case H5L_TYPE_ERROR:
- default:
- error_msg("unknown link type value\n");
- h5tools_setstatus(EXIT_FAILURE);
- break;
- } /* end switch() */
- }
- HDfree(search_name);
+ if (k == 2) {
+ HDstrcpy(search_name, "/");
+ HDstrncat(search_name, op_name, (size_t)search_len + 1);
+ }
+ else
+ HDstrncpy(search_name, op_name, (size_t)search_len + 1);
+ search_name[search_len + k - 1] = '\0';
+
+ if(HDstrcmp(path, search_name) == 0) {
+ switch(li->type) {
+ case H5L_TYPE_SOFT:
+ case H5L_TYPE_EXTERNAL:
+ handle_links(handle_data->fid, op_name, NULL, 0, NULL);
+ break;
+
+ case H5L_TYPE_HARD:
+ case H5L_TYPE_MAX:
+ case H5L_TYPE_ERROR:
+ default:
+ error_msg("unknown link type value\n");
+ h5tools_setstatus(EXIT_FAILURE);
+ break;
+ } /* end switch() */
+ }
+ HDfree(search_name);
}
return 0;
} /* end lnk_search() */
@@ -1465,7 +1488,7 @@ handle_paths(hid_t fid, const char *path_name, void H5_ATTR_UNUSED * data, int H
hid_t gcpl_id;
unsigned crt_order_flags;
unsigned attr_crt_order_flags;
- trav_handle_udata_t handle_udata; /* User data for traversal */
+ trav_handle_udata_t handle_udata; /* User data for traversal */
if ((gcpl_id = H5Gget_create_plist(gid)) < 0) {
error_msg("error in getting group creation property list ID\n");
@@ -1489,12 +1512,12 @@ handle_paths(hid_t fid, const char *path_name, void H5_ATTR_UNUSED * data, int H
h5tools_setstatus(EXIT_FAILURE);
}
- handle_udata.fid = fid;
- handle_udata.op_name = (char*)path_name;
- if(h5trav_visit(fid, "/", TRUE, TRUE, obj_search, lnk_search, &handle_udata) < 0) {
- error_msg("error traversing information\n");
- h5tools_setstatus(EXIT_FAILURE);
- }
+ handle_udata.fid = fid;
+ handle_udata.op_name = (char*)path_name;
+ if(h5trav_visit(fid, "/", TRUE, TRUE, obj_search, lnk_search, &handle_udata) < 0) {
+ error_msg("error traversing information\n");
+ h5tools_setstatus(EXIT_FAILURE);
+ }
}
}
@@ -1536,7 +1559,7 @@ handle_attributes(hid_t fid, const char *attr, void H5_ATTR_UNUSED * data, int H
/* find the last / */
while(j >= 0) {
- if (attr[j] == '/' && (j==0 || (j>0 && attr[j-1]!='\\')))
+ if (attr[j] == '/' && (j==0 || (j>0 && attr[j-1]!='\\')))
break;
j--;
}
@@ -1571,7 +1594,7 @@ handle_attributes(hid_t fid, const char *attr, void H5_ATTR_UNUSED * data, int H
string_dataformat.do_escape = display_escape;
outputformat = &string_dataformat;
- attr_name = h5tools_str_replace(attr + j + 1, "\\/", "/");
+ attr_name = h5tools_str_replace(attr + j + 1, "\\/", "/");
/* handle error case: cannot open the object with the attribute */
if((oid = H5Oopen(fid, obj_name, H5P_DEFAULT)) < 0) {
@@ -1627,7 +1650,7 @@ handle_attributes(hid_t fid, const char *attr, void H5_ATTR_UNUSED * data, int H
} /* end if */
HDfree(obj_name);
- HDfree(attr_name);
+ HDfree(attr_name);
dump_indent -= COL;
return;
@@ -1635,9 +1658,9 @@ error:
h5tools_setstatus(EXIT_FAILURE);
if(obj_name)
HDfree(obj_name);
-
- if (attr_name)
- HDfree(attr_name);
+
+ if (attr_name)
+ HDfree(attr_name);
H5E_BEGIN_TRY {
H5Oclose(oid);
@@ -1672,10 +1695,24 @@ handle_datasets(hid_t fid, const char *dset, void *data, int pe, const char *dis
{
H5O_info_t oinfo;
hid_t dsetid;
+ hid_t dapl_id = H5P_DEFAULT; /* dataset access property list ID */
struct subset_t *sset = (struct subset_t *)data;
const char *real_name = display_name ? display_name : dset;
- if((dsetid = H5Dopen2(fid, dset, H5P_DEFAULT)) < 0) {
+ if(display_data) {
+ if ((dapl_id = H5Pcreate(H5P_DATASET_ACCESS)) < 0) {
+ error_msg("error in creating default access property list ID\n");
+ }
+ if (display_vds_first) {
+ if(H5Pset_virtual_view(dapl_id, H5D_VDS_FIRST_MISSING) < 0)
+ error_msg("error in setting access property list ID, virtual_view\n");
+ }
+ if (vds_gap_size > 0) {
+ if(H5Pset_virtual_printf_gap(dapl_id, (hsize_t)vds_gap_size) < 0)
+ error_msg("error in setting access property list ID, virtual_printf_gap\n");
+ }
+ }
+ if((dsetid = H5Dopen2(fid, dset, dapl_id)) < 0) {
if (pe) {
handle_links(fid, dset, data, pe, display_name);
}
@@ -1752,7 +1789,7 @@ handle_datasets(hid_t fid, const char *dset, void *data, int pe, const char *dis
h5tools_setstatus(EXIT_FAILURE);
return;
}
-
+
/*-------------------------------------------------------------------------
* check for block overlap
*-------------------------------------------------------------------------
@@ -1785,7 +1822,7 @@ handle_datasets(hid_t fid, const char *dset, void *data, int pe, const char *dis
PRINTSTREAM(rawoutstream, "%s \"%s\"\n", HARDLINK, found_obj->objname);
indentation(dump_indent);
end_obj(h5tools_dump_header_format->datasetend, h5tools_dump_header_format->datasetblockend);
- }
+ }
else {
found_obj->displayed = TRUE;
dump_indent += COL;
@@ -1801,7 +1838,8 @@ handle_datasets(hid_t fid, const char *dset, void *data, int pe, const char *dis
dump_dataset(dsetid, real_name, sset);
dump_indent -= COL;
}
-
+ if (dapl_id != H5P_DEFAULT)
+ H5Pclose(dapl_id);
if(H5Dclose(dsetid) < 0)
h5tools_setstatus(EXIT_FAILURE);
}
@@ -1884,11 +1922,11 @@ handle_links(hid_t fid, const char *links, void H5_ATTR_UNUSED * data, int H5_AT
if(H5Lget_info(fid, links, &linfo, H5P_DEFAULT) < 0) {
error_msg("unable to get link info from \"%s\"\n", links);
h5tools_setstatus(EXIT_FAILURE);
- }
+ }
else if(linfo.type == H5L_TYPE_HARD) {
error_msg("\"%s\" is a hard link\n", links);
h5tools_setstatus(EXIT_FAILURE);
- }
+ }
else {
char *buf = (char *)HDmalloc(linfo.u.val_size);
PRINTVALSTREAM(rawoutstream, "\n");
@@ -1925,12 +1963,12 @@ handle_links(hid_t fid, const char *links, void H5_ATTR_UNUSED * data, int H5_AT
PRINTSTREAM(rawoutstream, "TARGETFILE \"%s\"\n", elink_file);
indentation(COL);
PRINTSTREAM(rawoutstream, "TARGETPATH \"%s\"\n", elink_path);
- }
+ }
else {
error_msg("h5dump error: unable to unpack external link value for \"%s\"\n", links);
h5tools_setstatus(EXIT_FAILURE);
}
- }
+ }
else {
error_msg("h5dump error: unable to get external link value for \"%s\"\n", links);
h5tools_setstatus(EXIT_FAILURE);
diff --git a/tools/h5dump/h5dump_extern.h b/tools/h5dump/h5dump_extern.h
index 08f9e36..62477d0 100644
--- a/tools/h5dump/h5dump_extern.h
+++ b/tools/h5dump/h5dump_extern.h
@@ -77,6 +77,8 @@ extern int enable_error_stack; /* re-enable error stack */
extern int disable_compact_subset; /* disable compact form of subset notation */
extern int display_packed_bits; /*print 1-8 byte numbers as packed bits*/
extern int include_attrs; /* Display attributes */
+extern int display_vds_first; /* vds display to first missing */
+extern int vds_gap_size; /* vds skip missing files */
/* sort parameters */
extern H5_index_t sort_by; /*sort_by [creation_order | name] */
diff --git a/tools/h5dump/h5dump_xml.c b/tools/h5dump/h5dump_xml.c
index 5bc43eb..1038995 100644
--- a/tools/h5dump/h5dump_xml.c
+++ b/tools/h5dump/h5dump_xml.c
@@ -1981,6 +1981,7 @@ xml_dump_data(hid_t obj_id, int obj_data, struct subset_t H5_ATTR_UNUSED * sset,
}
else if (H5Tget_class(type) == H5T_STRING) {
status = xml_print_strs(obj_id, ATTRIBUTE_DATA);
+ H5Tclose(type);
}
else { /* all other data */
/* VL data special information */
@@ -1992,8 +1993,6 @@ xml_dump_data(hid_t obj_id, int obj_data, struct subset_t H5_ATTR_UNUSED * sset,
if (h5tools_detect_vlen(p_type) == TRUE)
vl_data = TRUE;
- H5Tclose(type);
-
space = H5Aget_space(obj_id);
ndims = H5Sget_simple_extent_dims(space, size, NULL);
diff --git a/tools/h5dump/h5dumpgentest.c b/tools/h5dump/h5dumpgentest.c
index 80051d4..668e3f7 100644
--- a/tools/h5dump/h5dumpgentest.c
+++ b/tools/h5dump/h5dumpgentest.c
@@ -110,6 +110,7 @@
#define FILE78 "tscalarintattrsize.h5"
#define FILE79 "tintsattrs.h5"
#define FILE80 "tbitnopaque.h5"
+#define FILE81 "tints4dims.h5"
/*-------------------------------------------------------------------------
* prototypes
@@ -271,20 +272,20 @@ typedef struct s1_t {
#define THRESHOLD10 10 /* Free space section threshold */
/* "FILE66" macros and for FILE69 */
-#define F66_XDIM 8
+#define F66_XDIM 8
#define F66_DATASETU08 "DU08BITS"
#define F66_DATASETS08 "DS08BITS"
-#define F66_YDIM8 8
+#define F66_YDIM8 8
#define F66_DATASETU16 "DU16BITS"
#define F66_DATASETS16 "DS16BITS"
-#define F66_YDIM16 16
+#define F66_YDIM16 16
#define F66_DATASETU32 "DU32BITS"
#define F66_DATASETS32 "DS32BITS"
-#define F66_YDIM32 32
+#define F66_YDIM32 32
#define F66_DATASETU64 "DU64BITS"
#define F66_DATASETS64 "DS64BITS"
#define F66_YDIM64 64
-#define F66_DUMMYDBL "DummyDBL"
+#define F66_DUMMYDBL "DummyDBL"
/* "FILE70" macros and for FILE71 */
/* Name of dataset to create in datafile */
@@ -352,6 +353,13 @@ typedef struct s1_t {
#define F80_DIM32 32
+#define F81_DATASETNAME "FourDimInts"
+#define F81_RANK 4
+#define F81_WDIM 10
+#define F81_XDIM 8
+#define F81_YDIM 6
+#define F81_ZDIM 4
+
static void
gent_group(void)
{
@@ -568,7 +576,7 @@ static void gent_softlink(void)
* Function: gent_softlink2
*
* Purpose: Create soft links to various objects.
- * Return:
+ * Return:
* SUCCEED
* FAIL
* Programmer: Jonathan Kim
@@ -582,7 +590,7 @@ static int gent_softlink2(void)
hid_t gid1 = -1, gid2 = -1;
hid_t datatype = -1;
hid_t dset1 = -1, dset2 = -1;
- hid_t dataspace = -1;
+ hid_t dataspace = -1;
hsize_t dimsf[2]; /* dataset dimensions */
int data1[NX][NY] = {{0,0},{1,1},{2,2},{3,3}};
int data2[NX][NY] = {{0,0},{0,1},{0,2},{3,3}};
@@ -626,7 +634,7 @@ static int gent_softlink2(void)
status = H5Tcommit2(fileid1, "dtype", datatype, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
if (status < 0)
{
- fprintf(stderr, "Error: %s> H5Tcommit2 failed.\n", FILE4_1);
+ fprintf(stderr, "Error: %s> H5Tcommit2 failed.\n", FILE4_1);
status = FAIL;
goto out;
}
@@ -2896,9 +2904,9 @@ static void gent_vldatatypes5(void)
}
/* This is big enough to make h5dump to use hyperslap to read
- from file and display portion by portion. This also prints out array indices
+ from file and display portion by portion. This also prints out array indices
via region reference for testing refion reference output.
- Note: this was added originally prepared for bug2092. before the fix h5dump didn't
+ Note: this was added originally prepared for bug2092. before the fix h5dump didn't
display array indices every 262 x N (N > 0) based on 2000x1000 dims.
*/
#define SPACE_ARRAY1BIG_DIM 2000
@@ -2945,7 +2953,7 @@ static void gent_array1_big(void)
fid1 = H5Fcreate(FILE25_BIG, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
/*-------------------------
- * Array type dataset
+ * Array type dataset
*/
/* Create dataspace for datasets */
sid1 = H5Screate_simple(SPACE1_RANK, sdims1, NULL);
@@ -2961,7 +2969,7 @@ static void gent_array1_big(void)
HDassert(ret >= 0);
/*---------------------------
- * Region Reference dataset
+ * Region Reference dataset
*/
/* Create dataspace for the reference dataset */
sid2 = H5Screate_simple(SPACE1_RANK, dims2, NULL);
@@ -5210,7 +5218,7 @@ static void gent_zero_dim_size(void)
space = H5Screate_simple(SPACE3_RANK, dims1, NULL);
/* dataset */
- dataset = H5Dcreate2(fid, "dset of 0 dimension size", H5T_STD_I32BE, space, H5P_DEFAULT,
+ dataset = H5Dcreate2(fid, "dset of 0 dimension size", H5T_STD_I32BE, space, H5P_DEFAULT,
H5P_DEFAULT, H5P_DEFAULT);
/* nothing should be written */
H5Dwrite(dataset, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT, &dset_buf);
@@ -7064,7 +7072,7 @@ gent_packedbits(void)
space = H5Screate_simple(2, dims, NULL);
dataset = H5Dcreate2(fid, F66_DATASETU16, H5T_STD_U16LE, space, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
- valu16bits = (uint16_t) ~0u; /* all 1s */
+ valu16bits = (uint16_t) ~0u; /* all 1s */
for(i = 0; i < dims[0]; i++){
dsetu16[i][0] = valu16bits;
for(j = 1; j < dims[1]; j++)
@@ -7081,7 +7089,7 @@ gent_packedbits(void)
space = H5Screate_simple(2, dims, NULL);
dataset = H5Dcreate2(fid, F66_DATASETU32, H5T_STD_U32LE, space, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
- valu32bits = (uint32_t) ~0u; /* all 1s */
+ valu32bits = (uint32_t) ~0u; /* all 1s */
for(i = 0; i < dims[0]; i++){
dsetu32[i][0] = valu32bits;
for(j = 1; j < dims[1]; j++)
@@ -7115,7 +7123,7 @@ gent_packedbits(void)
space = H5Screate_simple(2, dims, NULL);
dataset = H5Dcreate2(fid, F66_DATASETS08, H5T_STD_I8LE, space, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
- val8bits = (int8_t) ~0; /* all 1s */
+ val8bits = (int8_t) ~0; /* all 1s */
for(i = 0; i < dims[0]; i++){
dset8[i][0] = val8bits;
for(j = 1; j < dims[1]; j++)
@@ -7132,7 +7140,7 @@ gent_packedbits(void)
space = H5Screate_simple(2, dims, NULL);
dataset = H5Dcreate2(fid, F66_DATASETS16, H5T_STD_I16LE, space, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
- val16bits = (int16_t) ~0; /* all 1s */
+ val16bits = (int16_t) ~0; /* all 1s */
for(i = 0; i < dims[0]; i++){
dset16[i][0] = val16bits;
for(j = 1; j < dims[1]; j++)
@@ -7149,7 +7157,7 @@ gent_packedbits(void)
space = H5Screate_simple(2, dims, NULL);
dataset = H5Dcreate2(fid, F66_DATASETS32, H5T_STD_I32LE, space, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
- val32bits = (int32_t) ~0; /* all 1s */
+ val32bits = (int32_t) ~0; /* all 1s */
for(i = 0; i < dims[0]; i++){
dset32[i][0] = val32bits;
for(j = 1; j < dims[1]; j++)
@@ -8638,7 +8646,7 @@ static void gent_compound_int_array(void) {
valu8bits = (uint8_t) ~0u; /* all 1s */
for(n = 0; n < dims[0]; n++){
- Cmpd1[m].dsetu8[n] = valu8bits;
+ Cmpd1[m].dsetu8[n] = valu8bits;
valu8bits <<= 1;
}
@@ -8647,7 +8655,7 @@ static void gent_compound_int_array(void) {
valu16bits = (uint16_t) ~0u; /* all 1s */
for(n = 0; n < dims[0]; n++){
- Cmpd1[m].dsetu16[n] = valu16bits;
+ Cmpd1[m].dsetu16[n] = valu16bits;
valu16bits <<= 1;
}
@@ -8656,7 +8664,7 @@ static void gent_compound_int_array(void) {
valu32bits = (uint32_t) ~0u; /* all 1s */
for(n = 0; n < dims[0]; n++){
- Cmpd1[m].dsetu32[n] = valu32bits;
+ Cmpd1[m].dsetu32[n] = valu32bits;
valu32bits <<= 1;
}
@@ -8665,7 +8673,7 @@ static void gent_compound_int_array(void) {
valu64bits = (uint64_t) ~0Lu; /* all 1s */
for(n = 0; n < dims[0]; n++){
- Cmpd1[m].dsetu64[n] = valu64bits;
+ Cmpd1[m].dsetu64[n] = valu64bits;
valu64bits <<= 1;
}
@@ -8674,7 +8682,7 @@ static void gent_compound_int_array(void) {
val8bits = (int8_t) ~0; /* all 1s */
for(n = 0; n < dims[0]; n++){
- Cmpd1[m].dset8[n] = val8bits;
+ Cmpd1[m].dset8[n] = val8bits;
val8bits <<= 1;
}
@@ -8683,7 +8691,7 @@ static void gent_compound_int_array(void) {
val16bits = (int16_t) ~0; /* all 1s */
for(n = 0; n < dims[0]; n++){
- Cmpd1[m].dset16[n] = val16bits;
+ Cmpd1[m].dset16[n] = val16bits;
val16bits <<= 1;
}
@@ -8692,7 +8700,7 @@ static void gent_compound_int_array(void) {
val32bits = (int32_t) ~0; /* all 1s */
for(n = 0; n < dims[0]; n++){
- Cmpd1[m].dset32[n] = val32bits;
+ Cmpd1[m].dset32[n] = val32bits;
val32bits <<= 1;
}
@@ -8701,7 +8709,7 @@ static void gent_compound_int_array(void) {
val64bits = (int64_t) ~0L; /* all 1s */
for(n = 0; n < dims[0]; n++){
- Cmpd1[m].dset64[n] = val64bits;
+ Cmpd1[m].dset64[n] = val64bits;
val64bits <<= 1;
}
@@ -8709,7 +8717,7 @@ static void gent_compound_int_array(void) {
dims[0] = F76_DIM8;
for(n = 0; n < dims[0]; n++)
- Cmpd1[m].dsetdbl[n] = 0.0001F + n;
+ Cmpd1[m].dsetdbl[n] = 0.0001F + n;
}
/* Create the array data type for the 8 bits signed int array */
@@ -8884,64 +8892,64 @@ static void gent_compound_ints(void) {
for (m = 0; m < F77_LENGTH; m++) {
/* Array of 8 bits unsigned int */
- if((m % F76_DIM8) == 0)
- valu8bits = (uint8_t) ~0u; /* all 1s */
- Cmpd1[m].dsetu8 = valu8bits;
- Cmpd2[m].dsetu8 = valu8bits;
+ if((m % F76_DIM8) == 0)
+ valu8bits = (uint8_t) ~0u; /* all 1s */
+ Cmpd1[m].dsetu8 = valu8bits;
+ Cmpd2[m].dsetu8 = valu8bits;
valu8bits <<= 1;
/* Array of 16 bits unsigned int */
- if((m % F76_DIM16) == 0)
+ if((m % F76_DIM16) == 0)
valu16bits = (uint16_t) ~0u; /* all 1s */
- Cmpd1[m].dsetu16 = valu16bits;
- Cmpd2[m].dsetu16 = valu16bits;
- valu16bits <<= 1;
+ Cmpd1[m].dsetu16 = valu16bits;
+ Cmpd2[m].dsetu16 = valu16bits;
+ valu16bits <<= 1;
/* Array of 32 bits unsigned int */
- if((m % F76_DIM32) == 0)
+ if((m % F76_DIM32) == 0)
valu32bits = (uint32_t) ~0u; /* all 1s */
- Cmpd1[m].dsetu32 = valu32bits;
- Cmpd2[m].dsetu32 = valu32bits;
- valu32bits <<= 1;
+ Cmpd1[m].dsetu32 = valu32bits;
+ Cmpd2[m].dsetu32 = valu32bits;
+ valu32bits <<= 1;
/* Array of 64 bits unsigned int */
- if((m % F76_DIM64) == 0)
+ if((m % F76_DIM64) == 0)
valu64bits = (uint64_t) ~0Lu; /* all 1s */
- Cmpd1[m].dsetu64 = valu64bits;
- Cmpd2[m].dsetu64 = valu64bits;
- valu64bits <<= 1;
+ Cmpd1[m].dsetu64 = valu64bits;
+ Cmpd2[m].dsetu64 = valu64bits;
+ valu64bits <<= 1;
/* Array of 8 bits signed int */
- if((m % F76_DIM8) == 0)
+ if((m % F76_DIM8) == 0)
val8bits = (int8_t) ~0; /* all 1s */
- Cmpd1[m].dset8 = val8bits;
- Cmpd2[m].dset8 = val8bits;
- val8bits <<= 1;
+ Cmpd1[m].dset8 = val8bits;
+ Cmpd2[m].dset8 = val8bits;
+ val8bits <<= 1;
/* Array of 16 bits signed int */
- if((m % F76_DIM16) == 0)
+ if((m % F76_DIM16) == 0)
val16bits = (int16_t) ~0; /* all 1s */
- Cmpd1[m].dset16 = val16bits;
- Cmpd2[m].dset16 = val16bits;
- val16bits <<= 1;
+ Cmpd1[m].dset16 = val16bits;
+ Cmpd2[m].dset16 = val16bits;
+ val16bits <<= 1;
/* Array of 32 bits signed int */
- if((m % F76_DIM32) == 0)
+ if((m % F76_DIM32) == 0)
val32bits = (int32_t) ~0; /* all 1s */
- Cmpd1[m].dset32 = val32bits;
- Cmpd2[m].dset32 = val32bits;
- val32bits <<= 1;
+ Cmpd1[m].dset32 = val32bits;
+ Cmpd2[m].dset32 = val32bits;
+ val32bits <<= 1;
/* Array of 64 bits signed int */
- if((m % F76_DIM64) == 0)
+ if((m % F76_DIM64) == 0)
val64bits = (int64_t) ~0L; /* all 1s */
- Cmpd1[m].dset64 = val64bits;
- Cmpd2[m].dset64 = val64bits;
- val64bits <<= 1;
+ Cmpd1[m].dset64 = val64bits;
+ Cmpd2[m].dset64 = val64bits;
+ val64bits <<= 1;
/* Double Dummy set for failure tests */
- Cmpd1[m].dsetdbl = 0.0001F + m;
- Cmpd2[m].dsetdbl = 0.0001F + m;
+ Cmpd1[m].dsetdbl = 0.0001F + m;
+ Cmpd2[m].dsetdbl = 0.0001F + m;
}
/* Create the dataspace */
@@ -9352,7 +9360,7 @@ gent_intsattrs(void)
space = H5Screate_simple(2, dims, NULL);
dataset = H5Dcreate2(fid, F66_DATASETU16, H5T_STD_U16LE, space, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
- valu16bits = (uint16_t) ~0u; /* all 1s */
+ valu16bits = (uint16_t) ~0u; /* all 1s */
for(i = 0; i < dims[0]; i++){
dsetu16[i][0] = valu16bits;
asetu16[i*dims[1]] = dsetu16[i][0];
@@ -9379,7 +9387,7 @@ gent_intsattrs(void)
space = H5Screate_simple(2, dims, NULL);
dataset = H5Dcreate2(fid, F66_DATASETU32, H5T_STD_U32LE, space, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
- valu32bits = (uint32_t) ~0u; /* all 1s */
+ valu32bits = (uint32_t) ~0u; /* all 1s */
for(i = 0; i < dims[0]; i++){
dsetu32[i][0] = valu32bits;
asetu32[i*dims[1]] = dsetu32[i][0];
@@ -9433,7 +9441,7 @@ gent_intsattrs(void)
space = H5Screate_simple(2, dims, NULL);
dataset = H5Dcreate2(fid, F66_DATASETS08, H5T_STD_I8LE, space, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
- val8bits = (int8_t) ~0; /* all 1s */
+ val8bits = (int8_t) ~0; /* all 1s */
for(i = 0; i < dims[0]; i++){
dset8[i][0] = val8bits;
aset8[i*dims[1]] = dset8[i][0];
@@ -9460,7 +9468,7 @@ gent_intsattrs(void)
space = H5Screate_simple(2, dims, NULL);
dataset = H5Dcreate2(fid, F66_DATASETS16, H5T_STD_I16LE, space, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
- val16bits = (int16_t) ~0; /* all 1s */
+ val16bits = (int16_t) ~0; /* all 1s */
for(i = 0; i < dims[0]; i++){
dset16[i][0] = val16bits;
aset16[i*dims[1]] = dset16[i][0];
@@ -9487,7 +9495,7 @@ gent_intsattrs(void)
space = H5Screate_simple(2, dims, NULL);
dataset = H5Dcreate2(fid, F66_DATASETS32, H5T_STD_I32LE, space, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
- val32bits = (int32_t) ~0; /* all 1s */
+ val32bits = (int32_t) ~0; /* all 1s */
for(i = 0; i < dims[0]; i++){
dset32[i][0] = val32bits;
aset32[i*dims[1]] = dset32[i][0];
@@ -9710,6 +9718,41 @@ static void gent_bitnopaquefields(void)
H5Fclose(file);
}
+/*-------------------------------------------------------------------------
+ * Function: gent_intsfourdims
+ *
+ * Purpose: Generate a file to be used in the h5dump subsetting tests.
+ * One datasets of unsigned int types are created in four dimensions 2,4,6,10.
+ *-------------------------------------------------------------------------
+ */
+static void
+gent_intsfourdims(void)
+{
+ hid_t fid, dataset, space, tid;
+ hsize_t dims[F81_RANK];
+ uint32_t dset1[F81_ZDIM][F81_YDIM][F81_XDIM][F81_WDIM];
+ unsigned int i, j, k, l;
+
+ fid = H5Fcreate(FILE81, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
+
+ /* Dataset of 32 bits unsigned int */
+ dims[0] = F81_ZDIM; dims[1] = F81_YDIM; dims[2] = F81_XDIM; dims[3] = F81_WDIM;
+ space = H5Screate_simple(F81_RANK, dims, NULL);
+ dataset = H5Dcreate2(fid, F81_DATASETNAME, H5T_STD_U32LE, space, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
+
+ for(i = 0; i < F81_ZDIM; i++)
+ for(j = 0; j < F81_YDIM; j++)
+ for(k = 0; k < F81_XDIM; k++)
+ for(l = 0; l < F81_WDIM; l++)
+ dset1[i][j][k][l] = i*F81_YDIM*F81_XDIM*F81_WDIM + j*F81_XDIM*F81_WDIM + k*F81_WDIM + l;
+
+ H5Dwrite(dataset, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT, dset1);
+ H5Sclose(space);
+ H5Dclose(dataset);
+
+ H5Fclose(fid);
+}
+
/*-------------------------------------------------------------------------
* Function: main
@@ -9802,6 +9845,8 @@ int main(void)
gent_intsattrs();
gent_bitnopaquefields();
+ gent_intsfourdims();
+
return 0;
}
diff --git a/tools/h5dump/testh5dump.sh.in b/tools/h5dump/testh5dump.sh.in
index 95f8091..6d481c6 100644
--- a/tools/h5dump/testh5dump.sh.in
+++ b/tools/h5dump/testh5dump.sh.in
@@ -27,10 +27,10 @@ EXIT_FAILURE=1
DUMPER=h5dump # The tool name
DUMPER_BIN=`pwd`/$DUMPER # The path of the tool binary
-H5DIFF=../h5diff/h5diff # The h5diff tool name
+H5DIFF=../h5diff/h5diff # The h5diff tool name
H5DIFF_BIN=`pwd`/$H5DIFF # The path of the h5diff tool binary
-H5IMPORT=../h5import/h5import # The h5import tool name
+H5IMPORT=../h5import/h5import # The h5import tool name
H5IMPORT_BIN=`pwd`/$H5IMPORT # The path of the h5import tool binary
RM='rm -rf'
@@ -133,6 +133,7 @@ $SRC_H5DUMP_TESTFILES/tgrp_comments.h5
$SRC_H5DUMP_TESTFILES/thlink.h5
$SRC_H5DUMP_TESTFILES/thyperslab.h5
$SRC_H5DUMP_TESTFILES/tintsattrs.h5
+$SRC_H5DUMP_TESTFILES/tints4dims.h5
$SRC_H5DUMP_TESTFILES/tlarge_objname.h5
#$SRC_H5DUMP_TESTFILES/tldouble.h5
$SRC_H5DUMP_TESTFILES/tlonglinks.h5
@@ -176,6 +177,7 @@ LIST_OTHER_TEST_FILES="
$SRC_H5DUMP_TESTFILES/charsets.ddl
$SRC_H5DUMP_TESTFILES/file_space.ddl
$SRC_H5DUMP_TESTFILES/filter_fail.ddl
+$SRC_H5DUMP_TESTFILES/non_existing.ddl
$SRC_H5DUMP_TESTFILES/packedbits.ddl
$SRC_H5DUMP_TESTFILES/tall-1.ddl
$SRC_H5DUMP_TESTFILES/tall-2.ddl
@@ -264,9 +266,15 @@ $SRC_H5DUMP_TESTFILES/tindicessub2.ddl
$SRC_H5DUMP_TESTFILES/tindicessub3.ddl
$SRC_H5DUMP_TESTFILES/tindicessub4.ddl
$SRC_H5DUMP_TESTFILES/tindicesyes.ddl
+$SRC_H5DUMP_TESTFILES/tints4dims.ddl
+$SRC_H5DUMP_TESTFILES/tints4dimsBlock2.ddl
+$SRC_H5DUMP_TESTFILES/tints4dimsBlockEq.ddl
+$SRC_H5DUMP_TESTFILES/tints4dimsCount2.ddl
+$SRC_H5DUMP_TESTFILES/tints4dimsCountEq.ddl
+$SRC_H5DUMP_TESTFILES/tints4dimsStride2.ddl
$SRC_H5DUMP_TESTFILES/tintsattrs.ddl
$SRC_H5DUMP_TESTFILES/tlarge_objname.ddl
-#$SRC_H5DUMP_TESTFILES/tldouble.ddl
+#$SRC_H5DUMP_TESTFILES/tldouble.ddl
$SRC_H5DUMP_TESTFILES/tlonglinks.ddl
$SRC_H5DUMP_TESTFILES/tloop-1.ddl
$SRC_H5DUMP_TESTFILES/tmulti.ddl
@@ -347,6 +355,7 @@ $SRC_H5DUMP_TESTFILES/tbinregR.exp
LIST_ERROR_TEST_FILES="
${SRC_H5DUMP_ERRORFILES}/filter_fail.err
+${SRC_H5DUMP_ERRORFILES}/non_existing.err
${SRC_H5DUMP_ERRORFILES}/tall-1.err
${SRC_H5DUMP_ERRORFILES}/tall-2A.err
${SRC_H5DUMP_ERRORFILES}/tall-2A0.err
@@ -393,10 +402,10 @@ COPY_TESTFILES_TO_TESTDIR()
INODE_SDIR=`$LS -i -d $SDIR | $AWK -F' ' '{print $1}'`
INODE_DDIR=`$LS -i -d $TESTDIR | $AWK -F' ' '{print $1}'`
if [ "$INODE_SDIR" != "$INODE_DDIR" ]; then
- $CP -f $tstfile $TESTDIR
+ $CP -f $tstfile $TESTDIR
if [ $? -ne 0 ]; then
echo "Error: FAILED to copy $tstfile ."
-
+
# Comment out this to CREATE expected file
exit $EXIT_FAILURE
fi
@@ -441,14 +450,14 @@ TESTING() {
TOOLTEST() {
# check if caseless compare and diff requested
if [ "$1" = ignorecase ]; then
- caseless="-i"
- # replace cmp with diff which runs much longer.
- xCMP="$DIFF -i"
- shift
+ caseless="-i"
+ # replace cmp with diff which runs much longer.
+ xCMP="$DIFF -i"
+ shift
else
- caseless=""
- # stick with faster cmp if ignorecase is not requested.
- xCMP="$CMP"
+ caseless=""
+ # stick with faster cmp if ignorecase is not requested.
+ xCMP="$CMP"
fi
expect="$TESTDIR/$1"
@@ -537,7 +546,7 @@ TOOLTEST2() {
nerrors="`expr $nerrors + 1`"
test yes = "$verbose" && $DIFF $expect $actual |sed 's/^/ /'
fi
-
+
# Clean up output file
if test -z "$HDF5_NOCLEANUP"; then
rm -f $actual $actualdata $actual_err
@@ -545,7 +554,7 @@ TOOLTEST2() {
}
-# same as TOOLTEST2 but compares generated file to expected ddl file
+# same as TOOLTEST2 but compares generated file to expected ddl file
# and compares the generated data file to the expected data file
# used for the binary tests that expect a full path in -o without -b
# ADD_H5_TEST_EXPORT
@@ -603,7 +612,7 @@ TOOLTEST2A() {
nerrors="`expr $nerrors + 1`"
test yes = "$verbose" && $DIFF $expect $actual |sed 's/^/ /'
fi
-
+
# Clean up output file
if test -z "$HDF5_NOCLEANUP"; then
rm -f $actual $actualdata $actual_err $actualmeta
@@ -642,7 +651,7 @@ TOOLTEST2B() {
nerrors="`expr $nerrors + 1`"
test yes = "$verbose" && $DIFF $expectdata $actualdata |sed 's/^/ /'
fi
-
+
# Clean up output file
if test -z "$HDF5_NOCLEANUP"; then
rm -f $actual $actualdata $actual_err
@@ -859,7 +868,7 @@ TOOLTEST_HELP() {
echo " Expected output (*.txt) differs from actual output (*.out)"
nerrors="`expr $nerrors + 1`"
fi
-
+
# Clean up output file
if test -z "$HDF5_NOCLEANUP"; then
rm -f $actual $actual_err
@@ -872,7 +881,7 @@ SKIP() {
TESTING $DUMPER $@
echo " -SKIP-"
}
-
+
# Print a line-line message left justified in a field of 70 characters
#
PRINT_H5DIFF() {
@@ -883,7 +892,7 @@ PRINT_H5DIFF() {
# Call the h5diff tool
#
-DIFFTEST()
+DIFFTEST()
{
PRINT_H5DIFF $@
(
@@ -897,7 +906,7 @@ DIFFTEST()
else
echo " PASSED"
fi
-
+
}
# Print a line-line message left justified in a field of 70 characters
@@ -910,7 +919,7 @@ PRINT_H5IMPORT() {
# Call the h5import tool
#
-IMPORTTEST()
+IMPORTTEST()
{
# remove the output hdf5 file if it exists
hdf5_file="$TESTDIR/$5"
@@ -921,7 +930,7 @@ IMPORTTEST()
PRINT_H5IMPORT $@
(
cd $TESTDIR
- $RUNSERIAL $H5IMPORT_BIN "$@"
+ $RUNSERIAL $H5IMPORT_BIN "$@"
)
RET=$?
if [ $RET != 0 ] ; then
@@ -930,7 +939,7 @@ IMPORTTEST()
else
echo " PASSED"
fi
-
+
}
@@ -1021,7 +1030,7 @@ TOOLTEST tcomp-1.ddl --enable-error-stack tcompound.h5
# test for named data types
TOOLTEST tcomp-2.ddl --enable-error-stack -t /type1 --datatype /type2 --datatype=/group1/type3 tcompound.h5
TOOLTEST tcomp-2.ddl --enable-error-stack -N /type1 --any_path /type2 --any_path=/group1/type3 tcompound.h5
-# test for unamed type
+# test for unamed type
TOOLTEST4 tcomp-3.ddl --enable-error-stack -t /#6632 -g /group2 tcompound.h5
# test complicated compound datatype
TOOLTEST tcomp-4.ddl --enable-error-stack tcompound_complex.h5
@@ -1041,7 +1050,7 @@ TOOLTEST tall-7N.ddl --enable-error-stack -N attr1 tall.h5
# test for loop detection
TOOLTEST tloop-1.ddl --enable-error-stack tloop.h5
-# test for string
+# test for string
TOOLTEST tstr-1.ddl --enable-error-stack tstr.h5
TOOLTEST tstr-2.ddl --enable-error-stack tstr2.h5
@@ -1104,6 +1113,12 @@ TOOLTEST tall-5s.ddl --enable-error-stack -d "/g1/g1.1/dset1.1.2[0;2;10;]" tall.
TOOLTEST tdset-3s.ddl --enable-error-stack -d "/dset1[1,1;;;]" tdset.h5
TOOLTEST tno-subset.ddl --enable-error-stack --no-compact-subset -d "AHFINDERDIRECT::ah_centroid_t[0] it=0 tl=0" tno-subset.h5
+TOOLTEST tints4dimsCount2.ddl --enable-error-stack -d FourDimInts -s 0,0,0,0 -c 2,2,2,2 tints4dims.h5
+TOOLTEST tints4dimsBlock2.ddl --enable-error-stack -d FourDimInts -s 0,0,0,0 -c 1,1,1,1 -k 2,2,2,2 tints4dims.h5
+TOOLTEST tints4dimsStride2.ddl --enable-error-stack -d FourDimInts -s 0,0,0,0 -S 2,2,2,2 -c 2,2,2,2 tints4dims.h5
+TOOLTEST tints4dimsCountEq.ddl --enable-error-stack -d FourDimInts -s 0,0,0,0 -S 2,2,1,1 -k 1,2,1,1 -c 2,2,4,4 tints4dims.h5
+TOOLTEST tints4dimsBlockEq.ddl --enable-error-stack -d FourDimInts -s 0,0,0,0 -S 2,2,1,1 -c 2,2,1,1 -k 1,2,4,4 tints4dims.h5
+
# test printing characters in ASCII instead of decimal
TOOLTEST tchar1.ddl --enable-error-stack -r tchar.h5
@@ -1136,7 +1151,7 @@ TOOLTEST tcompact.ddl --enable-error-stack -H -p -d compact tfilters.h5
TOOLTEST tcontiguos.ddl --enable-error-stack -H -p -d contiguous tfilters.h5
# chunked
TOOLTEST tchunked.ddl --enable-error-stack -H -p -d chunked tfilters.h5
-# external
+# external
TOOLTEST texternal.ddl --enable-error-stack -H -p -d external tfilters.h5
# fill values
@@ -1205,7 +1220,7 @@ fi
# test for displaying objects with very long names
TOOLTEST tlonglinks.ddl --enable-error-stack tlonglinks.h5
-# dimensions over 4GB, print boundary
+# dimensions over 4GB, print boundary
TOOLTEST tbigdims.ddl --enable-error-stack -d dset4gb -s 4294967284 -c 22 tbigdims.h5
# hyperslab read
@@ -1213,7 +1228,7 @@ TOOLTEST thyperslab.ddl --enable-error-stack thyperslab.h5
#
-
+
# test for displaying dataset and attribute of null space
TOOLTEST tnullspace.ddl --enable-error-stack tnullspace.h5
@@ -1252,7 +1267,7 @@ IMPORTTEST out3.bin -c tbin3.ddl -o out3D.h5
DIFFTEST tbinary.h5 out3D.h5 /integer /integer
TOOLTEST tbin4.ddl --enable-error-stack -d double -b FILE -o out4.bin tbinary.h5
-
+
# Clean up binary output files
if test -z "$HDF5_NOCLEANUP"; then
rm -f out[1-4].bin
@@ -1260,7 +1275,7 @@ if test -z "$HDF5_NOCLEANUP"; then
rm -f out3.h5
fi
-# test for dataset region references
+# test for dataset region references
TOOLTEST tdatareg.ddl --enable-error-stack tdatareg.h5
TOOLTEST4 tdataregR.ddl --enable-error-stack -R tdatareg.h5
TOOLTEST tattrreg.ddl --enable-error-stack tattrreg.h5
@@ -1306,6 +1321,9 @@ TOOLTEST5 filter_fail.ddl --enable-error-stack filter_fail.h5
# test for -o -y for dataset with attributes
TOOLTEST2 tall-6.exp --enable-error-stack -y -o tall-6.txt -d /g1/g1.1/dset1.1.1 tall.h5
+# test for non-existing file
+TOOLTEST3 non_existing.ddl --enable-error-stack tgroup.h5 non_existing.h5
+
# Clean up temporary files/directories
CLEAN_TESTFILES_AND_TESTDIR
diff --git a/tools/h5dump/testh5dumpvds.sh.in b/tools/h5dump/testh5dumpvds.sh.in
index b15606f..850c03a 100644
--- a/tools/h5dump/testh5dumpvds.sh.in
+++ b/tools/h5dump/testh5dumpvds.sh.in
@@ -98,6 +98,14 @@ $SRC_H5DUMP_TESTFILES/vds/5_a.h5
$SRC_H5DUMP_TESTFILES/vds/5_b.h5
$SRC_H5DUMP_TESTFILES/vds/5_c.h5
$SRC_H5DUMP_TESTFILES/vds/5_vds.h5
+$SRC_H5DUMP_TESTFILES/vds/a.h5
+$SRC_H5DUMP_TESTFILES/vds/b.h5
+$SRC_H5DUMP_TESTFILES/vds/c.h5
+$SRC_H5DUMP_TESTFILES/vds/d.h5
+$SRC_H5DUMP_TESTFILES/vds/vds-percival-unlim-maxmin.h5
+$SRC_H5DUMP_TESTFILES/vds/f-0.h5
+$SRC_H5DUMP_TESTFILES/vds/f-3.h5
+$SRC_H5DUMP_TESTFILES/vds/vds-eiger.h5
"
LIST_OTHER_TEST_FILES="
@@ -113,6 +121,11 @@ $SRC_H5DUMP_TESTFILES/vds/tvds_layout-3_1.ddl
$SRC_H5DUMP_TESTFILES/vds/tvds_layout-3_2.ddl
$SRC_H5DUMP_TESTFILES/vds/tvds_layout-4.ddl
$SRC_H5DUMP_TESTFILES/vds/tvds_layout-5.ddl
+$SRC_H5DUMP_TESTFILES/vds/vds-first.ddl
+$SRC_H5DUMP_TESTFILES/vds/vds-gap1.ddl
+$SRC_H5DUMP_TESTFILES/vds/vds-gap2.ddl
+$SRC_H5DUMP_TESTFILES/vds/vds_layout-eiger.ddl
+$SRC_H5DUMP_TESTFILES/vds/vds_layout-maxmin.ddl
"
LIST_ERROR_TEST_FILES="
@@ -480,6 +493,9 @@ if test $USE_FILTER_DEFLATE = "yes" ; then
TOOLTEST tvds-3_2.ddl --enable-error-stack 3_2_vds.h5
TOOLTEST tvds-4.ddl --enable-error-stack 4_vds.h5
TOOLTEST tvds-5.ddl --enable-error-stack 5_vds.h5
+ TOOLTEST vds-first.ddl --vds-view-first-missing --enable-error-stack vds-percival-unlim-maxmin.h5
+ TOOLTEST vds-gap1.ddl -d /VDS-Eiger --vds-gap-size=1 --enable-error-stack vds-eiger.h5
+ TOOLTEST vds-gap2.ddl --vds-gap-size=2 --enable-error-stack vds-eiger.h5
fi
# Layout read
@@ -490,6 +506,8 @@ if test $USE_FILTER_DEFLATE = "yes" ; then
TOOLTEST tvds_layout-3_2.ddl -p --enable-error-stack 3_2_vds.h5
TOOLTEST tvds_layout-4.ddl -p --enable-error-stack 4_vds.h5
TOOLTEST tvds_layout-5.ddl -p --enable-error-stack 5_vds.h5
+ TOOLTEST vds_layout-eiger.ddl -p --enable-error-stack vds-eiger.h5
+ TOOLTEST vds_layout-maxmin.ddl -p --enable-error-stack vds-percival-unlim-maxmin.h5
fi
# Clean up temporary files/directories
diff --git a/tools/h5ls/CMakeTests.cmake b/tools/h5ls/CMakeTests.cmake
index a42fa17..c5aff21 100644
--- a/tools/h5ls/CMakeTests.cmake
+++ b/tools/h5ls/CMakeTests.cmake
@@ -96,7 +96,7 @@
# copy the list of test files
foreach (listfiles ${LIST_HDF5_TEST_FILES} ${LIST_OTHER_TEST_FILES})
- GET_FILENAME_COMPONENT(fname "${listfiles}" NAME)
+ get_filename_component(fname "${listfiles}" NAME)
set (dest "${PROJECT_BINARY_DIR}/testfiles/${fname}")
#message (STATUS " Copying ${listfiles} to ${dest}")
add_custom_command (
diff --git a/tools/h5ls/CMakeTestsVDS.cmake b/tools/h5ls/CMakeTestsVDS.cmake
index 1ef3f20..3e85803 100644
--- a/tools/h5ls/CMakeTestsVDS.cmake
+++ b/tools/h5ls/CMakeTestsVDS.cmake
@@ -47,7 +47,7 @@
# copy the list of test files
foreach (listfiles ${LIST_HDF5_TEST_FILES} ${LIST_OTHER_TEST_FILES})
- GET_FILENAME_COMPONENT(fname "${listfiles}" NAME)
+ get_filename_component(fname "${listfiles}" NAME)
set (dest "${PROJECT_BINARY_DIR}/testfiles/vds/${fname}")
#message (STATUS " Copying ${listfiles} to ${dest}")
add_custom_command (
diff --git a/tools/h5ls/h5ls.c b/tools/h5ls/h5ls.c
index cce5f3d..98468c9 100644
--- a/tools/h5ls/h5ls.c
+++ b/tools/h5ls/h5ls.c
@@ -973,7 +973,7 @@ print_enum_type(h5tools_str_t *buffer, hid_t type, int ind)
/* Release resources */
for(i = 0; i < (unsigned)nmembs; i++)
- HDfree(name[i]);
+ H5free_memory(name[i]);
HDfree(name);
HDfree(value);
}
@@ -1856,13 +1856,10 @@ dataset_list2(hid_t dset, const char H5_ATTR_UNUSED *name)
if (vmaps) {
size_t next;
- ssize_t ssize_out;
h5tools_str_append(&buffer, " %-10s {%ld} Source {\n", "Maps:", vmaps);
for (next = 0; next < (unsigned) vmaps; next++) {
- ssize_out = H5Pget_virtual_filename(dcpl, next, NULL, 0);
H5Pget_virtual_filename(dcpl, next, f_name, sizeof(f_name));
- ssize_out = H5Pget_virtual_dsetname(dcpl, next, NULL, 0);
H5Pget_virtual_dsetname(dcpl, next, dset_name, sizeof(dset_name));
h5tools_str_append(&buffer, " %-10s ", " ");
print_string(&buffer, f_name, TRUE);
diff --git a/tools/h5repack/CMakeLists.txt b/tools/h5repack/CMakeLists.txt
index 7631ae8..d8542a4 100644
--- a/tools/h5repack/CMakeLists.txt
+++ b/tools/h5repack/CMakeLists.txt
@@ -56,12 +56,7 @@ if (BUILD_TESTING)
add_library (${HDF5_TOOL_PLUGIN_LIB_TARGET} SHARED dynlib_rpk.c)
TARGET_C_PROPERTIES (${HDF5_TOOL_PLUGIN_LIB_TARGET} SHARED " " " ")
target_link_libraries (${HDF5_TOOL_PLUGIN_LIB_TARGET} ${HDF5_TEST_LIB_TARGET})
- H5_SET_LIB_OPTIONS (
- ${HDF5_TOOL_PLUGIN_LIB_TARGET} ${HDF5_TOOL_PLUGIN_LIB_NAME}
- SHARED
- HDF5_TOOL_PLUGIN_LIB_NAME_RELEASE
- HDF5_TOOL_PLUGIN_LIB_NAME_DEBUG
- )
+ H5_SET_LIB_OPTIONS (${HDF5_TOOL_PLUGIN_LIB_TARGET} ${HDF5_TOOL_PLUGIN_LIB_NAME} SHARED ${HDF5_PACKAGE_SOVERSION})
# make plugins dir
file (MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/plugins")
@@ -72,13 +67,13 @@ if (BUILD_TESTING)
TARGET ${HDF5_TOOL_PLUGIN_LIB_TARGET}
POST_BUILD
COMMAND ${CMAKE_COMMAND}
- ARGS -E copy_if_different
+ ARGS -E copy_if_different
"$<TARGET_FILE:${HDF5_TOOL_PLUGIN_LIB_TARGET}>"
"${CMAKE_BINARY_DIR}/plugins/$<TARGET_FILE_NAME:${HDF5_TOOL_PLUGIN_LIB_TARGET}>"
)
include (CMakeTests.cmake)
-
+
endif (BUILD_TESTING)
##############################################################################
diff --git a/tools/h5repack/CMakeTests.cmake b/tools/h5repack/CMakeTests.cmake
index 8aee98f..ba59bd2 100644
--- a/tools/h5repack/CMakeTests.cmake
+++ b/tools/h5repack/CMakeTests.cmake
@@ -118,7 +118,7 @@
)
foreach (h5_file ${LIST_HDF5_TEST_FILES} ${LIST_OTHER_TEST_FILES})
- GET_FILENAME_COMPONENT(fname "${h5_file}" NAME)
+ get_filename_component(fname "${h5_file}" NAME)
set (dest "${PROJECT_BINARY_DIR}/testfiles/${fname}")
#message (STATUS " Copying ${h5_file}")
add_custom_command (
@@ -345,6 +345,41 @@
endif ("${testtype}" STREQUAL "SKIP")
ENDMACRO (ADD_H5_VERIFY_TEST)
+ MACRO (ADD_H5_VERIFY_VDS testname testtype resultcode testfile testdset testfilter)
+ if ("${testtype}" STREQUAL "SKIP")
+ if (NOT HDF5_ENABLE_USING_MEMCHECKER)
+ add_test (
+ NAME H5REPACK_VERIFY_LAYOUT-${testname}-SKIPPED
+ COMMAND ${CMAKE_COMMAND} -E echo "SKIP -d ${testdset} -pH ${PROJECT_BINARY_DIR}/testfiles/out-${testname}.${resultfile}"
+ )
+ endif (NOT HDF5_ENABLE_USING_MEMCHECKER)
+ else ("${testtype}" STREQUAL "SKIP")
+ if (NOT HDF5_ENABLE_USING_MEMCHECKER)
+ add_test (
+ NAME H5REPACK_VERIFY_LAYOUT-${testname}
+ COMMAND $<TARGET_FILE:h5repack> ${ARGN} ${PROJECT_BINARY_DIR}/testfiles/${testfile} ${PROJECT_BINARY_DIR}/testfiles/out-${testname}.${testfile}
+ )
+ set_tests_properties (H5REPACK_VERIFY_LAYOUT-${testname} PROPERTIES WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles")
+ if (NOT "${last_test}" STREQUAL "")
+ set_tests_properties (H5REPACK_VERIFY_LAYOUT-${testname} PROPERTIES DEPENDS ${last_test})
+ endif (NOT "${last_test}" STREQUAL "")
+ add_test (
+ NAME H5REPACK_VERIFY_LAYOUT-${testname}_DMP
+ COMMAND "${CMAKE_COMMAND}"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5dump>"
+ -D "TEST_ARGS:STRING=-d;${testdset};-p;out-${testname}.${testfile}"
+ -D "TEST_FOLDER=${PROJECT_BINARY_DIR}/testfiles"
+ -D "TEST_OUTPUT=${testfile}-${testname}-v.out"
+ -D "TEST_EXPECT=${resultcode}"
+ -D "TEST_REFERENCE=${testfile}-${testname}-v.ddl"
+ -P "${HDF_RESOURCES_EXT_DIR}/runTest.cmake"
+ )
+ set_tests_properties (H5REPACK_VERIFY_LAYOUT-${testname}_DMP PROPERTIES WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles")
+ set_tests_properties (H5REPACK_VERIFY_LAYOUT-${testname}_DMP PROPERTIES DEPENDS H5REPACK_VERIFY_LAYOUT-${testname})
+ endif (NOT HDF5_ENABLE_USING_MEMCHECKER)
+ endif ("${testtype}" STREQUAL "SKIP")
+ ENDMACRO (ADD_H5_VERIFY_VDS)
+
MACRO (ADD_H5_TEST_META testname testfile)
add_test (
NAME H5REPACK_META-${testname}_N
@@ -1053,20 +1088,22 @@
#########################################################
# layout options
#########################################################
- ADD_H5_VERIFY_TEST (vds_dset_conti "TEST" 0 ${FILEV1} vds_dset CONTIGUOUS -l vds_dset:CONTI)
- ADD_H5_VERIFY_TEST (vds_null_conti "TEST" 1 ${FILEV2} null CONTIGUOUS -l CONTI)
- ADD_H5_VERIFY_TEST (vds_dset_compa "TEST" 0 ${FILEV1} vds_dset COMPACT -l vds_dset:COMPA)
- ADD_H5_VERIFY_TEST (vds_null_compa "TEST" 1 ${FILEV2} null COMPACT -l COMPA)
+# skip tests because of HDFFV-9756
+ ADD_H5_VERIFY_VDS (vds_dset_conti "SKIP" 0 ${FILEV1} vds_dset CONTIGUOUS -l vds_dset:CONTI)
+ ADD_H5_VERIFY_VDS (vds_null_conti "SKIP" 1 ${FILEV2} null CONTIGUOUS -l CONTI)
+ ADD_H5_VERIFY_VDS (vds_dset_compa "SKIP" 0 ${FILEV1} vds_dset COMPACT -l vds_dset:COMPA)
+ ADD_H5_VERIFY_VDS (vds_null_compa "SKIP" 1 ${FILEV2} null COMPACT -l COMPA)
################################################################
# layout conversions
###############################################################
- ADD_H5_VERIFY_TEST (vds_compa_conti "TEST" 0 ${FILEV4} vds_dset CONTIGUOUS -l vds_dset:CONTI)
- ADD_H5_VERIFY_TEST (vds_compa_compa "TEST" 0 ${FILEV4} vds_dset COMPACT -l vds_dset:COMPA)
- ADD_H5_VERIFY_TEST (vds_conti_compa "TEST" 0 ${FILEV4} vds_dset COMPACT -l vds_dset:COMPA)
- ADD_H5_VERIFY_TEST (vds_conti_conti "TEST" 0 ${FILEV4} vds_dset CONTIGUOUS -l vds_dset:CONTI)
- ADD_H5_VERIFY_TEST (vds_compa "TEST" 0 ${FILEV4} vds_dset COMPACT -l vds_dset:COMPA)
- ADD_H5_VERIFY_TEST (vds_conti "TEST" 0 ${FILEV4} vds_dset CONTIGUOUS -l vds_dset:CONTI)
+# skip tests because of HDFFV-9756
+ ADD_H5_VERIFY_VDS (vds_compa_conti "SKIP" 0 ${FILEV4} vds_dset CONTIGUOUS -l vds_dset:CONTI)
+ ADD_H5_VERIFY_VDS (vds_compa_compa "SKIP" 0 ${FILEV4} vds_dset COMPACT -l vds_dset:COMPA)
+ ADD_H5_VERIFY_VDS (vds_conti_compa "SKIP" 0 ${FILEV4} vds_dset COMPACT -l vds_dset:COMPA)
+ ADD_H5_VERIFY_VDS (vds_conti_conti "SKIP" 0 ${FILEV4} vds_dset CONTIGUOUS -l vds_dset:CONTI)
+ ADD_H5_VERIFY_VDS (vds_compa "SKIP" 0 ${FILEV4} vds_dset COMPACT -l vds_dset:COMPA)
+ ADD_H5_VERIFY_VDS (vds_conti "SKIP" 0 ${FILEV4} vds_dset CONTIGUOUS -l vds_dset:CONTI)
##############################################################################
### P L U G I N T E S T S
diff --git a/tools/h5repack/h5repack.c b/tools/h5repack/h5repack.c
index c1e63f1..286d7f0 100644
--- a/tools/h5repack/h5repack.c
+++ b/tools/h5repack/h5repack.c
@@ -77,14 +77,14 @@ int h5repack(const char* infile, const char* outfile, pack_opt_t *options) {
*
*-------------------------------------------------------------------------
*/
-
-int h5repack_init(pack_opt_t *options, int verbose,
+int h5repack_init(pack_opt_t *options, int verbose, hbool_t latest,
H5F_file_space_type_t strategy, hsize_t threshold) {
int k, n;
HDmemset(options, 0, sizeof(pack_opt_t));
options->min_comp = 0;
options->verbose = verbose;
+ options->latest = latest;
options->layout_g = H5D_LAYOUT_ERROR;
for (n = 0; n < H5_REPACK_MAX_NFILTERS; n++) {
diff --git a/tools/h5repack/h5repack.h b/tools/h5repack/h5repack.h
index 69e36fc..329be1f 100644
--- a/tools/h5repack/h5repack.h
+++ b/tools/h5repack/h5repack.h
@@ -105,7 +105,7 @@ typedef struct {
int verbose; /*verbose mode */
hsize_t min_comp; /*minimum size to compress, in bytes */
int use_native; /*use a native type in write */
- int latest; /*pack file with the latest file format */
+ hbool_t latest; /*pack file with the latest file format */
int grp_compact; /* Set the maximum number of links to store as header messages in the group */
int grp_indexed; /* Set the minimum number of links to store in the indexed format */
int msg_size[8]; /* Minimum size of shared messages: dataspace,
@@ -138,7 +138,8 @@ extern "C" {
int h5repack(const char* infile, const char* outfile, pack_opt_t *options);
int h5repack_addfilter(const char* str, pack_opt_t *options);
int h5repack_addlayout(const char* str, pack_opt_t *options);
-int h5repack_init(pack_opt_t *options, int verbose, H5F_file_space_type_t strategy, hsize_t threshold);
+int h5repack_init(pack_opt_t *options, int verbose, hbool_t latest,
+ H5F_file_space_type_t strategy, hsize_t threshold);
int h5repack_end(pack_opt_t *options);
int h5repack_verify(const char *in_fname, const char *out_fname, pack_opt_t *options);
int h5repack_cmp_pl(const char *fname1, const char *fname2);
diff --git a/tools/h5repack/h5repack.sh.in b/tools/h5repack/h5repack.sh.in
index 24298d0..74da4c0 100644
--- a/tools/h5repack/h5repack.sh.in
+++ b/tools/h5repack/h5repack.sh.in
@@ -39,6 +39,8 @@ H5DUMP=../h5dump/h5dump # The h5dump tool name
H5DUMP_BIN=`pwd`/$H5DUMP # The path of the h5dump tool binary
RM='rm -rf'
+CMP='cmp'
+DIFF='diff -c'
GREP='grep'
CP='cp'
DIRNAME='dirname'
@@ -171,7 +173,7 @@ COPY_TESTFILES_TO_TESTDIR()
INODE_SDIR=`$LS -i -d $SDIR | $AWK -F' ' '{print $1}'`
INODE_DDIR=`$LS -i -d $TESTDIR | $AWK -F' ' '{print $1}'`
if [ "$INODE_SDIR" != "$INODE_DDIR" ]; then
- $CP -f $tstfile $TESTDIR
+ $CP -f $tstfile $TESTDIR
if [ $? -ne 0 ]; then
echo "Error: FAILED to copy $tstfile ."
@@ -188,7 +190,7 @@ CLEAN_TESTFILES_AND_TESTDIR()
# skip rm if srcdir is same as destdir
# this occurs when build/test performed in source dir and
# make cp fail
- SDIR=`$DIRNAME $tstfile`
+ SDIR=`$DIRNAME $SRC_H5REPACK_TESTFILES/h5repack-help.txt`
INODE_SDIR=`$LS -i -d $SDIR | $AWK -F' ' '{print $1}'`
INODE_DDIR=`$LS -i -d $TESTDIR | $AWK -F' ' '{print $1}'`
if [ "$INODE_SDIR" != "$INODE_DDIR" ]; then
@@ -321,6 +323,70 @@ VERIFY_LAYOUT_DSET()
rm -f $layoutfile
}
+#------------------------------------------
+# Verifying layouts of a dataset
+VERIFY_LAYOUT_VDS()
+{
+ layoutfile=layout-$1.$2
+ dset=$3
+ expectlayout=$4
+ infile=$2
+ outfile=out-$1.$2
+
+ expect="$TESTDIR/$2-$1-v.ddl"
+ actual="$TESTDIR/$2-$1-v.out"
+ actual_err="$TESTDIR/$2-$1-v.err"
+
+ shift
+ shift
+ shift
+ shift
+
+ TESTING $H5REPACK $@
+ (
+ cd $TESTDIR
+ $RUNSERIAL $H5REPACK_BIN "$@" $infile $outfile
+ )
+ RET=$?
+ if [ $RET != 0 ] ; then
+ echo "*FAILED*"
+ nerrors="`expr $nerrors + 1`"
+ else
+ echo " PASSED"
+ fi
+
+ #---------------------------------
+ # check the layout from a dataset
+ VERIFY "a dataset layout"
+ (
+ cd $TESTDIR
+ $RUNSERIAL $H5DUMP_BIN -d $dset -p $outfile
+ ) >$actual 2>$actual_err
+
+ cat $actual_err >> $actual
+
+ if [ ! -f $expect ]; then
+ # Create the expect file if it doesn't yet exist.
+ echo " CREATED"
+ cp $actual $expect
+ elif $CMP $expect $actual > /dev/null 2>&1 ; then
+ echo " PASSED"
+ else
+ echo "*FAILED*"
+ echo " Expected result (*.ddl) differs from actual result (*.out)"
+ nerrors="`expr $nerrors + 1`"
+ test yes = "$verbose" && $DIFF $caseless $expect $actual |sed 's/^/ /'
+ fi
+
+ # Clean up output file
+ if test -z "$HDF5_NOCLEANUP"; then
+ rm -f $actual $actual_err
+ fi
+
+ # clean up tmp files
+ rm -f $outfile
+}
+
#----------------------------------------
# Verifying layouts from entire file
VERIFY_LAYOUT_ALL()
@@ -469,11 +535,11 @@ TOOLTEST1()
)
RET=$?
if [ $RET != 0 ] ; then
- echo "*FAILED*"
- nerrors="`expr $nerrors + 1`"
+ echo "*FAILED*"
+ nerrors="`expr $nerrors + 1`"
else
- echo " PASSED"
- DIFFTEST $infile $outfile
+ echo " PASSED"
+ DIFFTEST $infile $outfile
fi
rm -f $outfile
}
@@ -500,11 +566,11 @@ TOOLTESTV()
) >$actual 2>$actual_err
RET=$?
if [ $RET != 0 ] ; then
- echo "*FAILED*"
- nerrors="`expr $nerrors + 1`"
+ echo "*FAILED*"
+ nerrors="`expr $nerrors + 1`"
else
- echo " PASSED"
- DIFFTEST $infile $outfile
+ echo " PASSED"
+ DIFFTEST $infile $outfile
fi
# display output compare
@@ -634,11 +700,11 @@ TOOLTEST_META()
# verify sizes.
MESSAGE "Verify the sizes of both output files ($size1 vs $size2)"
if [ $size1 -lt $size2 ]; then
- # pass
- echo " PASSED"
+ # pass
+ echo " PASSED"
else
- #fail
- echo "*FAILED*"
+ #fail
+ echo "*FAILED*"
nerrors="`expr $nerrors + 1`"
fi
@@ -711,7 +777,7 @@ USE_FILTER_SZIP_ENCODER=`$RUNSERIAL $H5DETECTSZIP_BIN`
fi
##############################################################################
-### T H E T E S T S
+### T H E T E S T S
##############################################################################
# prepare for test
COPY_TESTFILES_TO_TESTDIR
@@ -1057,7 +1123,7 @@ TOOLTEST add_alignment $arg
# Check repacking file with old version of layout message (should get upgraded
# to new version and be readable, etc.)
-TOOLTEST pgrade_layout h5repack_layouto.h5
+TOOLTEST upgrade_layout h5repack_layouto.h5
# test for datum size > H5TOOLS_MALLOCSIZE
TOOLTEST gt_mallocsize h5repack_objs.h5 -f GZIP=1
@@ -1091,20 +1157,33 @@ TOOLTEST_META meta_long h5repack_layout.h5 --metadata_block_size=8192
#########################################################
# layout options
#########################################################
-VERIFY_LAYOUT_DSET vds_dset_conti 1_vds.h5 vds_dset CONTIGUOUS -l vds_dset:CONTI
-VERIFY_LAYOUT_ALL vds_null_conti 2_vds.h5 CONTIGUOUS -l CONTI
-VERIFY_LAYOUT_DSET vds_dset_compa 1_vds.h5 vds_dset COMPACT -l vds_dset:COMPA
-VERIFY_LAYOUT_ALL vds_null_compa 2_vds.h5 COMPACT -l COMPA
+# skip tests because of HDFFV-9756
+#VERIFY_LAYOUT_VDS vds_dset_conti 1_vds.h5 vds_dset CONTIGUOUS -l vds_dset:CONTI
+#VERIFY_LAYOUT_ALL vds_null_conti 2_vds.h5 CONTIGUOUS -l CONTI
+# skip test because of HDFFV-9756
+#VERIFY_LAYOUT_VDS vds_dset_compa 1_vds.h5 vds_dset COMPACT -l vds_dset:COMPA
+#VERIFY_LAYOUT_ALL vds_null_compa 2_vds.h5 COMPACT -l COMPA
+SKIP vds_dset_conti 1_vds.h5 vds_dset CONTIGUOUS -l vds_dset:CONTI
+SKIP vds_null_conti 2_vds.h5 CONTIGUOUS -l CONTI
+SKIP vds_dset_compa 1_vds.h5 vds_dset COMPACT -l vds_dset:COMPA
+SKIP vds_null_compa 2_vds.h5 COMPACT -l COMPA
################################################################
# layout conversions
###############################################################
-VERIFY_LAYOUT_DSET vds_compa_conti 4_vds.h5 vds_dset CONTIGUOUS -l vds_dset:CONTI
-VERIFY_LAYOUT_DSET vds_compa_compa 4_vds.h5 vds_dset COMPACT -l vds_dset:COMPA
-VERIFY_LAYOUT_DSET vds_conti_compa 4_vds.h5 vds_dset COMPACT -l vds_dset:COMPA
-VERIFY_LAYOUT_DSET vds_conti_conti 4_vds.h5 vds_dset CONTIGUOUS -l vds_dset:CONTI
-VERIFY_LAYOUT_DSET vds_compa 4_vds.h5 vds_dset COMPACT -l vds_dset:COMPA
-VERIFY_LAYOUT_DSET vds_conti 4_vds.h5 vds_dset CONTIGUOUS -l vds_dset:CONTI
+# skip tests because of HDFFV-9756
+#VERIFY_LAYOUT_VDS vds_compa_conti 4_vds.h5 vds_dset CONTIGUOUS -l vds_dset:CONTI
+#VERIFY_LAYOUT_VDS vds_compa_compa 4_vds.h5 vds_dset COMPACT -l vds_dset:COMPA
+#VERIFY_LAYOUT_VDS vds_conti_compa 4_vds.h5 vds_dset COMPACT -l vds_dset:COMPA
+#VERIFY_LAYOUT_VDS vds_conti_conti 4_vds.h5 vds_dset CONTIGUOUS -l vds_dset:CONTI
+#VERIFY_LAYOUT_VDS vds_compa 4_vds.h5 vds_dset COMPACT -l vds_dset:COMPA
+#VERIFY_LAYOUT_VDS vds_conti 4_vds.h5 vds_dset CONTIGUOUS -l vds_dset:CONTI
+SKIP vds_compa_conti 4_vds.h5 vds_dset CONTIGUOUS -l vds_dset:CONTI
+SKIP vds_compa_compa 4_vds.h5 vds_dset COMPACT -l vds_dset:COMPA
+SKIP vds_conti_compa 4_vds.h5 vds_dset COMPACT -l vds_dset:COMPA
+SKIP vds_conti_conti 4_vds.h5 vds_dset CONTIGUOUS -l vds_dset:CONTI
+SKIP vds_compa 4_vds.h5 vds_dset COMPACT -l vds_dset:COMPA
+SKIP vds_conti 4_vds.h5 vds_dset CONTIGUOUS -l vds_dset:CONTI
# Clean up temporary files/directories
CLEAN_TESTFILES_AND_TESTDIR
diff --git a/tools/h5repack/h5repack_main.c b/tools/h5repack/h5repack_main.c
index c56e3ce..c03b7a7 100644
--- a/tools/h5repack/h5repack_main.c
+++ b/tools/h5repack/h5repack_main.c
@@ -360,7 +360,7 @@ int parse_command_line(int argc, const char **argv, pack_opt_t* options) {
has_i_o = 1;
break;
- /* -o for backward compability */
+ /* -o for backward compability */
case 'o':
outfile = opt_arg;
has_i_o = 1;
@@ -423,19 +423,19 @@ int parse_command_line(int argc, const char **argv, pack_opt_t* options) {
break;
case 'L':
- options->latest = 1;
+ options->latest = TRUE;
break;
case 'c':
options->grp_compact = HDatoi( opt_arg );
if (options->grp_compact > 0)
- options->latest = 1; /* must use latest format */
+ options->latest = TRUE; /* must use latest format */
break;
case 'd':
options->grp_indexed = HDatoi( opt_arg );
if (options->grp_indexed > 0)
- options->latest = 1; /* must use latest format */
+ options->latest = TRUE; /* must use latest format */
break;
case 's':
@@ -443,7 +443,7 @@ int parse_command_line(int argc, const char **argv, pack_opt_t* options) {
int idx = 0;
int ssize = 0;
char *msgPtr = HDstrchr( opt_arg, ':');
- options->latest = 1; /* must use latest format */
+ options->latest = TRUE; /* must use latest format */
if (msgPtr == NULL) {
ssize = HDatoi( opt_arg );
for (idx = 0; idx < 5; idx++)
@@ -579,7 +579,7 @@ int main(int argc, const char **argv) {
}
/* initialize options */
- h5repack_init(&options, 0, H5F_FILE_SPACE_DEFAULT, (hsize_t) 0);
+ h5repack_init(&options, 0, FALSE, H5F_FILE_SPACE_DEFAULT, (hsize_t) 0);
if (parse_command_line(argc, argv, &options) < 0)
goto done;
diff --git a/tools/h5repack/h5repacktst.c b/tools/h5repack/h5repacktst.c
index 3959300..07ea676 100644
--- a/tools/h5repack/h5repacktst.c
+++ b/tools/h5repack/h5repacktst.c
@@ -214,7 +214,7 @@ int main (void)
TESTING(" copy of datasets (fill values)");
/* fs_type = 0; fs_size = 0 */
- if (h5repack_init (&pack_options, 0, fs_type, fs_size) < 0)
+ if (h5repack_init (&pack_options, 0, FALSE, fs_type, fs_size) < 0)
GOERROR;
if (h5repack(FNAME0,FNAME0OUT,&pack_options) < 0)
GOERROR;
@@ -234,7 +234,7 @@ int main (void)
*-------------------------------------------------------------------------
*/
TESTING(" copy of datasets (all datatypes)");
- if (h5repack_init (&pack_options, 0, fs_type, fs_size) < 0)
+ if (h5repack_init (&pack_options, 0, FALSE, fs_type, fs_size) < 0)
GOERROR;
if (h5repack(FNAME1,FNAME1OUT,&pack_options) < 0)
GOERROR;
@@ -254,7 +254,7 @@ int main (void)
*-------------------------------------------------------------------------
*/
TESTING(" copy of datasets (attributes)");
- if (h5repack_init (&pack_options, 0, fs_type, fs_size) < 0)
+ if (h5repack_init (&pack_options, 0, FALSE, fs_type, fs_size) < 0)
GOERROR;
if (h5repack(FNAME2,FNAME2OUT,&pack_options) < 0)
GOERROR;
@@ -273,7 +273,7 @@ int main (void)
*-------------------------------------------------------------------------
*/
TESTING(" copy of datasets (hardlinks)");
- if (h5repack_init (&pack_options, 0, fs_type, fs_size) < 0)
+ if (h5repack_init (&pack_options, 0, FALSE, fs_type, fs_size) < 0)
GOERROR;
if (h5repack(FNAME3,FNAME3OUT,&pack_options) < 0)
GOERROR;
@@ -293,7 +293,7 @@ int main (void)
*-------------------------------------------------------------------------
*/
TESTING(" copy of allocation early file");
- if (h5repack_init (&pack_options, 0, fs_type, fs_size) < 0)
+ if (h5repack_init (&pack_options, 0, FALSE, fs_type, fs_size) < 0)
GOERROR;
if (h5repack(FNAME5,FNAME5OUT,&pack_options) < 0)
GOERROR;
@@ -314,7 +314,7 @@ int main (void)
* deflate
*-------------------------------------------------------------------------
*/
- TESTING(" adding deflate filter");
+ TESTING(" adding deflate filter (old_format)");
#ifdef H5_HAVE_FILTER_DEFLATE
@@ -323,7 +323,34 @@ int main (void)
*-------------------------------------------------------------------------
*/
- if (h5repack_init (&pack_options, 0, fs_type, fs_size) < 0)
+ if (h5repack_init (&pack_options, 0, FALSE, fs_type, fs_size) < 0)
+ GOERROR;
+ if (h5repack_addfilter("dset1:GZIP=9",&pack_options) < 0)
+ GOERROR;
+ if (h5repack_addlayout("dset1:CHUNK=20x10",&pack_options) < 0)
+ GOERROR;
+ if (h5repack(FNAME4,FNAME4OUT,&pack_options) < 0)
+ GOERROR;
+ if (h5diff(FNAME4,FNAME4OUT,NULL,NULL,&diff_options) >0)
+ GOERROR;
+ if (h5repack_verify(FNAME4, FNAME4OUT, &pack_options) <= 0)
+ GOERROR;
+ if (h5repack_end (&pack_options) < 0)
+ GOERROR;
+ PASSED();
+#else
+ SKIPPED();
+#endif
+
+ TESTING(" adding deflate filter (new format)");
+#ifdef H5_HAVE_FILTER_DEFLATE
+ /*-------------------------------------------------------------------------
+ * test an individual object option
+ * For new format, "dset1" should be using Fixed Array indexing
+ *-------------------------------------------------------------------------
+ */
+
+ if (h5repack_init (&pack_options, 0, TRUE, fs_type, fs_size) < 0)
GOERROR;
if (h5repack_addfilter("dset1:GZIP=9",&pack_options) < 0)
GOERROR;
@@ -351,7 +378,7 @@ int main (void)
#ifdef H5_HAVE_FILTER_DEFLATE
- if (h5repack_init (&pack_options, 0, fs_type, fs_size) < 0)
+ if (h5repack_init (&pack_options, 0, FALSE, fs_type, fs_size) < 0)
GOERROR;
if (h5repack_addfilter("GZIP=1",&pack_options) < 0)
GOERROR;
@@ -389,7 +416,7 @@ int main (void)
*/
if (szip_can_encode) {
- if (h5repack_init (&pack_options, 0, fs_type, fs_size) < 0)
+ if (h5repack_init (&pack_options, 0, FALSE, fs_type, fs_size) < 0)
GOERROR;
if (h5repack_addfilter("dset2:SZIP=8,EC",&pack_options) < 0)
GOERROR;
@@ -421,7 +448,7 @@ int main (void)
#if defined (H5_HAVE_FILTER_SZIP)
if (szip_can_encode) {
- if (h5repack_init (&pack_options, 0, fs_type, fs_size) < 0)
+ if (h5repack_init (&pack_options, 0, FALSE, fs_type, fs_size) < 0)
GOERROR;
if (h5repack_addfilter("SZIP=8,NN",&pack_options) < 0)
GOERROR;
@@ -450,7 +477,7 @@ int main (void)
*-------------------------------------------------------------------------
*/
- if (h5repack_init (&pack_options, 0, fs_type, fs_size) < 0)
+ if (h5repack_init (&pack_options, 0, FALSE, fs_type, fs_size) < 0)
GOERROR;
if (h5repack_addfilter("dset1:SHUF",&pack_options) < 0)
GOERROR;
@@ -475,7 +502,7 @@ int main (void)
TESTING(" addding shuffle filter to all");
/* fs_type = H5F_FILE_SPACE_ALL_PERSIST; fs_size = 1 */
- if (h5repack_init (&pack_options, 0, H5_INC_ENUM(H5F_file_space_type_t, fs_type), ++fs_size) < 0)
+ if (h5repack_init (&pack_options, 0, FALSE, H5_INC_ENUM(H5F_file_space_type_t, fs_type), ++fs_size) < 0)
GOERROR;
if (h5repack_addfilter("SHUF",&pack_options) < 0)
GOERROR;
@@ -500,7 +527,7 @@ int main (void)
*-------------------------------------------------------------------------
*/
- if (h5repack_init (&pack_options, 0, fs_type, fs_size) < 0)
+ if (h5repack_init (&pack_options, 0, FALSE, fs_type, fs_size) < 0)
GOERROR;
if (h5repack_addfilter("dset1:FLET",&pack_options) < 0)
GOERROR;
@@ -525,7 +552,7 @@ int main (void)
TESTING(" adding checksum filter to all");
- if (h5repack_init (&pack_options, 0, fs_type, fs_size) < 0)
+ if (h5repack_init (&pack_options, 0, FALSE, fs_type, fs_size) < 0)
GOERROR;
if (h5repack_addfilter("FLET",&pack_options) < 0)
GOERROR;
@@ -550,7 +577,7 @@ int main (void)
*-------------------------------------------------------------------------
*/
- if (h5repack_init (&pack_options, 0, fs_type, fs_size) < 0)
+ if (h5repack_init (&pack_options, 0, FALSE, fs_type, fs_size) < 0)
GOERROR;
if (h5repack_addlayout("dset1:CHUNK 20x10",&pack_options) < 0)
GOERROR;
@@ -583,14 +610,36 @@ int main (void)
PASSED();
- TESTING(" adding layout chunked");
+ TESTING(" adding layout chunked (old format)");
+
+ /*-------------------------------------------------------------------------
+ * test an individual object option
+ *-------------------------------------------------------------------------
+ */
+
+ if (h5repack_init (&pack_options, 0, FALSE, fs_type, fs_size) < 0)
+ GOERROR;
+ if (h5repack_addlayout("dset1:CHUNK=20x10",&pack_options) < 0)
+ GOERROR;
+ if (h5repack(FNAME4,FNAME4OUT,&pack_options) < 0)
+ GOERROR;
+ if (h5diff(FNAME4,FNAME4OUT,NULL,NULL,&diff_options) >0)
+ GOERROR;
+ if (h5repack_verify(FNAME4, FNAME4OUT, &pack_options )<= 0)
+ GOERROR;
+ if (h5repack_end (&pack_options) < 0)
+ GOERROR;
+ PASSED();
+
+ TESTING(" adding layout chunked (new format)");
/*-------------------------------------------------------------------------
* test an individual object option
+ * For new format, "dset1" should be using Fixed Array indexing
*-------------------------------------------------------------------------
*/
- if (h5repack_init (&pack_options, 0, fs_type, fs_size) < 0)
+ if (h5repack_init (&pack_options, 0, TRUE, fs_type, fs_size) < 0)
GOERROR;
if (h5repack_addlayout("dset1:CHUNK=20x10",&pack_options) < 0)
GOERROR;
@@ -610,7 +659,7 @@ int main (void)
*/
TESTING(" adding layout chunked to all");
- if (h5repack_init (&pack_options, 0, fs_type, fs_size) < 0)
+ if (h5repack_init (&pack_options, 0, FALSE, fs_type, fs_size) < 0)
GOERROR;
if (h5repack_addlayout("CHUNK=20x10",&pack_options) < 0)
GOERROR;
@@ -631,7 +680,7 @@ int main (void)
* test an individual object option
*-------------------------------------------------------------------------
*/
- if (h5repack_init (&pack_options, 0, fs_type, fs_size) < 0)
+ if (h5repack_init (&pack_options, 0, FALSE, fs_type, fs_size) < 0)
GOERROR;
if (h5repack_addlayout("dset1:CONTI",&pack_options) < 0)
GOERROR;
@@ -652,7 +701,7 @@ int main (void)
* test all objects option
*-------------------------------------------------------------------------
*/
- if (h5repack_init (&pack_options, 0, fs_type, fs_size) < 0)
+ if (h5repack_init (&pack_options, 0, FALSE, fs_type, fs_size) < 0)
GOERROR;
if (h5repack_addlayout("CONTI",&pack_options) < 0)
GOERROR;
@@ -669,7 +718,7 @@ int main (void)
* do the same test for a file with filters (chunked)
*-------------------------------------------------------------------------
*/
- if (h5repack_init (&pack_options, 0, fs_type, fs_size) < 0)
+ if (h5repack_init (&pack_options, 0, FALSE, fs_type, fs_size) < 0)
GOERROR;
if (h5repack_addlayout("CONTI",&pack_options) < 0)
GOERROR;
@@ -691,7 +740,7 @@ int main (void)
*-------------------------------------------------------------------------
*/
- if (h5repack_init (&pack_options, 0, fs_type, fs_size) < 0)
+ if (h5repack_init (&pack_options, 0, FALSE, fs_type, fs_size) < 0)
GOERROR;
if (h5repack_addlayout("dset1:COMPA",&pack_options) < 0)
GOERROR;
@@ -713,7 +762,7 @@ int main (void)
*/
/* fs_type = H5F_FILE_SPACE_ALL; fs_size = 2 */
- if (h5repack_init (&pack_options, 0, H5_INC_ENUM(H5F_file_space_type_t, fs_type), ++fs_size) < 0)
+ if (h5repack_init (&pack_options, 0, FALSE, H5_INC_ENUM(H5F_file_space_type_t, fs_type), ++fs_size) < 0)
GOERROR;
if (h5repack_addlayout("COMPA",&pack_options) < 0)
GOERROR;
@@ -735,7 +784,7 @@ int main (void)
* layout compact to contiguous conversion
*-------------------------------------------------------------------------
*/
- if (h5repack_init (&pack_options, 0, fs_type, fs_size) < 0)
+ if (h5repack_init (&pack_options, 0, FALSE, fs_type, fs_size) < 0)
GOERROR;
if (h5repack_addlayout("dset_compact:CONTI",&pack_options) < 0)
GOERROR;
@@ -755,7 +804,7 @@ int main (void)
* layout compact to chunk conversion
*-------------------------------------------------------------------------
*/
- if (h5repack_init (&pack_options, 0, fs_type, fs_size) < 0)
+ if (h5repack_init (&pack_options, 0, FALSE, fs_type, fs_size) < 0)
GOERROR;
if (h5repack_addlayout("dset_compact:CHUNK=2x5",&pack_options) < 0)
GOERROR;
@@ -775,7 +824,7 @@ int main (void)
* layout compact to compact conversion
*-------------------------------------------------------------------------
*/
- if (h5repack_init (&pack_options, 0, fs_type, fs_size) < 0)
+ if (h5repack_init (&pack_options, 0, FALSE, fs_type, fs_size) < 0)
GOERROR;
if (h5repack_addlayout("dset_compact:COMPA",&pack_options) < 0)
GOERROR;
@@ -794,7 +843,7 @@ int main (void)
* layout contiguous to compact conversion
*-------------------------------------------------------------------------
*/
- if (h5repack_init (&pack_options, 0, fs_type, fs_size) < 0)
+ if (h5repack_init (&pack_options, 0, FALSE, fs_type, fs_size) < 0)
GOERROR;
if (h5repack_addlayout("dset_contiguous:COMPA",&pack_options) < 0)
GOERROR;
@@ -813,7 +862,7 @@ int main (void)
* layout contiguous to chunk conversion
*-------------------------------------------------------------------------
*/
- if (h5repack_init (&pack_options, 0, fs_type, fs_size) < 0)
+ if (h5repack_init (&pack_options, 0, FALSE, fs_type, fs_size) < 0)
GOERROR;
if (h5repack_addlayout("dset_contiguous:CHUNK=3x6",&pack_options) < 0)
GOERROR;
@@ -833,7 +882,7 @@ int main (void)
* layout contiguous to contiguous conversion
*-------------------------------------------------------------------------
*/
- if (h5repack_init (&pack_options, 0, fs_type, fs_size) < 0)
+ if (h5repack_init (&pack_options, 0, FALSE, fs_type, fs_size) < 0)
GOERROR;
if (h5repack_addlayout("dset_contiguous:CONTI",&pack_options) < 0)
GOERROR;
@@ -852,7 +901,7 @@ int main (void)
* layout chunked to compact conversion
*-------------------------------------------------------------------------
*/
- if (h5repack_init (&pack_options, 0, fs_type, fs_size) < 0)
+ if (h5repack_init (&pack_options, 0, FALSE, fs_type, fs_size) < 0)
GOERROR;
if (h5repack_addlayout("dset_chunk:COMPA",&pack_options) < 0)
GOERROR;
@@ -872,7 +921,7 @@ int main (void)
* layout chunked to contiguous conversion
*-------------------------------------------------------------------------
*/
- if (h5repack_init (&pack_options, 0, fs_type, fs_size) < 0)
+ if (h5repack_init (&pack_options, 0, FALSE, fs_type, fs_size) < 0)
GOERROR;
if (h5repack_addlayout("dset_chunk:CONTI",&pack_options) < 0)
GOERROR;
@@ -891,7 +940,7 @@ int main (void)
* layout chunked to chunked conversion
*-------------------------------------------------------------------------
*/
- if (h5repack_init (&pack_options, 0, fs_type, fs_size) < 0)
+ if (h5repack_init (&pack_options, 0, FALSE, fs_type, fs_size) < 0)
GOERROR;
if (h5repack_addlayout("dset_chunk:CHUNK=18x13",&pack_options) < 0)
GOERROR;
@@ -922,7 +971,7 @@ int main (void)
#if defined (H5_HAVE_FILTER_SZIP)
if (szip_can_encode) {
/* fs_type = H5F_FILE_SPACE_AGGR_VFD; fs_size = 3 */
- if (h5repack_init (&pack_options, 0, H5_INC_ENUM(H5F_file_space_type_t, fs_type), ++fs_size) < 0)
+ if (h5repack_init (&pack_options, 0, FALSE, H5_INC_ENUM(H5F_file_space_type_t, fs_type), ++fs_size) < 0)
GOERROR;
if (h5repack(FNAME7,FNAME7OUT,&pack_options) < 0)
GOERROR;
@@ -947,7 +996,7 @@ int main (void)
#if defined (H5_HAVE_FILTER_SZIP)
if (szip_can_encode) {
- if (h5repack_init (&pack_options, 0, fs_type, fs_size) < 0)
+ if (h5repack_init (&pack_options, 0, FALSE, fs_type, fs_size) < 0)
GOERROR;
if (h5repack_addfilter("dset_szip:NONE",&pack_options) < 0)
GOERROR;
@@ -972,7 +1021,7 @@ int main (void)
TESTING(" copy of deflate filter");
#ifdef H5_HAVE_FILTER_DEFLATE
- if (h5repack_init (&pack_options, 0, fs_type, fs_size) < 0)
+ if (h5repack_init (&pack_options, 0, FALSE, fs_type, fs_size) < 0)
GOERROR;
if (h5repack(FNAME8,FNAME8OUT,&pack_options) < 0)
GOERROR;
@@ -992,7 +1041,7 @@ int main (void)
TESTING(" removing deflate filter");
#ifdef H5_HAVE_FILTER_DEFLATE
- if (h5repack_init (&pack_options, 0, fs_type, ++fs_size) < 0)
+ if (h5repack_init (&pack_options, 0, FALSE, fs_type, ++fs_size) < 0)
GOERROR;
if (h5repack_addfilter("dset_deflate:NONE",&pack_options) < 0)
GOERROR;
@@ -1014,7 +1063,7 @@ int main (void)
TESTING(" copy of shuffle filter");
- if (h5repack_init (&pack_options, 0, fs_type, fs_size) < 0)
+ if (h5repack_init (&pack_options, 0, FALSE, fs_type, fs_size) < 0)
GOERROR;
if (h5repack(FNAME9,FNAME9OUT,&pack_options) < 0)
GOERROR;
@@ -1030,7 +1079,7 @@ int main (void)
TESTING(" removing shuffle filter");
- if (h5repack_init (&pack_options, 0, fs_type, fs_size) < 0)
+ if (h5repack_init (&pack_options, 0, FALSE, fs_type, fs_size) < 0)
GOERROR;
if (h5repack_addfilter("dset_shuffle:NONE",&pack_options) < 0)
GOERROR;
@@ -1048,7 +1097,7 @@ int main (void)
TESTING(" copy of fletcher filter");
- if (h5repack_init (&pack_options, 0, fs_type, fs_size) < 0)
+ if (h5repack_init (&pack_options, 0, FALSE, fs_type, fs_size) < 0)
GOERROR;
if (h5repack(FNAME10,FNAME10OUT,&pack_options) < 0)
GOERROR;
@@ -1064,7 +1113,7 @@ int main (void)
TESTING(" removing fletcher filter");
- if (h5repack_init (&pack_options, 0, fs_type, fs_size) < 0)
+ if (h5repack_init (&pack_options, 0, FALSE, fs_type, fs_size) < 0)
GOERROR;
if (h5repack_addfilter("dset_fletcher32:NONE",&pack_options) < 0)
GOERROR;
@@ -1082,7 +1131,7 @@ int main (void)
TESTING(" copy of nbit filter");
- if (h5repack_init (&pack_options, 0, fs_type, fs_size) < 0)
+ if (h5repack_init (&pack_options, 0, FALSE, fs_type, fs_size) < 0)
GOERROR;
if (h5repack(FNAME12,FNAME12OUT,&pack_options) < 0)
GOERROR;
@@ -1098,7 +1147,7 @@ int main (void)
TESTING(" removing nbit filter");
- if (h5repack_init (&pack_options, 0, fs_type, fs_size) < 0)
+ if (h5repack_init (&pack_options, 0, FALSE, fs_type, fs_size) < 0)
GOERROR;
if (h5repack_addfilter("dset_nbit:NONE",&pack_options) < 0)
GOERROR;
@@ -1116,7 +1165,7 @@ int main (void)
TESTING(" adding nbit filter");
- if (h5repack_init (&pack_options, 0, fs_type, fs_size) < 0)
+ if (h5repack_init (&pack_options, 0, FALSE, fs_type, fs_size) < 0)
GOERROR;
if (h5repack_addfilter("dset_int31:NBIT",&pack_options) < 0)
GOERROR;
@@ -1134,7 +1183,7 @@ int main (void)
TESTING(" copy of scaleoffset filter");
- if (h5repack_init (&pack_options, 0, fs_type, fs_size) < 0)
+ if (h5repack_init (&pack_options, 0, FALSE, fs_type, fs_size) < 0)
GOERROR;
if (h5repack(FNAME13,FNAME13OUT,&pack_options) < 0)
GOERROR;
@@ -1150,7 +1199,7 @@ int main (void)
TESTING(" removing scaleoffset filter");
- if (h5repack_init (&pack_options, 0, fs_type, fs_size) < 0)
+ if (h5repack_init (&pack_options, 0, FALSE, fs_type, fs_size) < 0)
GOERROR;
if (h5repack_addfilter("dset_scaleoffset:NONE",&pack_options) < 0)
GOERROR;
@@ -1168,7 +1217,7 @@ int main (void)
TESTING(" adding scaleoffset filter");
- if (h5repack_init (&pack_options, 0, fs_type, fs_size) < 0)
+ if (h5repack_init (&pack_options, 0, FALSE, fs_type, fs_size) < 0)
GOERROR;
if (h5repack_addfilter("dset_none:SOFF=31,IN",&pack_options) < 0)
GOERROR;
@@ -1201,7 +1250,7 @@ int main (void)
if (szip_can_encode) {
/* fs_type = H5F_FILE_SPACE_VFD; fs_size = 4 */
- if (h5repack_init (&pack_options, 0, H5_INC_ENUM(H5F_file_space_type_t, fs_type), ++fs_size) < 0)
+ if (h5repack_init (&pack_options, 0, FALSE, H5_INC_ENUM(H5F_file_space_type_t, fs_type), ++fs_size) < 0)
GOERROR;
if (h5repack_addfilter("dset_deflate:SZIP=8,NN",&pack_options) < 0)
GOERROR;
@@ -1227,7 +1276,7 @@ int main (void)
#if defined (H5_HAVE_FILTER_SZIP) && defined (H5_HAVE_FILTER_DEFLATE)
if (szip_can_encode) {
- if (h5repack_init (&pack_options, 0, fs_type, fs_size) < 0)
+ if (h5repack_init (&pack_options, 0, FALSE, fs_type, fs_size) < 0)
GOERROR;
if (h5repack_addfilter("dset_szip:GZIP=1",&pack_options) < 0)
GOERROR;
@@ -1258,7 +1307,7 @@ int main (void)
#if defined (H5_HAVE_FILTER_SZIP) && defined (H5_HAVE_FILTER_DEFLATE)
- if (h5repack_init (&pack_options, 0, fs_type, fs_size) < 0)
+ if (h5repack_init (&pack_options, 0, FALSE, fs_type, fs_size) < 0)
GOERROR;
if (h5repack_addfilter("NONE",&pack_options) < 0)
GOERROR;
@@ -1282,7 +1331,7 @@ int main (void)
*/
TESTING(" big file");
- if (h5repack_init (&pack_options, 0, fs_type, fs_size) < 0)
+ if (h5repack_init (&pack_options, 0, FALSE, fs_type, fs_size) < 0)
GOERROR;
if (h5repack(FNAME14,FNAME14OUT,&pack_options) < 0)
GOERROR;
@@ -1299,7 +1348,7 @@ int main (void)
*-------------------------------------------------------------------------
*/
TESTING(" external datasets");
- if (h5repack_init (&pack_options, 0, fs_type, fs_size) < 0)
+ if (h5repack_init (&pack_options, 0, FALSE, fs_type, fs_size) < 0)
GOERROR;
if (h5repack(FNAME15,FNAME15OUT,&pack_options) < 0)
GOERROR;
@@ -1316,7 +1365,7 @@ int main (void)
*-------------------------------------------------------------------------
*/
TESTING(" file with userblock");
- if(h5repack_init(&pack_options, 0, fs_type, fs_size) < 0)
+ if(h5repack_init(&pack_options, 0, FALSE, fs_type, fs_size) < 0)
GOERROR;
if(h5repack(FNAME16, FNAME16OUT, &pack_options) < 0)
GOERROR;
@@ -1335,7 +1384,7 @@ int main (void)
*-------------------------------------------------------------------------
*/
TESTING(" latest file format options");
- if (h5repack_init (&pack_options, 0, fs_type, fs_size) < 0)
+ if (h5repack_init (&pack_options, 0, FALSE, fs_type, fs_size) < 0)
GOERROR;
pack_options.latest=1;
pack_options.grp_compact=10;
@@ -1365,7 +1414,7 @@ int main (void)
#if defined (H5_HAVE_FILTER_DEFLATE)
- if (h5repack_init (&pack_options, 0, fs_type, fs_size) < 0)
+ if (h5repack_init (&pack_options, 0, FALSE, fs_type, fs_size) < 0)
GOERROR;
if (h5repack_addfilter("GZIP=1",&pack_options) < 0)
GOERROR;
@@ -1394,7 +1443,7 @@ int main (void)
#ifdef H5_HAVE_FILTER_DEFLATE
- if(h5repack_init(&pack_options, 0, fs_type, fs_size) < 0)
+ if(h5repack_init(&pack_options, 0, FALSE, fs_type, fs_size) < 0)
GOERROR;
/* add the options for a user block size and user block filename */
@@ -1427,7 +1476,7 @@ int main (void)
#ifdef H5_HAVE_FILTER_DEFLATE
- if(h5repack_init(&pack_options, 0, fs_type, fs_size) < 0)
+ if(h5repack_init(&pack_options, 0, FALSE, fs_type, fs_size) < 0)
GOERROR;
/* add the options for aligment */
@@ -1481,7 +1530,7 @@ int main (void)
*/
TESTING(" file with committed datatypes");
- if(h5repack_init(&pack_options, 0, fs_type, fs_size) < 0)
+ if(h5repack_init(&pack_options, 0, FALSE, fs_type, fs_size) < 0)
GOERROR;
if(h5repack(FNAME17, FNAME17OUT, &pack_options) < 0)
@@ -1508,7 +1557,7 @@ int main (void)
/* First run without metadata option. No need to verify the correctness */
/* since this has been verified by earlier tests. Just record the file */
/* size of the output file. */
- if(h5repack_init(&pack_options, 0, H5F_FILE_SPACE_DEFAULT, (hsize_t)0) < 0)
+ if(h5repack_init(&pack_options, 0, FALSE, H5F_FILE_SPACE_DEFAULT, (hsize_t)0) < 0)
GOERROR;
if(h5repack(FNAME4, FNAME4OUT, &pack_options) < 0)
GOERROR;
@@ -1519,7 +1568,7 @@ int main (void)
GOERROR;
/* run it again with metadata option */
- if(h5repack_init(&pack_options, 0, H5F_FILE_SPACE_DEFAULT, (hsize_t)0) < 0)
+ if(h5repack_init(&pack_options, 0, FALSE, H5F_FILE_SPACE_DEFAULT, (hsize_t)0) < 0)
GOERROR;
pack_options.meta_block_size = 8192;
if(h5repack(FNAME4, FNAME4OUT, &pack_options) < 0)
@@ -1554,6 +1603,8 @@ int main (void)
puts("All h5repack tests passed.");
+ h5tools_close();
+
return 0;
error:
diff --git a/tools/h5repack/testfiles/deflate_limit.h5repack_layout.h5.ddl b/tools/h5repack/testfiles/deflate_limit.h5repack_layout.h5.ddl
index b8e7e68..75f54fa 100644
--- a/tools/h5repack/testfiles/deflate_limit.h5repack_layout.h5.ddl
+++ b/tools/h5repack/testfiles/deflate_limit.h5repack_layout.h5.ddl
@@ -12,7 +12,7 @@ GROUP "/" {
}
FILLVALUE {
FILL_TIME H5D_FILL_TIME_IFSET
- VALUE 0
+ VALUE H5D_FILL_VALUE_DEFAULT
}
ALLOCATION_TIME {
H5D_ALLOC_TIME_INCR
@@ -30,7 +30,7 @@ GROUP "/" {
}
FILLVALUE {
FILL_TIME H5D_FILL_TIME_IFSET
- VALUE 0
+ VALUE H5D_FILL_VALUE_DEFAULT
}
ALLOCATION_TIME {
H5D_ALLOC_TIME_INCR
@@ -48,7 +48,7 @@ GROUP "/" {
}
FILLVALUE {
FILL_TIME H5D_FILL_TIME_IFSET
- VALUE 0
+ VALUE H5D_FILL_VALUE_DEFAULT
}
ALLOCATION_TIME {
H5D_ALLOC_TIME_INCR
@@ -66,7 +66,7 @@ GROUP "/" {
}
FILLVALUE {
FILL_TIME H5D_FILL_TIME_IFSET
- VALUE 0
+ VALUE H5D_FILL_VALUE_DEFAULT
}
ALLOCATION_TIME {
H5D_ALLOC_TIME_INCR
@@ -74,7 +74,7 @@ GROUP "/" {
}
DATASET "dset_chunk" {
DATATYPE H5T_STD_I32LE
- DATASPACE SIMPLE { ( 40, 20 ) / ( 40, H5S_UNLIMITED ) }
+ DATASPACE SIMPLE { ( 40, 20 ) / ( 40, 20 ) }
STORAGE_LAYOUT {
CHUNKED ( 20, 10 )
SIZE 1283 (2.494:1 COMPRESSION)
@@ -84,7 +84,7 @@ GROUP "/" {
}
FILLVALUE {
FILL_TIME H5D_FILL_TIME_IFSET
- VALUE 0
+ VALUE H5D_FILL_VALUE_DEFAULT
}
ALLOCATION_TIME {
H5D_ALLOC_TIME_INCR
@@ -102,7 +102,7 @@ GROUP "/" {
}
FILLVALUE {
FILL_TIME H5D_FILL_TIME_IFSET
- VALUE 0
+ VALUE H5D_FILL_VALUE_DEFAULT
}
ALLOCATION_TIME {
H5D_ALLOC_TIME_INCR
@@ -120,7 +120,7 @@ GROUP "/" {
}
FILLVALUE {
FILL_TIME H5D_FILL_TIME_IFSET
- VALUE 0
+ VALUE H5D_FILL_VALUE_DEFAULT
}
ALLOCATION_TIME {
H5D_ALLOC_TIME_INCR
diff --git a/tools/h5repack/testfiles/h5repack_attr.h5 b/tools/h5repack/testfiles/h5repack_attr.h5
index fe066db..80df0be 100644
--- a/tools/h5repack/testfiles/h5repack_attr.h5
+++ b/tools/h5repack/testfiles/h5repack_attr.h5
Binary files differ
diff --git a/tools/h5repack/testfiles/h5repack_attr_refs.h5 b/tools/h5repack/testfiles/h5repack_attr_refs.h5
index 56974a3..1b0ca34 100644
--- a/tools/h5repack/testfiles/h5repack_attr_refs.h5
+++ b/tools/h5repack/testfiles/h5repack_attr_refs.h5
Binary files differ
diff --git a/tools/h5repack/testfiles/h5repack_deflate.h5 b/tools/h5repack/testfiles/h5repack_deflate.h5
index 3a4b86d..4988491 100644
--- a/tools/h5repack/testfiles/h5repack_deflate.h5
+++ b/tools/h5repack/testfiles/h5repack_deflate.h5
Binary files differ
diff --git a/tools/h5repack/testfiles/h5repack_early.h5 b/tools/h5repack/testfiles/h5repack_early.h5
index 9b92890..d9a7ece 100644
--- a/tools/h5repack/testfiles/h5repack_early.h5
+++ b/tools/h5repack/testfiles/h5repack_early.h5
Binary files differ
diff --git a/tools/h5repack/testfiles/h5repack_ext.h5 b/tools/h5repack/testfiles/h5repack_ext.h5
index 1fe88c9..8518b5b 100644
--- a/tools/h5repack/testfiles/h5repack_ext.h5
+++ b/tools/h5repack/testfiles/h5repack_ext.h5
Binary files differ
diff --git a/tools/h5repack/testfiles/h5repack_fill.h5 b/tools/h5repack/testfiles/h5repack_fill.h5
index 21516cb..ac40089 100644
--- a/tools/h5repack/testfiles/h5repack_fill.h5
+++ b/tools/h5repack/testfiles/h5repack_fill.h5
Binary files differ
diff --git a/tools/h5repack/testfiles/h5repack_filters.h5 b/tools/h5repack/testfiles/h5repack_filters.h5
index 042b8db..eabade8 100644
--- a/tools/h5repack/testfiles/h5repack_filters.h5
+++ b/tools/h5repack/testfiles/h5repack_filters.h5
Binary files differ
diff --git a/tools/h5repack/testfiles/h5repack_fletcher.h5 b/tools/h5repack/testfiles/h5repack_fletcher.h5
index 2f137b0..16ca4ef 100644
--- a/tools/h5repack/testfiles/h5repack_fletcher.h5
+++ b/tools/h5repack/testfiles/h5repack_fletcher.h5
Binary files differ
diff --git a/tools/h5repack/testfiles/h5repack_hlink.h5 b/tools/h5repack/testfiles/h5repack_hlink.h5
index 3d22728..80c0fcc 100644
--- a/tools/h5repack/testfiles/h5repack_hlink.h5
+++ b/tools/h5repack/testfiles/h5repack_hlink.h5
Binary files differ
diff --git a/tools/h5repack/testfiles/h5repack_layout.UD.h5-plugin_none.ddl b/tools/h5repack/testfiles/h5repack_layout.UD.h5-plugin_none.ddl
index fb94c21..66c4c69 100644
--- a/tools/h5repack/testfiles/h5repack_layout.UD.h5-plugin_none.ddl
+++ b/tools/h5repack/testfiles/h5repack_layout.UD.h5-plugin_none.ddl
@@ -12,7 +12,7 @@ GROUP "/" {
}
FILLVALUE {
FILL_TIME H5D_FILL_TIME_IFSET
- VALUE 0
+ VALUE H5D_FILL_VALUE_DEFAULT
}
ALLOCATION_TIME {
H5D_ALLOC_TIME_INCR
@@ -30,7 +30,7 @@ GROUP "/" {
}
FILLVALUE {
FILL_TIME H5D_FILL_TIME_IFSET
- VALUE 0
+ VALUE H5D_FILL_VALUE_DEFAULT
}
ALLOCATION_TIME {
H5D_ALLOC_TIME_INCR
@@ -48,7 +48,7 @@ GROUP "/" {
}
FILLVALUE {
FILL_TIME H5D_FILL_TIME_IFSET
- VALUE 0
+ VALUE H5D_FILL_VALUE_DEFAULT
}
ALLOCATION_TIME {
H5D_ALLOC_TIME_INCR
@@ -66,7 +66,7 @@ GROUP "/" {
}
FILLVALUE {
FILL_TIME H5D_FILL_TIME_IFSET
- VALUE 0
+ VALUE H5D_FILL_VALUE_DEFAULT
}
ALLOCATION_TIME {
H5D_ALLOC_TIME_INCR
@@ -84,7 +84,7 @@ GROUP "/" {
}
FILLVALUE {
FILL_TIME H5D_FILL_TIME_IFSET
- VALUE 0
+ VALUE H5D_FILL_VALUE_DEFAULT
}
ALLOCATION_TIME {
H5D_ALLOC_TIME_INCR
@@ -102,7 +102,7 @@ GROUP "/" {
}
FILLVALUE {
FILL_TIME H5D_FILL_TIME_IFSET
- VALUE 0
+ VALUE H5D_FILL_VALUE_DEFAULT
}
ALLOCATION_TIME {
H5D_ALLOC_TIME_INCR
@@ -120,7 +120,7 @@ GROUP "/" {
}
FILLVALUE {
FILL_TIME H5D_FILL_TIME_IFSET
- VALUE 0
+ VALUE H5D_FILL_VALUE_DEFAULT
}
ALLOCATION_TIME {
H5D_ALLOC_TIME_INCR
diff --git a/tools/h5repack/testfiles/h5repack_layout.h5 b/tools/h5repack/testfiles/h5repack_layout.h5
index 2cc44b1..4e53766 100644
--- a/tools/h5repack/testfiles/h5repack_layout.h5
+++ b/tools/h5repack/testfiles/h5repack_layout.h5
Binary files differ
diff --git a/tools/h5repack/testfiles/h5repack_layout.h5-plugin_test.ddl b/tools/h5repack/testfiles/h5repack_layout.h5-plugin_test.ddl
index 7a3a01e..a8b4562 100644
--- a/tools/h5repack/testfiles/h5repack_layout.h5-plugin_test.ddl
+++ b/tools/h5repack/testfiles/h5repack_layout.h5-plugin_test.ddl
@@ -16,7 +16,7 @@ GROUP "/" {
}
FILLVALUE {
FILL_TIME H5D_FILL_TIME_IFSET
- VALUE 0
+ VALUE H5D_FILL_VALUE_DEFAULT
}
ALLOCATION_TIME {
H5D_ALLOC_TIME_INCR
@@ -38,7 +38,7 @@ GROUP "/" {
}
FILLVALUE {
FILL_TIME H5D_FILL_TIME_IFSET
- VALUE 0
+ VALUE H5D_FILL_VALUE_DEFAULT
}
ALLOCATION_TIME {
H5D_ALLOC_TIME_INCR
@@ -60,7 +60,7 @@ GROUP "/" {
}
FILLVALUE {
FILL_TIME H5D_FILL_TIME_IFSET
- VALUE 0
+ VALUE H5D_FILL_VALUE_DEFAULT
}
ALLOCATION_TIME {
H5D_ALLOC_TIME_INCR
@@ -82,7 +82,7 @@ GROUP "/" {
}
FILLVALUE {
FILL_TIME H5D_FILL_TIME_IFSET
- VALUE 0
+ VALUE H5D_FILL_VALUE_DEFAULT
}
ALLOCATION_TIME {
H5D_ALLOC_TIME_INCR
@@ -90,7 +90,7 @@ GROUP "/" {
}
DATASET "dset_chunk" {
DATATYPE H5T_STD_I32LE
- DATASPACE SIMPLE { ( 40, 20 ) / ( 40, H5S_UNLIMITED ) }
+ DATASPACE SIMPLE { ( 40, 20 ) / ( 40, 20 ) }
STORAGE_LAYOUT {
CHUNKED ( 20, 10 )
SIZE 3200 (1.000:1 COMPRESSION)
@@ -104,7 +104,7 @@ GROUP "/" {
}
FILLVALUE {
FILL_TIME H5D_FILL_TIME_IFSET
- VALUE 0
+ VALUE H5D_FILL_VALUE_DEFAULT
}
ALLOCATION_TIME {
H5D_ALLOC_TIME_INCR
@@ -126,7 +126,7 @@ GROUP "/" {
}
FILLVALUE {
FILL_TIME H5D_FILL_TIME_IFSET
- VALUE 0
+ VALUE H5D_FILL_VALUE_DEFAULT
}
ALLOCATION_TIME {
H5D_ALLOC_TIME_INCR
@@ -148,7 +148,7 @@ GROUP "/" {
}
FILLVALUE {
FILL_TIME H5D_FILL_TIME_IFSET
- VALUE 0
+ VALUE H5D_FILL_VALUE_DEFAULT
}
ALLOCATION_TIME {
H5D_ALLOC_TIME_INCR
diff --git a/tools/h5repack/testfiles/h5repack_layout2.h5 b/tools/h5repack/testfiles/h5repack_layout2.h5
index 6e77e41..f6821e5 100644
--- a/tools/h5repack/testfiles/h5repack_layout2.h5
+++ b/tools/h5repack/testfiles/h5repack_layout2.h5
Binary files differ
diff --git a/tools/h5repack/testfiles/h5repack_layout3.h5 b/tools/h5repack/testfiles/h5repack_layout3.h5
index 7351502..6d2de41 100644
--- a/tools/h5repack/testfiles/h5repack_layout3.h5
+++ b/tools/h5repack/testfiles/h5repack_layout3.h5
Binary files differ
diff --git a/tools/h5repack/testfiles/h5repack_named_dtypes.h5 b/tools/h5repack/testfiles/h5repack_named_dtypes.h5
index 108bb9f..85c1352 100644
--- a/tools/h5repack/testfiles/h5repack_named_dtypes.h5
+++ b/tools/h5repack/testfiles/h5repack_named_dtypes.h5
Binary files differ
diff --git a/tools/h5repack/testfiles/h5repack_nbit.h5 b/tools/h5repack/testfiles/h5repack_nbit.h5
index 3ada112..ac71bee 100644
--- a/tools/h5repack/testfiles/h5repack_nbit.h5
+++ b/tools/h5repack/testfiles/h5repack_nbit.h5
Binary files differ
diff --git a/tools/h5repack/testfiles/h5repack_objs.h5 b/tools/h5repack/testfiles/h5repack_objs.h5
index 16d55da..284b0ac 100644
--- a/tools/h5repack/testfiles/h5repack_objs.h5
+++ b/tools/h5repack/testfiles/h5repack_objs.h5
Binary files differ
diff --git a/tools/h5repack/testfiles/h5repack_refs.h5 b/tools/h5repack/testfiles/h5repack_refs.h5
index 525267f..2a1ec9b 100644
--- a/tools/h5repack/testfiles/h5repack_refs.h5
+++ b/tools/h5repack/testfiles/h5repack_refs.h5
Binary files differ
diff --git a/tools/h5repack/testfiles/h5repack_shuffle.h5 b/tools/h5repack/testfiles/h5repack_shuffle.h5
index d13cca7..c14e2cb 100644
--- a/tools/h5repack/testfiles/h5repack_shuffle.h5
+++ b/tools/h5repack/testfiles/h5repack_shuffle.h5
Binary files differ
diff --git a/tools/h5repack/testfiles/h5repack_soffset.h5 b/tools/h5repack/testfiles/h5repack_soffset.h5
index 89ee99a..2acd867 100644
--- a/tools/h5repack/testfiles/h5repack_soffset.h5
+++ b/tools/h5repack/testfiles/h5repack_soffset.h5
Binary files differ
diff --git a/tools/h5stat/h5stat_gentest.c b/tools/h5stat/h5stat_gentest.c
index 100f5b2..ad7d093 100644
--- a/tools/h5stat/h5stat_gentest.c
+++ b/tools/h5stat/h5stat_gentest.c
@@ -43,7 +43,6 @@
/*
* Generate HDF5 file with latest format with
* NUM_GRPS groups and NUM_ATTRS attributes for the dataset
- *
*/
static void
gen_newgrat_file(const char *fname)
@@ -111,6 +110,10 @@ gen_newgrat_file(const char *fname)
} /* end for */
/* Close dataset, dataspace, datatype, file */
+ if(H5Pclose(fapl) < 0)
+ goto error;
+ if(H5Pclose(fcpl) < 0)
+ goto error;
if(H5Dclose(did) < 0)
goto error;
if(H5Sclose(sid) < 0)
@@ -122,6 +125,8 @@ gen_newgrat_file(const char *fname)
error:
H5E_BEGIN_TRY {
+ H5Pclose(fapl);
+ H5Pclose(fcpl);
H5Aclose(attr_id);
H5Dclose(did);
H5Tclose(tid);
@@ -129,7 +134,6 @@ error:
H5Gclose(gid);
H5Fclose(fid);
} H5E_END_TRY;
-
} /* gen_newgrat_file() */
/*
diff --git a/tools/lib/CMakeLists.txt b/tools/lib/CMakeLists.txt
index 38c84a2..ce1ad34 100644
--- a/tools/lib/CMakeLists.txt
+++ b/tools/lib/CMakeLists.txt
@@ -41,13 +41,8 @@ add_library (${HDF5_TOOLS_LIB_TARGET} STATIC ${H5_TOOLS_LIB_SRCS} ${H5_TOOLS_LIB
TARGET_C_PROPERTIES (${HDF5_TOOLS_LIB_TARGET} STATIC " " " ")
target_link_libraries (${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET})
set_global_variable (HDF5_LIBRARIES_TO_EXPORT "${HDF5_LIBRARIES_TO_EXPORT};${HDF5_TOOLS_LIB_TARGET}")
-H5_SET_LIB_OPTIONS (
- ${HDF5_TOOLS_LIB_TARGET} ${HDF5_TOOLS_LIB_NAME}
- STATIC
- HDF5_TOOLS_LIB_NAME_RELEASE
- HDF5_TOOLS_LIB_NAME_DEBUG
-)
-set_target_properties (${HDF5_TOOLS_LIB_TARGET} PROPERTIES
+H5_SET_LIB_OPTIONS (${HDF5_TOOLS_LIB_TARGET} ${HDF5_TOOLS_LIB_NAME} STATIC)
+set_target_properties (${HDF5_TOOLS_LIB_TARGET} PROPERTIES
FOLDER libraries/tools
INTERFACE_INCLUDE_DIRECTORIES "$<INSTALL_INTERFACE:$<INSTALL_PREFIX>/include>"
)
@@ -59,13 +54,8 @@ if (BUILD_SHARED_LIBS)
TARGET_C_PROPERTIES (${HDF5_TOOLS_LIBSH_TARGET} SHARED " " " ")
target_link_libraries (${HDF5_TOOLS_LIBSH_TARGET} ${HDF5_LIBSH_TARGET})
set_global_variable (HDF5_LIBRARIES_TO_EXPORT "${HDF5_LIBRARIES_TO_EXPORT};${HDF5_TOOLS_LIBSH_TARGET}")
- H5_SET_LIB_OPTIONS (
- ${HDF5_TOOLS_LIBSH_TARGET} ${HDF5_TOOLS_LIB_NAME}
- SHARED
- HDF5_TOOLS_LIB_NAME_RELEASE
- HDF5_TOOLS_LIB_NAME_DEBUG
- )
- set_target_properties (${HDF5_TOOLS_LIBSH_TARGET} PROPERTIES
+ H5_SET_LIB_OPTIONS (${HDF5_TOOLS_LIBSH_TARGET} ${HDF5_TOOLS_LIB_NAME} SHARED ${HDF5_TOOLS_PACKAGE_SOVERSION})
+ set_target_properties (${HDF5_TOOLS_LIBSH_TARGET} PROPERTIES
FOLDER libraries/tools
COMPILE_DEFINITIONS "H5_BUILT_AS_DYNAMIC_LIB"
INTERFACE_INCLUDE_DIRECTORIES "$<INSTALL_INTERFACE:$<INSTALL_PREFIX>/include>"
diff --git a/tools/lib/h5diff_dset.c b/tools/lib/h5diff_dset.c
index b8dd0e8..63f1483 100644
--- a/tools/lib/h5diff_dset.c
+++ b/tools/lib/h5diff_dset.c
@@ -71,9 +71,7 @@ hsize_t diff_dataset( hid_t file1_id,
if((dcpl1 = H5Dget_create_plist(did1)) < 0)
goto error;
if((dcpl2 = H5Dget_create_plist(did2)) < 0)
- {
goto error;
- }
/*-------------------------------------------------------------------------
* check if the dataset creation property list has filters that
@@ -191,6 +189,10 @@ hsize_t diff_datasetid( hid_t did1,
hid_t f_tid2=-1;
hid_t m_tid1=-1;
hid_t m_tid2=-1;
+ hid_t dcpl1 = -1;
+ hid_t dcpl2 = -1;
+ H5D_layout_t stl1 = -1;
+ H5D_layout_t stl2 = -1;
size_t m_size1;
size_t m_size2;
H5T_sign_t sign1;
@@ -260,6 +262,21 @@ hsize_t diff_datasetid( hid_t did1,
goto error;
}
+
+ /*-------------------------------------------------------------------------
+ * get the storage layout type
+ *-------------------------------------------------------------------------
+ */
+ if((dcpl1 = H5Dget_create_plist(did1)) < 0)
+ goto error;
+ if((dcpl2 = H5Dget_create_plist(did2)) < 0)
+ goto error;
+
+ if((stl1 = H5Pget_layout(dcpl1)) < 0)
+ goto error;
+ if((stl2 = H5Pget_layout(dcpl2)) < 0)
+ goto error;
+
/*-------------------------------------------------------------------------
* check for empty datasets
*-------------------------------------------------------------------------
@@ -271,10 +288,18 @@ hsize_t diff_datasetid( hid_t did1,
if (storage_size1==0 || storage_size2==0)
{
- if ( (options->m_verbose||options->m_list_not_cmp) && obj1_name && obj2_name)
- parallel_print("Not comparable: <%s> or <%s> is an empty dataset\n", obj1_name, obj2_name);
- can_compare=0;
- options->not_cmp=1;
+ if (stl1==H5D_VIRTUAL || stl2==H5D_VIRTUAL)
+ {
+ if ( (options->m_verbose||options->m_list_not_cmp) && obj1_name && obj2_name)
+ parallel_print("Warning: <%s> or <%s> is a virtual dataset\n", obj1_name, obj2_name);
+ }
+ else
+ {
+ if ( (options->m_verbose||options->m_list_not_cmp) && obj1_name && obj2_name)
+ parallel_print("Not comparable: <%s> or <%s> is an empty dataset\n", obj1_name, obj2_name);
+ can_compare=0;
+ options->not_cmp=1;
+ }
}
/*-------------------------------------------------------------------------
@@ -329,7 +354,7 @@ hsize_t diff_datasetid( hid_t did1,
parallel_print("Not comparable: <%s> has sign %s ", obj1_name, get_sign(sign1));
parallel_print("and <%s> has sign %s\n", obj2_name, get_sign(sign2));
}
-
+
can_compare=0;
options->not_cmp=1;
}
@@ -369,7 +394,7 @@ hsize_t diff_datasetid( hid_t did1,
h5difftrace("upgrade the smaller memory size?\n");
if (FAIL == match_up_memsize (f_tid1, f_tid2,
- &m_tid1, &m_tid2,
+ &m_tid1, &m_tid2,
&m_size1, &m_size2))
goto error;
diff --git a/tools/lib/h5tools.h b/tools/lib/h5tools.h
index d2e3ea6..cec3b9d 100644
--- a/tools/lib/h5tools.h
+++ b/tools/lib/h5tools.h
@@ -510,7 +510,7 @@ typedef struct h5tools_context_t {
hsize_t size_last_dim; /*the size of the last dimension,
*needed so we can break after each
*row */
- int indent_level; /*the number of times we need some
+ int indent_level; /*the number of times we need some
*extra indentation */
int default_indent_level; /*this is used when the indent level gets changed */
hsize_t acc[H5S_MAX_RANK]; /* accumulator position */
diff --git a/tools/lib/h5tools_dump.c b/tools/lib/h5tools_dump.c
index 1876e4f..5fb35bf 100644
--- a/tools/lib/h5tools_dump.c
+++ b/tools/lib/h5tools_dump.c
@@ -1359,7 +1359,7 @@ h5tools_display_simple_subset(FILE *stream, const h5tool_format_t *info, h5tools
if (ctx->ndims > 2) {
for (i = 0; i < (size_t) ctx->ndims - 2; i++) {
- max_start[i] = temp_start[i] + sset->count.data[i];
+ max_start[i] = temp_start[i] + sset->count.data[i] * sset->stride.data[i];
temp_count[i] = 1;
}
}
@@ -1401,14 +1401,10 @@ h5tools_display_simple_subset(FILE *stream, const h5tool_format_t *info, h5tools
/* increment start dimension */
do {
reset_dim = 0;
- temp_start[current_outer_dim]++;
+ temp_start[current_outer_dim] += sset->stride.data[current_outer_dim];
if (temp_start[current_outer_dim] >= max_start[current_outer_dim]) {
temp_start[current_outer_dim] = sset->start.data[current_outer_dim];
- /* consider block */
- if (sset->block.data[current_outer_dim] > 1)
- temp_start[current_outer_dim]++;
-
current_outer_dim--;
reset_dim = 1;
}
@@ -2869,7 +2865,7 @@ h5tools_dump_oid(FILE *stream, const h5tool_format_t *info,
*-------------------------------------------------------------------------
*/
static void
-h5tools_print_virtual_selection(hid_t vspace,
+h5tools_print_virtual_selection(hid_t vspace,
FILE *stream, const h5tool_format_t *info,
h5tools_context_t *ctx/*in,out*/,
h5tools_str_t *buffer/*string into which to render */,
@@ -3308,175 +3304,176 @@ h5tools_dump_dcpl(FILE *stream, const h5tool_format_t *info,
* FILTERS
*-------------------------------------------------------------------------
*/
-
+ if (H5D_VIRTUAL != stl) {
ctx->need_prefix = TRUE;
- h5tools_simple_prefix(stream, info, ctx, curr_pos, 0);
-
- h5tools_str_reset(&buffer);
- h5tools_str_append(&buffer, "%s %s", FILTERS, BEGIN);
- h5tools_render_element(stream, info, ctx, &buffer, &curr_pos, (size_t)ncols, (hsize_t)0, (hsize_t)0);
+ h5tools_simple_prefix(stream, info, ctx, curr_pos, 0);
- ctx->indent_level++;
+ h5tools_str_reset(&buffer);
+ h5tools_str_append(&buffer, "%s %s", FILTERS, BEGIN);
+ h5tools_render_element(stream, info, ctx, &buffer, &curr_pos, (size_t)ncols, (hsize_t)0, (hsize_t)0);
- if(nfilters) {
- for(i = 0; i < nfilters; i++) {
- cd_nelmts = NELMTS(cd_values);
- filtn = H5Pget_filter2(dcpl_id, (unsigned)i, &filt_flags, &cd_nelmts,
- cd_values, sizeof(f_name), f_name, NULL);
+ ctx->indent_level++;
- if(filtn < 0)
- continue; /* nothing to print for invalid filter */
+ if(nfilters) {
+ for(i = 0; i < nfilters; i++) {
+ cd_nelmts = NELMTS(cd_values);
+ filtn = H5Pget_filter2(dcpl_id, (unsigned)i, &filt_flags, &cd_nelmts,
+ cd_values, sizeof(f_name), f_name, NULL);
- ctx->need_prefix = TRUE;
- h5tools_simple_prefix(stream, info, ctx, curr_pos, 0);
+ if(filtn < 0)
+ continue; /* nothing to print for invalid filter */
- h5tools_str_reset(&buffer);
- switch(filtn) {
- case H5Z_FILTER_DEFLATE:
- h5tools_str_append(&buffer, "%s %s %s %d %s", DEFLATE, BEGIN, DEFLATE_LEVEL, cd_values[0], END);
- h5tools_render_element(stream, info, ctx, &buffer, &curr_pos, (size_t)ncols, (hsize_t)0, (hsize_t)0);
- break;
- case H5Z_FILTER_SHUFFLE:
- h5tools_str_append(&buffer, "%s", SHUFFLE);
- h5tools_render_element(stream, info, ctx, &buffer, &curr_pos, (size_t)ncols, (hsize_t)0, (hsize_t)0);
- break;
- case H5Z_FILTER_FLETCHER32:
- h5tools_str_append(&buffer, "%s", FLETCHER32);
- h5tools_render_element(stream, info, ctx, &buffer, &curr_pos, (size_t)ncols, (hsize_t)0, (hsize_t)0);
- break;
- case H5Z_FILTER_SZIP:
- szip_options_mask = cd_values[0];;
- szip_pixels_per_block = cd_values[1];
-
- h5tools_str_append(&buffer, "%s %s", SZIP, BEGIN);
- h5tools_render_element(stream, info, ctx, &buffer, &curr_pos, (size_t)ncols, (hsize_t)0, (hsize_t)0);
+ ctx->need_prefix = TRUE;
+ h5tools_simple_prefix(stream, info, ctx, curr_pos, 0);
- ctx->indent_level++;
+ h5tools_str_reset(&buffer);
+ switch(filtn) {
+ case H5Z_FILTER_DEFLATE:
+ h5tools_str_append(&buffer, "%s %s %s %d %s", DEFLATE, BEGIN, DEFLATE_LEVEL, cd_values[0], END);
+ h5tools_render_element(stream, info, ctx, &buffer, &curr_pos, (size_t)ncols, (hsize_t)0, (hsize_t)0);
+ break;
+ case H5Z_FILTER_SHUFFLE:
+ h5tools_str_append(&buffer, "%s", SHUFFLE);
+ h5tools_render_element(stream, info, ctx, &buffer, &curr_pos, (size_t)ncols, (hsize_t)0, (hsize_t)0);
+ break;
+ case H5Z_FILTER_FLETCHER32:
+ h5tools_str_append(&buffer, "%s", FLETCHER32);
+ h5tools_render_element(stream, info, ctx, &buffer, &curr_pos, (size_t)ncols, (hsize_t)0, (hsize_t)0);
+ break;
+ case H5Z_FILTER_SZIP:
+ szip_options_mask = cd_values[0];;
+ szip_pixels_per_block = cd_values[1];
- ctx->need_prefix = TRUE;
- h5tools_simple_prefix(stream, info, ctx, curr_pos, 0);
+ h5tools_str_append(&buffer, "%s %s", SZIP, BEGIN);
+ h5tools_render_element(stream, info, ctx, &buffer, &curr_pos, (size_t)ncols, (hsize_t)0, (hsize_t)0);
- h5tools_str_reset(&buffer);
- h5tools_str_append(&buffer, "PIXELS_PER_BLOCK %d", szip_pixels_per_block);
- h5tools_render_element(stream, info, ctx, &buffer, &curr_pos, (size_t)ncols, (hsize_t)0, (hsize_t)0);
+ ctx->indent_level++;
- ctx->need_prefix = TRUE;
- h5tools_simple_prefix(stream, info, ctx, curr_pos, 0);
+ ctx->need_prefix = TRUE;
+ h5tools_simple_prefix(stream, info, ctx, curr_pos, 0);
- h5tools_str_reset(&buffer);
- if(szip_options_mask & H5_SZIP_CHIP_OPTION_MASK)
- h5tools_str_append(&buffer, "MODE %s", "HARDWARE");
- else if(szip_options_mask & H5_SZIP_ALLOW_K13_OPTION_MASK)
- h5tools_str_append(&buffer, "MODE %s", "K13");
- h5tools_render_element(stream, info, ctx, &buffer, &curr_pos, (size_t)ncols, (hsize_t)0, (hsize_t)0);
+ h5tools_str_reset(&buffer);
+ h5tools_str_append(&buffer, "PIXELS_PER_BLOCK %d", szip_pixels_per_block);
+ h5tools_render_element(stream, info, ctx, &buffer, &curr_pos, (size_t)ncols, (hsize_t)0, (hsize_t)0);
- ctx->need_prefix = TRUE;
- h5tools_simple_prefix(stream, info, ctx, curr_pos, 0);
+ ctx->need_prefix = TRUE;
+ h5tools_simple_prefix(stream, info, ctx, curr_pos, 0);
- h5tools_str_reset(&buffer);
- if(szip_options_mask & H5_SZIP_EC_OPTION_MASK)
- h5tools_str_append(&buffer, "CODING %s", "ENTROPY");
- else if(szip_options_mask & H5_SZIP_NN_OPTION_MASK)
- h5tools_str_append(&buffer, "CODING %s", "NEAREST NEIGHBOUR");
- h5tools_render_element(stream, info, ctx, &buffer, &curr_pos, (size_t)ncols, (hsize_t)0, (hsize_t)0);
+ h5tools_str_reset(&buffer);
+ if(szip_options_mask & H5_SZIP_CHIP_OPTION_MASK)
+ h5tools_str_append(&buffer, "MODE %s", "HARDWARE");
+ else if(szip_options_mask & H5_SZIP_ALLOW_K13_OPTION_MASK)
+ h5tools_str_append(&buffer, "MODE %s", "K13");
+ h5tools_render_element(stream, info, ctx, &buffer, &curr_pos, (size_t)ncols, (hsize_t)0, (hsize_t)0);
- ctx->need_prefix = TRUE;
- h5tools_simple_prefix(stream, info, ctx, curr_pos, 0);
+ ctx->need_prefix = TRUE;
+ h5tools_simple_prefix(stream, info, ctx, curr_pos, 0);
- h5tools_str_reset(&buffer);
- if(szip_options_mask & H5_SZIP_LSB_OPTION_MASK)
- h5tools_str_append(&buffer, "BYTE_ORDER %s", "LSB");
- else if(szip_options_mask & H5_SZIP_MSB_OPTION_MASK)
- h5tools_str_append(&buffer, "BYTE_ORDER %s", "MSB");
- h5tools_render_element(stream, info, ctx, &buffer, &curr_pos, (size_t)ncols, (hsize_t)0, (hsize_t)0);
+ h5tools_str_reset(&buffer);
+ if(szip_options_mask & H5_SZIP_EC_OPTION_MASK)
+ h5tools_str_append(&buffer, "CODING %s", "ENTROPY");
+ else if(szip_options_mask & H5_SZIP_NN_OPTION_MASK)
+ h5tools_str_append(&buffer, "CODING %s", "NEAREST NEIGHBOUR");
+ h5tools_render_element(stream, info, ctx, &buffer, &curr_pos, (size_t)ncols, (hsize_t)0, (hsize_t)0);
- if(szip_options_mask & H5_SZIP_RAW_OPTION_MASK) {
ctx->need_prefix = TRUE;
h5tools_simple_prefix(stream, info, ctx, curr_pos, 0);
h5tools_str_reset(&buffer);
- h5tools_str_append(&buffer, "HEADER %s", "RAW");
+ if(szip_options_mask & H5_SZIP_LSB_OPTION_MASK)
+ h5tools_str_append(&buffer, "BYTE_ORDER %s", "LSB");
+ else if(szip_options_mask & H5_SZIP_MSB_OPTION_MASK)
+ h5tools_str_append(&buffer, "BYTE_ORDER %s", "MSB");
h5tools_render_element(stream, info, ctx, &buffer, &curr_pos, (size_t)ncols, (hsize_t)0, (hsize_t)0);
- }
- ctx->indent_level--;
+ if(szip_options_mask & H5_SZIP_RAW_OPTION_MASK) {
+ ctx->need_prefix = TRUE;
+ h5tools_simple_prefix(stream, info, ctx, curr_pos, 0);
- ctx->need_prefix = TRUE;
- h5tools_simple_prefix(stream, info, ctx, curr_pos, 0);
+ h5tools_str_reset(&buffer);
+ h5tools_str_append(&buffer, "HEADER %s", "RAW");
+ h5tools_render_element(stream, info, ctx, &buffer, &curr_pos, (size_t)ncols, (hsize_t)0, (hsize_t)0);
+ }
- h5tools_str_reset(&buffer);
- h5tools_str_append(&buffer, "%s", END);
- h5tools_render_element(stream, info, ctx, &buffer, &curr_pos, (size_t)ncols, (hsize_t)0, (hsize_t)0);
- break;
- case H5Z_FILTER_NBIT:
- h5tools_str_append(&buffer, "%s", NBIT);
- h5tools_render_element(stream, info, ctx, &buffer, &curr_pos, (size_t)ncols, (hsize_t)0, (hsize_t)0);
- break;
- case H5Z_FILTER_SCALEOFFSET:
- h5tools_str_append(&buffer, "%s %s %s %d %s", SCALEOFFSET, BEGIN, SCALEOFFSET_MINBIT, cd_values[0], END);
- h5tools_render_element(stream, info, ctx, &buffer, &curr_pos, (size_t)ncols, (hsize_t)0, (hsize_t)0);
- break;
- default:
- h5tools_str_append(&buffer, "%s %s", "USER_DEFINED_FILTER", BEGIN);
- h5tools_render_element(stream, info, ctx, &buffer, &curr_pos, (size_t)ncols, (hsize_t)0, (hsize_t)0);
+ ctx->indent_level--;
- ctx->indent_level++;
+ ctx->need_prefix = TRUE;
+ h5tools_simple_prefix(stream, info, ctx, curr_pos, 0);
- ctx->need_prefix = TRUE;
- h5tools_simple_prefix(stream, info, ctx, curr_pos, 0);
+ h5tools_str_reset(&buffer);
+ h5tools_str_append(&buffer, "%s", END);
+ h5tools_render_element(stream, info, ctx, &buffer, &curr_pos, (size_t)ncols, (hsize_t)0, (hsize_t)0);
+ break;
+ case H5Z_FILTER_NBIT:
+ h5tools_str_append(&buffer, "%s", NBIT);
+ h5tools_render_element(stream, info, ctx, &buffer, &curr_pos, (size_t)ncols, (hsize_t)0, (hsize_t)0);
+ break;
+ case H5Z_FILTER_SCALEOFFSET:
+ h5tools_str_append(&buffer, "%s %s %s %d %s", SCALEOFFSET, BEGIN, SCALEOFFSET_MINBIT, cd_values[0], END);
+ h5tools_render_element(stream, info, ctx, &buffer, &curr_pos, (size_t)ncols, (hsize_t)0, (hsize_t)0);
+ break;
+ default:
+ h5tools_str_append(&buffer, "%s %s", "USER_DEFINED_FILTER", BEGIN);
+ h5tools_render_element(stream, info, ctx, &buffer, &curr_pos, (size_t)ncols, (hsize_t)0, (hsize_t)0);
- h5tools_str_reset(&buffer);
- h5tools_str_append(&buffer, "FILTER_ID %d", filtn);
- h5tools_render_element(stream, info, ctx, &buffer, &curr_pos, (size_t)ncols, (hsize_t)0, (hsize_t)0);
+ ctx->indent_level++;
- if(f_name[0] != '\0') {
ctx->need_prefix = TRUE;
h5tools_simple_prefix(stream, info, ctx, curr_pos, 0);
h5tools_str_reset(&buffer);
- h5tools_str_append(&buffer, "COMMENT %s", f_name);
+ h5tools_str_append(&buffer, "FILTER_ID %d", filtn);
h5tools_render_element(stream, info, ctx, &buffer, &curr_pos, (size_t)ncols, (hsize_t)0, (hsize_t)0);
- }
- if (cd_nelmts) {
+
+ if(f_name[0] != '\0') {
+ ctx->need_prefix = TRUE;
+ h5tools_simple_prefix(stream, info, ctx, curr_pos, 0);
+
+ h5tools_str_reset(&buffer);
+ h5tools_str_append(&buffer, "COMMENT %s", f_name);
+ h5tools_render_element(stream, info, ctx, &buffer, &curr_pos, (size_t)ncols, (hsize_t)0, (hsize_t)0);
+ }
+ if (cd_nelmts) {
+ ctx->need_prefix = TRUE;
+ h5tools_simple_prefix(stream, info, ctx, curr_pos, 0);
+
+ h5tools_str_reset(&buffer);
+ h5tools_str_append(&buffer, "%s %s ","PARAMS", BEGIN);
+ for (j=0; j<cd_nelmts; j++)
+ h5tools_str_append(&buffer, "%d ", cd_values[j]);
+ h5tools_str_append(&buffer, "%s", END);
+ h5tools_render_element(stream, info, ctx, &buffer, &curr_pos, (size_t)ncols, (hsize_t)0, (hsize_t)0);
+ }
+ ctx->indent_level--;
+
ctx->need_prefix = TRUE;
h5tools_simple_prefix(stream, info, ctx, curr_pos, 0);
h5tools_str_reset(&buffer);
- h5tools_str_append(&buffer, "%s %s ","PARAMS", BEGIN);
- for (j=0; j<cd_nelmts; j++)
- h5tools_str_append(&buffer, "%d ", cd_values[j]);
- h5tools_str_append(&buffer, "%s", END);
+ h5tools_str_append(&buffer, "%s",END);
h5tools_render_element(stream, info, ctx, &buffer, &curr_pos, (size_t)ncols, (hsize_t)0, (hsize_t)0);
- }
- ctx->indent_level--;
+ break;
+ }/*switch*/
+ } /*i*/
+ }/*nfilters*/
+ else {
- ctx->need_prefix = TRUE;
- h5tools_simple_prefix(stream, info, ctx, curr_pos, 0);
+ ctx->need_prefix = TRUE;
+ h5tools_simple_prefix(stream, info, ctx, curr_pos, 0);
- h5tools_str_reset(&buffer);
- h5tools_str_append(&buffer, "%s",END);
- h5tools_render_element(stream, info, ctx, &buffer, &curr_pos, (size_t)ncols, (hsize_t)0, (hsize_t)0);
- break;
- }/*switch*/
- } /*i*/
- }/*nfilters*/
- else {
+ h5tools_str_reset(&buffer);
+ h5tools_str_append(&buffer, "NONE");
+ h5tools_render_element(stream, info, ctx, &buffer, &curr_pos, (size_t)ncols, (hsize_t)0, (hsize_t)0);
+ }
+ ctx->indent_level--;
ctx->need_prefix = TRUE;
h5tools_simple_prefix(stream, info, ctx, curr_pos, 0);
h5tools_str_reset(&buffer);
- h5tools_str_append(&buffer, "NONE");
+ h5tools_str_append(&buffer, "%s",END);
h5tools_render_element(stream, info, ctx, &buffer, &curr_pos, (size_t)ncols, (hsize_t)0, (hsize_t)0);
- }
- ctx->indent_level--;
-
- ctx->need_prefix = TRUE;
- h5tools_simple_prefix(stream, info, ctx, curr_pos, 0);
-
- h5tools_str_reset(&buffer);
- h5tools_str_append(&buffer, "%s",END);
- h5tools_render_element(stream, info, ctx, &buffer, &curr_pos, (size_t)ncols, (hsize_t)0, (hsize_t)0);
+ } /* end if (H5D_VIRTUAL != stl) */
/*-------------------------------------------------------------------------
* FILLVALUE
@@ -3521,12 +3518,22 @@ h5tools_dump_dcpl(FILE *stream, const h5tool_format_t *info,
h5tools_str_reset(&buffer);
h5tools_str_append(&buffer, "%s ", "VALUE ");
H5Pfill_value_defined(dcpl_id, &fvstatus);
- if(fvstatus == H5D_FILL_VALUE_UNDEFINED)
- h5tools_str_append(&buffer, "%s", "H5D_FILL_VALUE_UNDEFINED");
- else {
- ctx->indent_level--;
- h5tools_print_fill_value(&buffer, info, ctx, dcpl_id, type_id, obj_id);
- ctx->indent_level++;
+ switch (fvstatus) {
+ case H5D_FILL_VALUE_UNDEFINED:
+ h5tools_str_append(&buffer, "%s", "H5D_FILL_VALUE_UNDEFINED");
+ break;
+ case H5D_FILL_VALUE_DEFAULT:
+ h5tools_str_append(&buffer, "%s", "H5D_FILL_VALUE_DEFAULT");
+ break;
+ case H5D_FILL_VALUE_USER_DEFINED:
+ ctx->indent_level--;
+ h5tools_print_fill_value(&buffer, info, ctx, dcpl_id, type_id, obj_id);
+ ctx->indent_level++;
+ break;
+ case H5D_FILL_VALUE_ERROR:
+ default:
+ HDassert(0);
+ break;
}
h5tools_render_element(stream, info, ctx, &buffer, &curr_pos, (size_t)ncols, (hsize_t)0, (hsize_t)0);
ctx->indent_level--;
@@ -3542,46 +3549,48 @@ h5tools_dump_dcpl(FILE *stream, const h5tool_format_t *info,
* ALLOCATION_TIME
*-------------------------------------------------------------------------
*/
- ctx->need_prefix = TRUE;
- h5tools_simple_prefix(stream, info, ctx, curr_pos, 0);
+ if (H5D_VIRTUAL != stl) {
+ ctx->need_prefix = TRUE;
+ h5tools_simple_prefix(stream, info, ctx, curr_pos, 0);
- h5tools_str_reset(&buffer);
- h5tools_str_append(&buffer, "ALLOCATION_TIME %s", BEGIN);
- h5tools_render_element(stream, info, ctx, &buffer, &curr_pos, (size_t)ncols, (hsize_t)0, (hsize_t)0);
+ h5tools_str_reset(&buffer);
+ h5tools_str_append(&buffer, "ALLOCATION_TIME %s", BEGIN);
+ h5tools_render_element(stream, info, ctx, &buffer, &curr_pos, (size_t)ncols, (hsize_t)0, (hsize_t)0);
- ctx->indent_level++;
+ ctx->indent_level++;
- ctx->need_prefix = TRUE;
- h5tools_simple_prefix(stream, info, ctx, curr_pos, 0);
+ ctx->need_prefix = TRUE;
+ h5tools_simple_prefix(stream, info, ctx, curr_pos, 0);
- h5tools_str_reset(&buffer);
- H5Pget_alloc_time(dcpl_id, &at);
- switch(at) {
- case H5D_ALLOC_TIME_EARLY:
- h5tools_str_append(&buffer, "%s", "H5D_ALLOC_TIME_EARLY");
- break;
- case H5D_ALLOC_TIME_INCR:
- h5tools_str_append(&buffer, "%s", "H5D_ALLOC_TIME_INCR");
- break;
- case H5D_ALLOC_TIME_LATE:
- h5tools_str_append(&buffer, "%s", "H5D_ALLOC_TIME_LATE");
- break;
- case H5D_ALLOC_TIME_ERROR:
- case H5D_ALLOC_TIME_DEFAULT:
- default:
- HDassert(0);
- break;
- }
- h5tools_render_element(stream, info, ctx, &buffer, &curr_pos, (size_t)ncols, (hsize_t)0, (hsize_t)0);
+ h5tools_str_reset(&buffer);
+ H5Pget_alloc_time(dcpl_id, &at);
+ switch(at) {
+ case H5D_ALLOC_TIME_EARLY:
+ h5tools_str_append(&buffer, "%s", "H5D_ALLOC_TIME_EARLY");
+ break;
+ case H5D_ALLOC_TIME_INCR:
+ h5tools_str_append(&buffer, "%s", "H5D_ALLOC_TIME_INCR");
+ break;
+ case H5D_ALLOC_TIME_LATE:
+ h5tools_str_append(&buffer, "%s", "H5D_ALLOC_TIME_LATE");
+ break;
+ case H5D_ALLOC_TIME_ERROR:
+ case H5D_ALLOC_TIME_DEFAULT:
+ default:
+ HDassert(0);
+ break;
+ }
+ h5tools_render_element(stream, info, ctx, &buffer, &curr_pos, (size_t)ncols, (hsize_t)0, (hsize_t)0);
- ctx->indent_level--;
+ ctx->indent_level--;
- ctx->need_prefix = TRUE;
- h5tools_simple_prefix(stream, info, ctx, curr_pos, 0);
+ ctx->need_prefix = TRUE;
+ h5tools_simple_prefix(stream, info, ctx, curr_pos, 0);
- h5tools_str_reset(&buffer);
- h5tools_str_append(&buffer, "%s", END);
- h5tools_render_element(stream, info, ctx, &buffer, &curr_pos, (size_t)ncols, (hsize_t)0, (hsize_t)0);
+ h5tools_str_reset(&buffer);
+ h5tools_str_append(&buffer, "%s", END);
+ h5tools_render_element(stream, info, ctx, &buffer, &curr_pos, (size_t)ncols, (hsize_t)0, (hsize_t)0);
+ } /* end if (H5D_VIRTUAL != stl) */
h5tools_str_close(&buffer);
}
diff --git a/tools/lib/h5tools_str.c b/tools/lib/h5tools_str.c
index bdb82a4..13c6a20 100644
--- a/tools/lib/h5tools_str.c
+++ b/tools/lib/h5tools_str.c
@@ -267,6 +267,9 @@ h5tools_str_fmt(h5tools_str_t *str/*in,out*/, size_t start, const char *fmt)
{
char _temp[1024], *temp = _temp;
+ HDassert(str);
+ HDassert(fmt);
+
/* If the format string is simply "%s" then don't bother doing anything */
if (!HDstrcmp(fmt, "%s"))
return str->s;
diff --git a/tools/lib/h5tools_utils.c b/tools/lib/h5tools_utils.c
index a09a003..b87abf6 100644
--- a/tools/lib/h5tools_utils.c
+++ b/tools/lib/h5tools_utils.c
@@ -177,7 +177,7 @@ warn_msg(const char *fmt, ...)
/*-------------------------------------------------------------------------
* Function: help_ref_msg
*
- * Purpose: Print a message to refer help page
+ * Purpose: Print a message to refer help page
*
* Return: Nothing
*
@@ -224,7 +224,7 @@ get_option(int argc, const char **argv, const char *opts, const struct long_opti
/* check for more flag-like tokens */
if (opt_ind >= argc || argv[opt_ind][0] != '-' || argv[opt_ind][1] == '\0') {
return EOF;
- }
+ }
else if (HDstrcmp(argv[opt_ind], "--") == 0) {
opt_ind++;
return EOF;
@@ -248,10 +248,10 @@ get_option(int argc, const char **argv, const char *opts, const struct long_opti
opt_arg = &arg[len + 1];
}
else if (l_opts[i].has_arg != optional_arg) {
- if (opt_ind < (argc - 1))
+ if (opt_ind < (argc - 1))
if (argv[opt_ind + 1][0] != '-')
opt_arg = argv[++opt_ind];
- }
+ }
else if (l_opts[i].has_arg == require_arg) {
if (opt_err)
HDfprintf(rawerrorstream,
@@ -262,7 +262,7 @@ get_option(int argc, const char **argv, const char *opts, const struct long_opti
}
else
opt_arg = NULL;
- }
+ }
else {
if (arg[len] == '=') {
if (opt_err)
@@ -288,7 +288,7 @@ get_option(int argc, const char **argv, const char *opts, const struct long_opti
opt_ind++;
sp = 1;
- }
+ }
else {
register char *cp; /* pointer into current token */
@@ -313,7 +313,7 @@ get_option(int argc, const char **argv, const char *opts, const struct long_opti
if (argv[opt_ind][sp + 1] != '\0') {
/* flag value is rest of current token */
opt_arg = &argv[opt_ind++][sp + 1];
- }
+ }
else if (++opt_ind >= argc) {
if (opt_err)
HDfprintf(rawerrorstream,
@@ -321,7 +321,7 @@ get_option(int argc, const char **argv, const char *opts, const struct long_opti
argv[0], opt_opt);
opt_opt = '?';
- }
+ }
else {
/* flag value is next token */
opt_arg = argv[opt_ind++];
@@ -334,8 +334,13 @@ get_option(int argc, const char **argv, const char *opts, const struct long_opti
/* check the next argument */
opt_ind++;
/* we do have an extra argument, check if not last */
- if ( argv[opt_ind][0] != '-' && (opt_ind+1) < argc ) {
- opt_arg = argv[opt_ind++];
+ if ( (opt_ind+1) < argc ) {
+ if ( argv[opt_ind][0] != '-' ) {
+ opt_arg = argv[opt_ind++];
+ }
+ else {
+ opt_arg = NULL;
+ }
}
else {
opt_arg = NULL;
@@ -376,7 +381,7 @@ indentation(int x)
if (x < h5tools_nCols) {
while (x-- > 0)
PRINTVALSTREAM(rawoutstream, " ");
- }
+ }
else {
HDfprintf(rawerrorstream, "error: the indentation exceeds the number of cols.\n");
HDexit(1);
@@ -721,7 +726,7 @@ tmpfile(void)
/*-------------------------------------------------------------------------
* Function: H5tools_get_symlink_info
*
- * Purpose: Get symbolic link (soft, external) info and its target object type
+ * Purpose: Get symbolic link (soft, external) info and its target object type
(dataset, group, named datatype) and path, if exist
*
* Patameters:
@@ -729,9 +734,9 @@ tmpfile(void)
* - [IN] linkpath : link path
* - [OUT] link_info: returning target object info (h5tool_link_info_t)
*
- * Return:
- * 2 : given pathname is object
- * 1 : Succed to get link info.
+ * Return:
+ * 2 : given pathname is object
+ * 1 : Succed to get link info.
* 0 : Detected as a dangling link
* -1 : H5 API failed.
*
@@ -795,7 +800,7 @@ H5tools_get_symlink_info(hid_t file_id, const char * linkpath, h5tool_link_info_
} /* end if */
/*-----------------------------------------------------
- * if link type is external link use different lapl to
+ * if link type is external link use different lapl to
* follow object in other file
*/
if(link_info->linfo.type == H5L_TYPE_EXTERNAL) {
@@ -816,7 +821,7 @@ H5tools_get_symlink_info(hid_t file_id, const char * linkpath, h5tool_link_info_
*/
/* check if target object exist */
l_ret = H5Oexists_by_name(file_id, linkpath, lapl);
-
+
/* detect dangling link */
if(l_ret == FALSE) {
ret = 0;
@@ -824,7 +829,7 @@ H5tools_get_symlink_info(hid_t file_id, const char * linkpath, h5tool_link_info_
} /* end if */
/* function failed */
else if(l_ret < 0)
- goto out;
+ goto out;
/* get target object info */
if(H5Oget_info_by_name(file_id, linkpath, &trg_oinfo, lapl) < 0) {
@@ -889,8 +894,8 @@ int h5tools_getstatus(void)
}
/*-----------------------------------------------------------
- * PURPOSE :
- * if environment variable H5TOOLS_BUFSIZE is set,
+ * PURPOSE :
+ * if environment variable H5TOOLS_BUFSIZE is set,
* update H5TOOLS_BUFSIZE and H5TOOLS_MALLOCSIZE from the env
* This can be called from each tools main() as part of initial act.
* Note: this is more of debugging purpose for now.
@@ -907,11 +912,11 @@ int h5tools_getenv_update_hyperslab_bufsize(void)
hyperslab_bufsize_mb = HDstrtol(env_str, (char**)NULL, 10);
if (errno != 0 || hyperslab_bufsize_mb <= 0)
{
-
- /* TODO: later when pubilshed
+
+ /* TODO: later when pubilshed
HDfprintf(rawerrorstream,"Error: Invalid environment variable \"H5TOOLS_BUFSIZE\" : %s\n", env_str);
*/
-
+
goto error;
}
diff --git a/tools/misc/h5debug.c b/tools/misc/h5debug.c
index 282f386..b35a6d0 100644
--- a/tools/misc/h5debug.c
+++ b/tools/misc/h5debug.c
@@ -121,6 +121,18 @@ get_H5B2_class(const uint8_t *sig)
cls = H5A_BT2_CORDER;
break;
+ case H5B2_CDSET_ID:
+ cls = H5D_BT2;
+ break;
+
+ case H5B2_CDSET_FILT_ID:
+ cls = H5D_BT2_FILT;
+ break;
+
+ case H5B2_TEST2_ID:
+ cls = H5B2_TEST2;
+ break;
+
case H5B2_NUM_BTREE_ID:
default:
HDfprintf(stderr, "Unknown v2 B-tree subtype %u\n", (unsigned)(subtype));
@@ -157,6 +169,14 @@ get_H5EA_class(const uint8_t *sig)
cls = H5EA_CLS_TEST;
break;
+ case H5EA_CLS_CHUNK_ID:
+ cls = H5EA_CLS_CHUNK;
+ break;
+
+ case H5EA_CLS_FILT_CHUNK_ID:
+ cls = H5EA_CLS_FILT_CHUNK;
+ break;
+
case H5EA_NUM_CLS_ID:
default:
HDfprintf(stderr, "Unknown extensible array class %u\n", (unsigned)(clsid));
@@ -193,6 +213,14 @@ get_H5FA_class(const uint8_t *sig)
cls = H5FA_CLS_TEST;
break;
+ case H5FA_CLS_CHUNK_ID:
+ cls = H5FA_CLS_CHUNK;
+ break;
+
+ case H5FA_CLS_FILT_CHUNK_ID:
+ cls = H5FA_CLS_FILT_CHUNK;
+ break;
+
case H5FA_NUM_CLS_ID:
default:
HDfprintf(stderr, "Unknown fixed array class %u\n", (unsigned)(clsid));
@@ -302,13 +330,13 @@ main(int argc, char *argv[])
/*
* Debug a local heap.
*/
- status = H5HL_debug(f, H5P_DATASET_XFER_DEFAULT, addr, stdout, 0, VCOL);
+ status = H5HL_debug(f, H5AC_ind_read_dxpl_id, addr, stdout, 0, VCOL);
} else if(!HDmemcmp (sig, H5HG_MAGIC, (size_t)H5_SIZEOF_MAGIC)) {
/*
* Debug a global heap collection.
*/
- status = H5HG_debug (f, H5P_DATASET_XFER_DEFAULT, addr, stdout, 0, VCOL);
+ status = H5HG_debug (f, H5AC_ind_read_dxpl_id, addr, stdout, 0, VCOL);
} else if(!HDmemcmp(sig, H5G_NODE_MAGIC, (size_t)H5_SIZEOF_MAGIC)) {
/*
@@ -322,7 +350,7 @@ main(int argc, char *argv[])
HDfprintf(stderr, "\th5debug <filename> <Symbol table node address> <address of local heap>\n\n");
} /* end if */
- status = H5G_node_debug(f, H5P_DATASET_XFER_DEFAULT, addr, stdout, 0, VCOL, extra);
+ status = H5G_node_debug(f, H5AC_ind_read_dxpl_id, addr, stdout, 0, VCOL, extra);
} else if(!HDmemcmp(sig, H5B_MAGIC, (size_t)H5_SIZEOF_MAGIC)) {
/*
@@ -344,7 +372,7 @@ main(int argc, char *argv[])
HDexit(4);
} /* end if */
- status = H5G_node_debug(f, H5P_DATASET_XFER_DEFAULT, addr, stdout, 0, VCOL, extra);
+ status = H5G_node_debug(f, H5AC_ind_read_dxpl_id, addr, stdout, 0, VCOL, extra);
break;
case H5B_CHUNK_ID:
@@ -382,7 +410,7 @@ main(int argc, char *argv[])
/* Set the last dimension (the element size) to zero */
dim[ndims] = 0;
- status = H5D_btree_debug(f, H5P_DATASET_XFER_DEFAULT, addr, stdout, 0, VCOL, ndims, dim);
+ status = H5D_btree_debug(f, H5AC_ind_read_dxpl_id, addr, stdout, 0, VCOL, ndims, dim);
break;
case H5B_NUM_BTREE_ID:
@@ -398,7 +426,14 @@ main(int argc, char *argv[])
const H5B2_class_t *cls = get_H5B2_class(sig);
HDassert(cls);
- status = H5B2__hdr_debug(f, H5P_DATASET_XFER_DEFAULT, addr, stdout, 0, VCOL, cls, (haddr_t)extra);
+ if((cls == H5D_BT2 || cls == H5D_BT2_FILT) && extra == 0) {
+ HDfprintf(stderr, "ERROR: Need v2 B-tree header address and object header address containing the layout message in order to dump header\n");
+ HDfprintf(stderr, "v2 B-tree hdr usage:\n");
+ HDfprintf(stderr, "\th5debug <filename> <v2 B-tree header address> <object header address>\n");
+ HDexit(4);
+ } /* end if */
+
+ status = H5B2__hdr_debug(f, H5AC_ind_read_dxpl_id, addr, stdout, 0, VCOL, cls, (haddr_t)extra);
} else if(!HDmemcmp(sig, H5B2_INT_MAGIC, (size_t)H5_SIZEOF_MAGIC)) {
/*
@@ -408,7 +443,16 @@ main(int argc, char *argv[])
HDassert(cls);
/* Check for enough valid parameters */
- if(extra == 0 || extra2 == 0 || extra3 == 0) {
+ if((cls == H5D_BT2 || cls == H5D_BT2_FILT) &&
+ (extra == 0 || extra2 == 0 || extra3 == 0 || extra4 == 0)) {
+
+ fprintf(stderr, "ERROR: Need v2 B-tree header address, the node's number of records, depth, and object header address containing the layout message in order to dump internal node\n");
+ fprintf(stderr, "NOTE: Leaf nodes are depth 0, the internal nodes above them are depth 1, etc.\n");
+ fprintf(stderr, "v2 B-tree internal node usage:\n");
+ fprintf(stderr, "\th5debug <filename> <internal node address> <v2 B-tree header address> <number of records> <depth> <object header address>\n");
+ HDexit(4);
+
+ } else if(extra == 0 || extra2 == 0 || extra3 == 0) {
HDfprintf(stderr, "ERROR: Need v2 B-tree header address and the node's number of records and depth in order to dump internal node\n");
HDfprintf(stderr, "NOTE: Leaf nodes are depth 0, the internal nodes above them are depth 1, etc.\n");
HDfprintf(stderr, "v2 B-tree internal node usage:\n");
@@ -416,7 +460,7 @@ main(int argc, char *argv[])
HDexit(4);
} /* end if */
- status = H5B2__int_debug(f, H5P_DATASET_XFER_DEFAULT, addr, stdout, 0, VCOL, cls, extra, (unsigned)extra2, (unsigned)extra3, (haddr_t)extra4);
+ status = H5B2__int_debug(f, H5AC_ind_read_dxpl_id, addr, stdout, 0, VCOL, cls, extra, (unsigned)extra2, (unsigned)extra3, (haddr_t)extra4);
} else if(!HDmemcmp(sig, H5B2_LEAF_MAGIC, (size_t)H5_SIZEOF_MAGIC)) {
/*
@@ -426,20 +470,28 @@ main(int argc, char *argv[])
HDassert(cls);
/* Check for enough valid parameters */
- if(extra == 0 || extra2 == 0) {
+ if((cls == H5D_BT2 || cls == H5D_BT2_FILT) &&
+ (extra == 0 || extra2 == 0 || extra3 == 0 )) {
+
+ fprintf(stderr, "ERROR: Need v2 B-tree header address, number of records, and object header address containing the layout message in order to dump leaf node\n");
+ fprintf(stderr, "v2 B-tree leaf node usage:\n");
+ fprintf(stderr, "\th5debug <filename> <leaf node address> <v2 B-tree header address> <number of records> <object header address>\n");
+ HDexit(4);
+
+ } else if(extra == 0 || extra2 == 0) {
HDfprintf(stderr, "ERROR: Need v2 B-tree header address and number of records in order to dump leaf node\n");
HDfprintf(stderr, "v2 B-tree leaf node usage:\n");
HDfprintf(stderr, "\th5debug <filename> <leaf node address> <v2 B-tree header address> <number of records>\n");
HDexit(4);
} /* end if */
- status = H5B2__leaf_debug(f, H5P_DATASET_XFER_DEFAULT, addr, stdout, 0, VCOL, cls, extra, (unsigned)extra2, (haddr_t)extra3);
+ status = H5B2__leaf_debug(f, H5AC_ind_read_dxpl_id, addr, stdout, 0, VCOL, cls, extra, (unsigned)extra2, (haddr_t)extra3);
} else if(!HDmemcmp(sig, H5HF_HDR_MAGIC, (size_t)H5_SIZEOF_MAGIC)) {
/*
* Debug a fractal heap header.
*/
- status = H5HF_hdr_debug(f, H5P_DATASET_XFER_DEFAULT, addr, stdout, 0, VCOL);
+ status = H5HF_hdr_debug(f, H5AC_ind_read_dxpl_id, addr, stdout, 0, VCOL);
} else if(!HDmemcmp(sig, H5HF_DBLOCK_MAGIC, (size_t)H5_SIZEOF_MAGIC)) {
/*
@@ -454,7 +506,7 @@ main(int argc, char *argv[])
HDexit(4);
} /* end if */
- status = H5HF_dblock_debug(f, H5P_DATASET_XFER_DEFAULT, addr, stdout, 0, VCOL, extra, (size_t)extra2);
+ status = H5HF_dblock_debug(f, H5AC_ind_read_dxpl_id, addr, stdout, 0, VCOL, extra, (size_t)extra2);
} else if(!HDmemcmp(sig, H5HF_IBLOCK_MAGIC, (size_t)H5_SIZEOF_MAGIC)) {
/*
@@ -469,14 +521,14 @@ main(int argc, char *argv[])
HDexit(4);
} /* end if */
- status = H5HF_iblock_debug(f, H5P_DATASET_XFER_DEFAULT, addr, stdout, 0, VCOL, extra, (unsigned)extra2);
+ status = H5HF_iblock_debug(f, H5AC_ind_read_dxpl_id, addr, stdout, 0, VCOL, extra, (unsigned)extra2);
} else if(!HDmemcmp(sig, H5FS_HDR_MAGIC, (size_t)H5_SIZEOF_MAGIC)) {
/*
* Debug a free space header.
*/
- status = H5FS_debug(f, H5P_DATASET_XFER_DEFAULT, addr, stdout, 0, VCOL);
+ status = H5FS_debug(f, H5AC_ind_read_dxpl_id, addr, stdout, 0, VCOL);
} else if(!HDmemcmp(sig, H5FS_SINFO_MAGIC, (size_t)H5_SIZEOF_MAGIC)) {
/*
@@ -491,14 +543,14 @@ main(int argc, char *argv[])
HDexit(4);
} /* end if */
- status = H5FS_sects_debug(f, H5P_DATASET_XFER_DEFAULT, addr, stdout, 0, VCOL, extra, extra2);
+ status = H5FS_sects_debug(f, H5AC_ind_read_dxpl_id, addr, stdout, 0, VCOL, extra, extra2);
} else if(!HDmemcmp(sig, H5SM_TABLE_MAGIC, (size_t)H5_SIZEOF_MAGIC)) {
/*
* Debug shared message master table.
*/
- status = H5SM_table_debug(f, H5P_DATASET_XFER_DEFAULT, addr, stdout, 0, VCOL, (unsigned) UFAIL, (unsigned) UFAIL);
+ status = H5SM_table_debug(f, H5AC_ind_read_dxpl_id, addr, stdout, 0, VCOL, (unsigned) UFAIL, (unsigned) UFAIL);
} else if(!HDmemcmp(sig, H5SM_LIST_MAGIC, (size_t)H5_SIZEOF_MAGIC)) {
/*
@@ -513,7 +565,7 @@ main(int argc, char *argv[])
HDexit(4);
} /* end if */
- status = H5SM_list_debug(f, H5P_DATASET_XFER_DEFAULT, addr, stdout, 0, VCOL, (haddr_t)extra);
+ status = H5SM_list_debug(f, H5AC_ind_read_dxpl_id, addr, stdout, 0, VCOL, (haddr_t)extra);
} else if(!HDmemcmp(sig, H5EA_HDR_MAGIC, (size_t)H5_SIZEOF_MAGIC)) {
/*
@@ -530,7 +582,7 @@ main(int argc, char *argv[])
HDexit(4);
} /* end if */
- status = H5EA__hdr_debug(f, H5P_DATASET_XFER_DEFAULT, addr, stdout, 0, VCOL, cls, extra);
+ status = H5EA__hdr_debug(f, H5AC_ind_read_dxpl_id, addr, stdout, 0, VCOL, cls, extra);
} else if(!HDmemcmp(sig, H5EA_IBLOCK_MAGIC, (size_t)H5_SIZEOF_MAGIC)) {
/*
@@ -547,7 +599,7 @@ main(int argc, char *argv[])
HDexit(4);
} /* end if */
- status = H5EA__iblock_debug(f, H5P_DATASET_XFER_DEFAULT, addr, stdout, 0, VCOL, cls, extra, extra2);
+ status = H5EA__iblock_debug(f, H5AC_ind_read_dxpl_id, addr, stdout, 0, VCOL, cls, extra, extra2);
} else if(!HDmemcmp(sig, H5EA_SBLOCK_MAGIC, (size_t)H5_SIZEOF_MAGIC)) {
/*
@@ -564,7 +616,7 @@ main(int argc, char *argv[])
HDexit(4);
} /* end if */
- status = H5EA__sblock_debug(f, H5P_DATASET_XFER_DEFAULT, addr, stdout, 0, VCOL, cls, extra, (unsigned)extra2, extra3);
+ status = H5EA__sblock_debug(f, H5AC_ind_read_dxpl_id, addr, stdout, 0, VCOL, cls, extra, (unsigned)extra2, extra3);
} else if(!HDmemcmp(sig, H5EA_DBLOCK_MAGIC, (size_t)H5_SIZEOF_MAGIC)) {
/*
@@ -581,7 +633,7 @@ main(int argc, char *argv[])
HDexit(4);
} /* end if */
- status = H5EA__dblock_debug(f, H5P_DATASET_XFER_DEFAULT, addr, stdout, 0, VCOL, cls, extra, (size_t)extra2, extra3);
+ status = H5EA__dblock_debug(f, H5AC_ind_read_dxpl_id, addr, stdout, 0, VCOL, cls, extra, (size_t)extra2, extra3);
} else if(!HDmemcmp(sig, H5FA_HDR_MAGIC, (size_t)H5_SIZEOF_MAGIC)) {
/*
@@ -598,7 +650,7 @@ main(int argc, char *argv[])
HDexit(4);
} /* end if */
- status = H5FA__hdr_debug(f, H5P_DATASET_XFER_DEFAULT, addr, stdout, 0, VCOL, cls, extra);
+ status = H5FA__hdr_debug(f, H5AC_ind_read_dxpl_id, addr, stdout, 0, VCOL, cls, extra);
} else if(!HDmemcmp(sig, H5FA_DBLOCK_MAGIC, (size_t)H5_SIZEOF_MAGIC)) {
/*
@@ -615,21 +667,21 @@ main(int argc, char *argv[])
HDexit(4);
} /* end if */
- status = H5FA__dblock_debug(f, H5P_DATASET_XFER_DEFAULT, addr, stdout, 0, VCOL, cls, extra, extra2);
+ status = H5FA__dblock_debug(f, H5AC_ind_read_dxpl_id, addr, stdout, 0, VCOL, cls, extra, extra2);
} else if(!HDmemcmp(sig, H5O_HDR_MAGIC, (size_t)H5_SIZEOF_MAGIC)) {
/*
* Debug v2 object header (which have signatures).
*/
- status = H5O_debug(f, H5P_DATASET_XFER_DEFAULT, addr, stdout, 0, VCOL);
+ status = H5O_debug(f, H5AC_ind_read_dxpl_id, addr, stdout, 0, VCOL);
} else if(sig[0] == H5O_VERSION_1) {
/*
* This could be a v1 object header. Since they don't have a signature
* it's a somewhat "ify" detection.
*/
- status = H5O_debug(f, H5P_DATASET_XFER_DEFAULT, addr, stdout, 0, VCOL);
+ status = H5O_debug(f, H5AC_ind_read_dxpl_id, addr, stdout, 0, VCOL);
} else {
/*
diff --git a/tools/perform/sio_standalone.h b/tools/perform/sio_standalone.h
index 547a9ee..258eafb 100644
--- a/tools/perform/sio_standalone.h
+++ b/tools/perform/sio_standalone.h
@@ -210,11 +210,11 @@ H5_DLL int HDfprintf (FILE *stream, const char *fmt, ...);
#define HDgetgrgid(G) getgrgid(G)
#define HDgetgrnam(S) getgrnam(S)
#define HDgetgroups(Z,G) getgroups(Z,G)
-#ifdef H5_HAVE_VISUAL_STUDIO
+#ifdef H5_HAVE_WIN32_API
#define HDgetlogin() Wgetlogin()
-#else /* H5_HAVE_VISUAL_STUDIO */
+#else /* H5_HAVE_WIN32_API */
#define HDgetlogin() getlogin()
-#endif /* H5_HAVE_VISUAL_STUDIO */
+#endif /* H5_HAVE_WIN32_API */
#define HDgetpgrp() getpgrp()
#define HDgetpid() getpid()
#define HDgetppid() getppid()
@@ -222,12 +222,12 @@ H5_DLL int HDfprintf (FILE *stream, const char *fmt, ...);
#define HDgetpwuid(U) getpwuid(U)
#define HDgetrusage(X,S) getrusage(X,S)
#define HDgets(S) gets(S)
-#ifdef H5_HAVE_VISUAL_STUDIO
+#ifdef H5_HAVE_WIN32_API
H5_DLL int Wgettimeofday(struct timeval *tv, struct timezone *tz);
#define HDgettimeofday(V,Z) Wgettimeofday(V,Z)
-#else /* H5_HAVE_VISUAL_STUDIO */
+#else /* H5_HAVE_WIN32_API */
#define HDgettimeofday(S,P) gettimeofday(S,P)
-#endif /* H5_HAVE_VISUAL_STUDIO */
+#endif /* H5_HAVE_WIN32_API */
#define HDgetuid() getuid()
#define HDgmtime(T) gmtime(T)
#define HDisalnum(C) isalnum((int)(C)) /*cast for solaris warning*/
diff --git a/tools/testfiles/h5dump-help.txt b/tools/testfiles/h5dump-help.txt
index 444dd97..fe22a1b 100644
--- a/tools/testfiles/h5dump-help.txt
+++ b/tools/testfiles/h5dump-help.txt
@@ -11,7 +11,7 @@ usage: h5dump [OPTIONS] files
-o F, --output=F Output raw data into file F
-b B, --binary=B Binary file output, of form B
-O F, --ddl=F Output ddl text into file F
- Do not use filename F to suppress ddl display
+ Use blank(empty) filename F to suppress ddl display
--------------- Object Options ---------------
-a P, --attribute=P Print the specified attribute
If an attribute name contains a slash (/), escape the
@@ -25,6 +25,8 @@ usage: h5dump [OPTIONS] files
P can be the absolute path or just a relative path.
-A, --onlyattr Print the header and value of attributes
Optional value 0 suppresses printing attributes.
+ --vds-view-first-missing Set the VDS bounds to first missing mapped elements.
+ --vds-gap-size=N Set the missing file gap size, N=non-negative integers
--------------- Object Property Options ---------------
-i, --object-ids Print the object ids
-p, --properties Print dataset filters, storage layout and fill value
diff --git a/tools/testfiles/non_existing.ddl b/tools/testfiles/non_existing.ddl
new file mode 100644
index 0000000..4377f8d
--- /dev/null
+++ b/tools/testfiles/non_existing.ddl
@@ -0,0 +1,31 @@
+HDF5 "tgroup.h5" {
+GROUP "/" {
+ GROUP "g1" {
+ GROUP "g1.1" {
+ }
+ GROUP "g1.2" {
+ }
+ }
+ GROUP "g2" {
+ GROUP "g2.1" {
+ GROUP "g2.1.1" {
+ }
+ GROUP "g2.1.2" {
+ }
+ GROUP "g2.1.3" {
+ }
+ }
+ }
+ GROUP "g3" {
+ GROUP "g3.1" {
+ }
+ GROUP "g3.2" {
+ }
+ GROUP "g3.3" {
+ }
+ GROUP "g3.4" {
+ }
+ }
+}
+}
+h5dump error: unable to open file "non_existing.h5"
diff --git a/tools/testfiles/pbits/tnofilename-with-packed-bits.ddl b/tools/testfiles/pbits/tnofilename-with-packed-bits.ddl
index 64a2880..767cbbf 100644
--- a/tools/testfiles/pbits/tnofilename-with-packed-bits.ddl
+++ b/tools/testfiles/pbits/tnofilename-with-packed-bits.ddl
@@ -11,7 +11,7 @@ usage: h5dump [OPTIONS] files
-o F, --output=F Output raw data into file F
-b B, --binary=B Binary file output, of form B
-O F, --ddl=F Output ddl text into file F
- Do not use filename F to suppress ddl display
+ Use blank(empty) filename F to suppress ddl display
--------------- Object Options ---------------
-a P, --attribute=P Print the specified attribute
If an attribute name contains a slash (/), escape the
@@ -25,6 +25,8 @@ usage: h5dump [OPTIONS] files
P can be the absolute path or just a relative path.
-A, --onlyattr Print the header and value of attributes
Optional value 0 suppresses printing attributes.
+ --vds-view-first-missing Set the VDS bounds to first missing mapped elements.
+ --vds-gap-size=N Set the missing file gap size, N=non-negative integers
--------------- Object Property Options ---------------
-i, --object-ids Print the object ids
-p, --properties Print dataset filters, storage layout and fill value
diff --git a/tools/testfiles/pbits/tpbitsIncomplete.ddl b/tools/testfiles/pbits/tpbitsIncomplete.ddl
index cdb1f91..d791b41 100644
--- a/tools/testfiles/pbits/tpbitsIncomplete.ddl
+++ b/tools/testfiles/pbits/tpbitsIncomplete.ddl
@@ -11,7 +11,7 @@ usage: h5dump [OPTIONS] files
-o F, --output=F Output raw data into file F
-b B, --binary=B Binary file output, of form B
-O F, --ddl=F Output ddl text into file F
- Do not use filename F to suppress ddl display
+ Use blank(empty) filename F to suppress ddl display
--------------- Object Options ---------------
-a P, --attribute=P Print the specified attribute
If an attribute name contains a slash (/), escape the
@@ -25,6 +25,8 @@ usage: h5dump [OPTIONS] files
P can be the absolute path or just a relative path.
-A, --onlyattr Print the header and value of attributes
Optional value 0 suppresses printing attributes.
+ --vds-view-first-missing Set the VDS bounds to first missing mapped elements.
+ --vds-gap-size=N Set the missing file gap size, N=non-negative integers
--------------- Object Property Options ---------------
-i, --object-ids Print the object ids
-p, --properties Print dataset filters, storage layout and fill value
diff --git a/tools/testfiles/pbits/tpbitsLengthExceeded.ddl b/tools/testfiles/pbits/tpbitsLengthExceeded.ddl
index 6d2492a..5235aa7 100644
--- a/tools/testfiles/pbits/tpbitsLengthExceeded.ddl
+++ b/tools/testfiles/pbits/tpbitsLengthExceeded.ddl
@@ -11,7 +11,7 @@ usage: h5dump [OPTIONS] files
-o F, --output=F Output raw data into file F
-b B, --binary=B Binary file output, of form B
-O F, --ddl=F Output ddl text into file F
- Do not use filename F to suppress ddl display
+ Use blank(empty) filename F to suppress ddl display
--------------- Object Options ---------------
-a P, --attribute=P Print the specified attribute
If an attribute name contains a slash (/), escape the
@@ -25,6 +25,8 @@ usage: h5dump [OPTIONS] files
P can be the absolute path or just a relative path.
-A, --onlyattr Print the header and value of attributes
Optional value 0 suppresses printing attributes.
+ --vds-view-first-missing Set the VDS bounds to first missing mapped elements.
+ --vds-gap-size=N Set the missing file gap size, N=non-negative integers
--------------- Object Property Options ---------------
-i, --object-ids Print the object ids
-p, --properties Print dataset filters, storage layout and fill value
diff --git a/tools/testfiles/pbits/tpbitsLengthPositive.ddl b/tools/testfiles/pbits/tpbitsLengthPositive.ddl
index 4f56619..697bff8 100644
--- a/tools/testfiles/pbits/tpbitsLengthPositive.ddl
+++ b/tools/testfiles/pbits/tpbitsLengthPositive.ddl
@@ -11,7 +11,7 @@ usage: h5dump [OPTIONS] files
-o F, --output=F Output raw data into file F
-b B, --binary=B Binary file output, of form B
-O F, --ddl=F Output ddl text into file F
- Do not use filename F to suppress ddl display
+ Use blank(empty) filename F to suppress ddl display
--------------- Object Options ---------------
-a P, --attribute=P Print the specified attribute
If an attribute name contains a slash (/), escape the
@@ -25,6 +25,8 @@ usage: h5dump [OPTIONS] files
P can be the absolute path or just a relative path.
-A, --onlyattr Print the header and value of attributes
Optional value 0 suppresses printing attributes.
+ --vds-view-first-missing Set the VDS bounds to first missing mapped elements.
+ --vds-gap-size=N Set the missing file gap size, N=non-negative integers
--------------- Object Property Options ---------------
-i, --object-ids Print the object ids
-p, --properties Print dataset filters, storage layout and fill value
diff --git a/tools/testfiles/pbits/tpbitsMaxExceeded.ddl b/tools/testfiles/pbits/tpbitsMaxExceeded.ddl
index 3432433..900c0b5 100644
--- a/tools/testfiles/pbits/tpbitsMaxExceeded.ddl
+++ b/tools/testfiles/pbits/tpbitsMaxExceeded.ddl
@@ -11,7 +11,7 @@ usage: h5dump [OPTIONS] files
-o F, --output=F Output raw data into file F
-b B, --binary=B Binary file output, of form B
-O F, --ddl=F Output ddl text into file F
- Do not use filename F to suppress ddl display
+ Use blank(empty) filename F to suppress ddl display
--------------- Object Options ---------------
-a P, --attribute=P Print the specified attribute
If an attribute name contains a slash (/), escape the
@@ -25,6 +25,8 @@ usage: h5dump [OPTIONS] files
P can be the absolute path or just a relative path.
-A, --onlyattr Print the header and value of attributes
Optional value 0 suppresses printing attributes.
+ --vds-view-first-missing Set the VDS bounds to first missing mapped elements.
+ --vds-gap-size=N Set the missing file gap size, N=non-negative integers
--------------- Object Property Options ---------------
-i, --object-ids Print the object ids
-p, --properties Print dataset filters, storage layout and fill value
diff --git a/tools/testfiles/pbits/tpbitsOffsetExceeded.ddl b/tools/testfiles/pbits/tpbitsOffsetExceeded.ddl
index e51a09e..65123d0 100644
--- a/tools/testfiles/pbits/tpbitsOffsetExceeded.ddl
+++ b/tools/testfiles/pbits/tpbitsOffsetExceeded.ddl
@@ -11,7 +11,7 @@ usage: h5dump [OPTIONS] files
-o F, --output=F Output raw data into file F
-b B, --binary=B Binary file output, of form B
-O F, --ddl=F Output ddl text into file F
- Do not use filename F to suppress ddl display
+ Use blank(empty) filename F to suppress ddl display
--------------- Object Options ---------------
-a P, --attribute=P Print the specified attribute
If an attribute name contains a slash (/), escape the
@@ -25,6 +25,8 @@ usage: h5dump [OPTIONS] files
P can be the absolute path or just a relative path.
-A, --onlyattr Print the header and value of attributes
Optional value 0 suppresses printing attributes.
+ --vds-view-first-missing Set the VDS bounds to first missing mapped elements.
+ --vds-gap-size=N Set the missing file gap size, N=non-negative integers
--------------- Object Property Options ---------------
-i, --object-ids Print the object ids
-p, --properties Print dataset filters, storage layout and fill value
diff --git a/tools/testfiles/pbits/tpbitsOffsetNegative.ddl b/tools/testfiles/pbits/tpbitsOffsetNegative.ddl
index ba6e46d..d352e34 100644
--- a/tools/testfiles/pbits/tpbitsOffsetNegative.ddl
+++ b/tools/testfiles/pbits/tpbitsOffsetNegative.ddl
@@ -11,7 +11,7 @@ usage: h5dump [OPTIONS] files
-o F, --output=F Output raw data into file F
-b B, --binary=B Binary file output, of form B
-O F, --ddl=F Output ddl text into file F
- Do not use filename F to suppress ddl display
+ Use blank(empty) filename F to suppress ddl display
--------------- Object Options ---------------
-a P, --attribute=P Print the specified attribute
If an attribute name contains a slash (/), escape the
@@ -25,6 +25,8 @@ usage: h5dump [OPTIONS] files
P can be the absolute path or just a relative path.
-A, --onlyattr Print the header and value of attributes
Optional value 0 suppresses printing attributes.
+ --vds-view-first-missing Set the VDS bounds to first missing mapped elements.
+ --vds-gap-size=N Set the missing file gap size, N=non-negative integers
--------------- Object Property Options ---------------
-i, --object-ids Print the object ids
-p, --properties Print dataset filters, storage layout and fill value
diff --git a/tools/testfiles/tallfilters.ddl b/tools/testfiles/tallfilters.ddl
index ac6762a..ff2454c 100644
--- a/tools/testfiles/tallfilters.ddl
+++ b/tools/testfiles/tallfilters.ddl
@@ -21,7 +21,7 @@ DATASET "all" {
}
FILLVALUE {
FILL_TIME H5D_FILL_TIME_IFSET
- VALUE 0
+ VALUE H5D_FILL_VALUE_DEFAULT
}
ALLOCATION_TIME {
H5D_ALLOC_TIME_INCR
diff --git a/tools/testfiles/tchunked.ddl b/tools/testfiles/tchunked.ddl
index b68b233..bf620fe 100644
--- a/tools/testfiles/tchunked.ddl
+++ b/tools/testfiles/tchunked.ddl
@@ -12,7 +12,7 @@ COMMENT "This is a dataset with chunked storage"
}
FILLVALUE {
FILL_TIME H5D_FILL_TIME_IFSET
- VALUE 0
+ VALUE H5D_FILL_VALUE_DEFAULT
}
ALLOCATION_TIME {
H5D_ALLOC_TIME_INCR
diff --git a/tools/testfiles/tcompact.ddl b/tools/testfiles/tcompact.ddl
index 918e2eb..977f959 100644
--- a/tools/testfiles/tcompact.ddl
+++ b/tools/testfiles/tcompact.ddl
@@ -12,7 +12,7 @@ COMMENT "This is a dataset with compact storage"
}
FILLVALUE {
FILL_TIME H5D_FILL_TIME_IFSET
- VALUE 0
+ VALUE H5D_FILL_VALUE_DEFAULT
}
ALLOCATION_TIME {
H5D_ALLOC_TIME_EARLY
diff --git a/tools/testfiles/tcontiguos.ddl b/tools/testfiles/tcontiguos.ddl
index 8e0158e..3f045e5 100644
--- a/tools/testfiles/tcontiguos.ddl
+++ b/tools/testfiles/tcontiguos.ddl
@@ -13,7 +13,7 @@ COMMENT "This is a dataset with contiguous storage"
}
FILLVALUE {
FILL_TIME H5D_FILL_TIME_IFSET
- VALUE 0
+ VALUE H5D_FILL_VALUE_DEFAULT
}
ALLOCATION_TIME {
H5D_ALLOC_TIME_LATE
diff --git a/tools/testfiles/tdeflate.ddl b/tools/testfiles/tdeflate.ddl
index 5603911..9b92d0e 100644
--- a/tools/testfiles/tdeflate.ddl
+++ b/tools/testfiles/tdeflate.ddl
@@ -11,7 +11,7 @@ DATASET "deflate" {
}
FILLVALUE {
FILL_TIME H5D_FILL_TIME_IFSET
- VALUE 0
+ VALUE H5D_FILL_VALUE_DEFAULT
}
ALLOCATION_TIME {
H5D_ALLOC_TIME_INCR
diff --git a/tools/testfiles/texternal.ddl b/tools/testfiles/texternal.ddl
index 279831a..59cd22c 100644
--- a/tools/testfiles/texternal.ddl
+++ b/tools/testfiles/texternal.ddl
@@ -14,7 +14,7 @@ DATASET "external" {
}
FILLVALUE {
FILL_TIME H5D_FILL_TIME_IFSET
- VALUE 0
+ VALUE H5D_FILL_VALUE_DEFAULT
}
ALLOCATION_TIME {
H5D_ALLOC_TIME_LATE
diff --git a/tools/testfiles/tfill.ddl b/tools/testfiles/tfill.ddl
index 45497fd..556f4f2 100644
--- a/tools/testfiles/tfill.ddl
+++ b/tools/testfiles/tfill.ddl
@@ -13,7 +13,7 @@ GROUP "/" {
}
FILLVALUE {
FILL_TIME H5D_FILL_TIME_IFSET
- VALUE [ 0, 0, 0 ]
+ VALUE H5D_FILL_VALUE_DEFAULT
}
ALLOCATION_TIME {
H5D_ALLOC_TIME_LATE
@@ -136,7 +136,7 @@ GROUP "/" {
}
FILLVALUE {
FILL_TIME H5D_FILL_TIME_ALLOC
- VALUE ()
+ VALUE H5D_FILL_VALUE_DEFAULT
}
ALLOCATION_TIME {
H5D_ALLOC_TIME_LATE
@@ -158,7 +158,7 @@ GROUP "/" {
}
FILLVALUE {
FILL_TIME H5D_FILL_TIME_IFSET
- VALUE 0
+ VALUE H5D_FILL_VALUE_DEFAULT
}
ALLOCATION_TIME {
H5D_ALLOC_TIME_LATE
diff --git a/tools/testfiles/tfletcher32.ddl b/tools/testfiles/tfletcher32.ddl
index c341ded..01460e2 100644
--- a/tools/testfiles/tfletcher32.ddl
+++ b/tools/testfiles/tfletcher32.ddl
@@ -11,7 +11,7 @@ DATASET "fletcher32" {
}
FILLVALUE {
FILL_TIME H5D_FILL_TIME_IFSET
- VALUE 0
+ VALUE H5D_FILL_VALUE_DEFAULT
}
ALLOCATION_TIME {
H5D_ALLOC_TIME_INCR
diff --git a/tools/testfiles/tints4dims.ddl b/tools/testfiles/tints4dims.ddl
new file mode 100644
index 0000000..ba5c852
--- /dev/null
+++ b/tools/testfiles/tints4dims.ddl
@@ -0,0 +1,202 @@
+HDF5 "tints4dims.h5" {
+GROUP "/" {
+ DATASET "FourDimInts" {
+ DATATYPE H5T_STD_U32LE
+ DATASPACE SIMPLE { ( 4, 6, 8, 10 ) / ( 4, 6, 8, 10 ) }
+ DATA {
+ (0,0,0,0): 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
+ (0,0,1,0): 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
+ (0,0,2,0): 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
+ (0,0,3,0): 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
+ (0,0,4,0): 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
+ (0,0,5,0): 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
+ (0,0,6,0): 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
+ (0,0,7,0): 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
+ (0,1,0,0): 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
+ (0,1,1,0): 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
+ (0,1,2,0): 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
+ (0,1,3,0): 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
+ (0,1,4,0): 120, 121, 122, 123, 124, 125, 126, 127, 128, 129,
+ (0,1,5,0): 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
+ (0,1,6,0): 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
+ (0,1,7,0): 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
+ (0,2,0,0): 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
+ (0,2,1,0): 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
+ (0,2,2,0): 180, 181, 182, 183, 184, 185, 186, 187, 188, 189,
+ (0,2,3,0): 190, 191, 192, 193, 194, 195, 196, 197, 198, 199,
+ (0,2,4,0): 200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
+ (0,2,5,0): 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
+ (0,2,6,0): 220, 221, 222, 223, 224, 225, 226, 227, 228, 229,
+ (0,2,7,0): 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
+ (0,3,0,0): 240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
+ (0,3,1,0): 250, 251, 252, 253, 254, 255, 256, 257, 258, 259,
+ (0,3,2,0): 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
+ (0,3,3,0): 270, 271, 272, 273, 274, 275, 276, 277, 278, 279,
+ (0,3,4,0): 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
+ (0,3,5,0): 290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
+ (0,3,6,0): 300, 301, 302, 303, 304, 305, 306, 307, 308, 309,
+ (0,3,7,0): 310, 311, 312, 313, 314, 315, 316, 317, 318, 319,
+ (0,4,0,0): 320, 321, 322, 323, 324, 325, 326, 327, 328, 329,
+ (0,4,1,0): 330, 331, 332, 333, 334, 335, 336, 337, 338, 339,
+ (0,4,2,0): 340, 341, 342, 343, 344, 345, 346, 347, 348, 349,
+ (0,4,3,0): 350, 351, 352, 353, 354, 355, 356, 357, 358, 359,
+ (0,4,4,0): 360, 361, 362, 363, 364, 365, 366, 367, 368, 369,
+ (0,4,5,0): 370, 371, 372, 373, 374, 375, 376, 377, 378, 379,
+ (0,4,6,0): 380, 381, 382, 383, 384, 385, 386, 387, 388, 389,
+ (0,4,7,0): 390, 391, 392, 393, 394, 395, 396, 397, 398, 399,
+ (0,5,0,0): 400, 401, 402, 403, 404, 405, 406, 407, 408, 409,
+ (0,5,1,0): 410, 411, 412, 413, 414, 415, 416, 417, 418, 419,
+ (0,5,2,0): 420, 421, 422, 423, 424, 425, 426, 427, 428, 429,
+ (0,5,3,0): 430, 431, 432, 433, 434, 435, 436, 437, 438, 439,
+ (0,5,4,0): 440, 441, 442, 443, 444, 445, 446, 447, 448, 449,
+ (0,5,5,0): 450, 451, 452, 453, 454, 455, 456, 457, 458, 459,
+ (0,5,6,0): 460, 461, 462, 463, 464, 465, 466, 467, 468, 469,
+ (0,5,7,0): 470, 471, 472, 473, 474, 475, 476, 477, 478, 479,
+ (1,0,0,0): 480, 481, 482, 483, 484, 485, 486, 487, 488, 489,
+ (1,0,1,0): 490, 491, 492, 493, 494, 495, 496, 497, 498, 499,
+ (1,0,2,0): 500, 501, 502, 503, 504, 505, 506, 507, 508, 509,
+ (1,0,3,0): 510, 511, 512, 513, 514, 515, 516, 517, 518, 519,
+ (1,0,4,0): 520, 521, 522, 523, 524, 525, 526, 527, 528, 529,
+ (1,0,5,0): 530, 531, 532, 533, 534, 535, 536, 537, 538, 539,
+ (1,0,6,0): 540, 541, 542, 543, 544, 545, 546, 547, 548, 549,
+ (1,0,7,0): 550, 551, 552, 553, 554, 555, 556, 557, 558, 559,
+ (1,1,0,0): 560, 561, 562, 563, 564, 565, 566, 567, 568, 569,
+ (1,1,1,0): 570, 571, 572, 573, 574, 575, 576, 577, 578, 579,
+ (1,1,2,0): 580, 581, 582, 583, 584, 585, 586, 587, 588, 589,
+ (1,1,3,0): 590, 591, 592, 593, 594, 595, 596, 597, 598, 599,
+ (1,1,4,0): 600, 601, 602, 603, 604, 605, 606, 607, 608, 609,
+ (1,1,5,0): 610, 611, 612, 613, 614, 615, 616, 617, 618, 619,
+ (1,1,6,0): 620, 621, 622, 623, 624, 625, 626, 627, 628, 629,
+ (1,1,7,0): 630, 631, 632, 633, 634, 635, 636, 637, 638, 639,
+ (1,2,0,0): 640, 641, 642, 643, 644, 645, 646, 647, 648, 649,
+ (1,2,1,0): 650, 651, 652, 653, 654, 655, 656, 657, 658, 659,
+ (1,2,2,0): 660, 661, 662, 663, 664, 665, 666, 667, 668, 669,
+ (1,2,3,0): 670, 671, 672, 673, 674, 675, 676, 677, 678, 679,
+ (1,2,4,0): 680, 681, 682, 683, 684, 685, 686, 687, 688, 689,
+ (1,2,5,0): 690, 691, 692, 693, 694, 695, 696, 697, 698, 699,
+ (1,2,6,0): 700, 701, 702, 703, 704, 705, 706, 707, 708, 709,
+ (1,2,7,0): 710, 711, 712, 713, 714, 715, 716, 717, 718, 719,
+ (1,3,0,0): 720, 721, 722, 723, 724, 725, 726, 727, 728, 729,
+ (1,3,1,0): 730, 731, 732, 733, 734, 735, 736, 737, 738, 739,
+ (1,3,2,0): 740, 741, 742, 743, 744, 745, 746, 747, 748, 749,
+ (1,3,3,0): 750, 751, 752, 753, 754, 755, 756, 757, 758, 759,
+ (1,3,4,0): 760, 761, 762, 763, 764, 765, 766, 767, 768, 769,
+ (1,3,5,0): 770, 771, 772, 773, 774, 775, 776, 777, 778, 779,
+ (1,3,6,0): 780, 781, 782, 783, 784, 785, 786, 787, 788, 789,
+ (1,3,7,0): 790, 791, 792, 793, 794, 795, 796, 797, 798, 799,
+ (1,4,0,0): 800, 801, 802, 803, 804, 805, 806, 807, 808, 809,
+ (1,4,1,0): 810, 811, 812, 813, 814, 815, 816, 817, 818, 819,
+ (1,4,2,0): 820, 821, 822, 823, 824, 825, 826, 827, 828, 829,
+ (1,4,3,0): 830, 831, 832, 833, 834, 835, 836, 837, 838, 839,
+ (1,4,4,0): 840, 841, 842, 843, 844, 845, 846, 847, 848, 849,
+ (1,4,5,0): 850, 851, 852, 853, 854, 855, 856, 857, 858, 859,
+ (1,4,6,0): 860, 861, 862, 863, 864, 865, 866, 867, 868, 869,
+ (1,4,7,0): 870, 871, 872, 873, 874, 875, 876, 877, 878, 879,
+ (1,5,0,0): 880, 881, 882, 883, 884, 885, 886, 887, 888, 889,
+ (1,5,1,0): 890, 891, 892, 893, 894, 895, 896, 897, 898, 899,
+ (1,5,2,0): 900, 901, 902, 903, 904, 905, 906, 907, 908, 909,
+ (1,5,3,0): 910, 911, 912, 913, 914, 915, 916, 917, 918, 919,
+ (1,5,4,0): 920, 921, 922, 923, 924, 925, 926, 927, 928, 929,
+ (1,5,5,0): 930, 931, 932, 933, 934, 935, 936, 937, 938, 939,
+ (1,5,6,0): 940, 941, 942, 943, 944, 945, 946, 947, 948, 949,
+ (1,5,7,0): 950, 951, 952, 953, 954, 955, 956, 957, 958, 959,
+ (2,0,0,0): 960, 961, 962, 963, 964, 965, 966, 967, 968, 969,
+ (2,0,1,0): 970, 971, 972, 973, 974, 975, 976, 977, 978, 979,
+ (2,0,2,0): 980, 981, 982, 983, 984, 985, 986, 987, 988, 989,
+ (2,0,3,0): 990, 991, 992, 993, 994, 995, 996, 997, 998, 999,
+ (2,0,4,0): 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009,
+ (2,0,5,0): 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019,
+ (2,0,6,0): 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029,
+ (2,0,7,0): 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039,
+ (2,1,0,0): 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049,
+ (2,1,1,0): 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059,
+ (2,1,2,0): 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069,
+ (2,1,3,0): 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079,
+ (2,1,4,0): 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089,
+ (2,1,5,0): 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099,
+ (2,1,6,0): 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109,
+ (2,1,7,0): 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119,
+ (2,2,0,0): 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129,
+ (2,2,1,0): 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139,
+ (2,2,2,0): 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149,
+ (2,2,3,0): 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1158, 1159,
+ (2,2,4,0): 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169,
+ (2,2,5,0): 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179,
+ (2,2,6,0): 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189,
+ (2,2,7,0): 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199,
+ (2,3,0,0): 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209,
+ (2,3,1,0): 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219,
+ (2,3,2,0): 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229,
+ (2,3,3,0): 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239,
+ (2,3,4,0): 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249,
+ (2,3,5,0): 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259,
+ (2,3,6,0): 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, 1269,
+ (2,3,7,0): 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279,
+ (2,4,0,0): 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289,
+ (2,4,1,0): 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299,
+ (2,4,2,0): 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309,
+ (2,4,3,0): 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319,
+ (2,4,4,0): 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329,
+ (2,4,5,0): 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339,
+ (2,4,6,0): 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1349,
+ (2,4,7,0): 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359,
+ (2,5,0,0): 1360, 1361, 1362, 1363, 1364, 1365, 1366, 1367, 1368, 1369,
+ (2,5,1,0): 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379,
+ (2,5,2,0): 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389,
+ (2,5,3,0): 1390, 1391, 1392, 1393, 1394, 1395, 1396, 1397, 1398, 1399,
+ (2,5,4,0): 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409,
+ (2,5,5,0): 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419,
+ (2,5,6,0): 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427, 1428, 1429,
+ (2,5,7,0): 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439,
+ (3,0,0,0): 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449,
+ (3,0,1,0): 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458, 1459,
+ (3,0,2,0): 1460, 1461, 1462, 1463, 1464, 1465, 1466, 1467, 1468, 1469,
+ (3,0,3,0): 1470, 1471, 1472, 1473, 1474, 1475, 1476, 1477, 1478, 1479,
+ (3,0,4,0): 1480, 1481, 1482, 1483, 1484, 1485, 1486, 1487, 1488, 1489,
+ (3,0,5,0): 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1497, 1498, 1499,
+ (3,0,6,0): 1500, 1501, 1502, 1503, 1504, 1505, 1506, 1507, 1508, 1509,
+ (3,0,7,0): 1510, 1511, 1512, 1513, 1514, 1515, 1516, 1517, 1518, 1519,
+ (3,1,0,0): 1520, 1521, 1522, 1523, 1524, 1525, 1526, 1527, 1528, 1529,
+ (3,1,1,0): 1530, 1531, 1532, 1533, 1534, 1535, 1536, 1537, 1538, 1539,
+ (3,1,2,0): 1540, 1541, 1542, 1543, 1544, 1545, 1546, 1547, 1548, 1549,
+ (3,1,3,0): 1550, 1551, 1552, 1553, 1554, 1555, 1556, 1557, 1558, 1559,
+ (3,1,4,0): 1560, 1561, 1562, 1563, 1564, 1565, 1566, 1567, 1568, 1569,
+ (3,1,5,0): 1570, 1571, 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579,
+ (3,1,6,0): 1580, 1581, 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589,
+ (3,1,7,0): 1590, 1591, 1592, 1593, 1594, 1595, 1596, 1597, 1598, 1599,
+ (3,2,0,0): 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609,
+ (3,2,1,0): 1610, 1611, 1612, 1613, 1614, 1615, 1616, 1617, 1618, 1619,
+ (3,2,2,0): 1620, 1621, 1622, 1623, 1624, 1625, 1626, 1627, 1628, 1629,
+ (3,2,3,0): 1630, 1631, 1632, 1633, 1634, 1635, 1636, 1637, 1638, 1639,
+ (3,2,4,0): 1640, 1641, 1642, 1643, 1644, 1645, 1646, 1647, 1648, 1649,
+ (3,2,5,0): 1650, 1651, 1652, 1653, 1654, 1655, 1656, 1657, 1658, 1659,
+ (3,2,6,0): 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667, 1668, 1669,
+ (3,2,7,0): 1670, 1671, 1672, 1673, 1674, 1675, 1676, 1677, 1678, 1679,
+ (3,3,0,0): 1680, 1681, 1682, 1683, 1684, 1685, 1686, 1687, 1688, 1689,
+ (3,3,1,0): 1690, 1691, 1692, 1693, 1694, 1695, 1696, 1697, 1698, 1699,
+ (3,3,2,0): 1700, 1701, 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1709,
+ (3,3,3,0): 1710, 1711, 1712, 1713, 1714, 1715, 1716, 1717, 1718, 1719,
+ (3,3,4,0): 1720, 1721, 1722, 1723, 1724, 1725, 1726, 1727, 1728, 1729,
+ (3,3,5,0): 1730, 1731, 1732, 1733, 1734, 1735, 1736, 1737, 1738, 1739,
+ (3,3,6,0): 1740, 1741, 1742, 1743, 1744, 1745, 1746, 1747, 1748, 1749,
+ (3,3,7,0): 1750, 1751, 1752, 1753, 1754, 1755, 1756, 1757, 1758, 1759,
+ (3,4,0,0): 1760, 1761, 1762, 1763, 1764, 1765, 1766, 1767, 1768, 1769,
+ (3,4,1,0): 1770, 1771, 1772, 1773, 1774, 1775, 1776, 1777, 1778, 1779,
+ (3,4,2,0): 1780, 1781, 1782, 1783, 1784, 1785, 1786, 1787, 1788, 1789,
+ (3,4,3,0): 1790, 1791, 1792, 1793, 1794, 1795, 1796, 1797, 1798, 1799,
+ (3,4,4,0): 1800, 1801, 1802, 1803, 1804, 1805, 1806, 1807, 1808, 1809,
+ (3,4,5,0): 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817, 1818, 1819,
+ (3,4,6,0): 1820, 1821, 1822, 1823, 1824, 1825, 1826, 1827, 1828, 1829,
+ (3,4,7,0): 1830, 1831, 1832, 1833, 1834, 1835, 1836, 1837, 1838, 1839,
+ (3,5,0,0): 1840, 1841, 1842, 1843, 1844, 1845, 1846, 1847, 1848, 1849,
+ (3,5,1,0): 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1857, 1858, 1859,
+ (3,5,2,0): 1860, 1861, 1862, 1863, 1864, 1865, 1866, 1867, 1868, 1869,
+ (3,5,3,0): 1870, 1871, 1872, 1873, 1874, 1875, 1876, 1877, 1878, 1879,
+ (3,5,4,0): 1880, 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1888, 1889,
+ (3,5,5,0): 1890, 1891, 1892, 1893, 1894, 1895, 1896, 1897, 1898, 1899,
+ (3,5,6,0): 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909,
+ (3,5,7,0): 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919
+ }
+ }
+}
+}
diff --git a/tools/testfiles/tints4dims.h5 b/tools/testfiles/tints4dims.h5
new file mode 100644
index 0000000..2fe8321
--- /dev/null
+++ b/tools/testfiles/tints4dims.h5
Binary files differ
diff --git a/tools/testfiles/tints4dimsBlock2.ddl b/tools/testfiles/tints4dimsBlock2.ddl
new file mode 100644
index 0000000..f414e10
--- /dev/null
+++ b/tools/testfiles/tints4dimsBlock2.ddl
@@ -0,0 +1,16 @@
+HDF5 "tints4dims.h5" {
+DATASET "FourDimInts" {
+ DATATYPE H5T_STD_U32LE
+ DATASPACE SIMPLE { ( 4, 6, 8, 10 ) / ( 4, 6, 8, 10 ) }
+ SUBSET {
+ START ( 0, 0, 0, 0 );
+ STRIDE ( 1, 1, 1, 1 );
+ COUNT ( 1, 1, 1, 1 );
+ BLOCK ( 2, 2, 2, 2 );
+ DATA {
+ (0,0,0,0): 0, 1, 80, 81, 480, 481, 560, 561,
+ (0,0,1,0): 10, 11, 90, 91, 490, 491, 570, 571
+ }
+ }
+}
+}
diff --git a/tools/testfiles/tints4dimsBlockEq.ddl b/tools/testfiles/tints4dimsBlockEq.ddl
new file mode 100644
index 0000000..6625780
--- /dev/null
+++ b/tools/testfiles/tints4dimsBlockEq.ddl
@@ -0,0 +1,30 @@
+HDF5 "tints4dims.h5" {
+DATASET "FourDimInts" {
+ DATATYPE H5T_STD_U32LE
+ DATASPACE SIMPLE { ( 4, 6, 8, 10 ) / ( 4, 6, 8, 10 ) }
+ SUBSET {
+ START ( 0, 0, 0, 0 );
+ STRIDE ( 2, 2, 1, 1 );
+ COUNT ( 2, 2, 1, 1 );
+ BLOCK ( 1, 2, 4, 4 );
+ DATA {
+ (0,0,0,0): 0, 1, 2, 3, 80, 81, 82, 83,
+ (0,0,1,0): 10, 11, 12, 13, 90, 91, 92, 93,
+ (0,0,2,0): 20, 21, 22, 23, 100, 101, 102, 103,
+ (0,0,3,0): 30, 31, 32, 33, 110, 111, 112, 113
+ (0,2,0,0): 160, 161, 162, 163, 240, 241, 242, 243,
+ (0,2,1,0): 170, 171, 172, 173, 250, 251, 252, 253,
+ (0,2,2,0): 180, 181, 182, 183, 260, 261, 262, 263,
+ (0,2,3,0): 190, 191, 192, 193, 270, 271, 272, 273
+ (2,0,0,0): 960, 961, 962, 963, 1040, 1041, 1042, 1043,
+ (2,0,1,0): 970, 971, 972, 973, 1050, 1051, 1052, 1053,
+ (2,0,2,0): 980, 981, 982, 983, 1060, 1061, 1062, 1063,
+ (2,0,3,0): 990, 991, 992, 993, 1070, 1071, 1072, 1073
+ (2,2,0,0): 1120, 1121, 1122, 1123, 1200, 1201, 1202, 1203,
+ (2,2,1,0): 1130, 1131, 1132, 1133, 1210, 1211, 1212, 1213,
+ (2,2,2,0): 1140, 1141, 1142, 1143, 1220, 1221, 1222, 1223,
+ (2,2,3,0): 1150, 1151, 1152, 1153, 1230, 1231, 1232, 1233
+ }
+ }
+}
+}
diff --git a/tools/testfiles/tints4dimsCount2.ddl b/tools/testfiles/tints4dimsCount2.ddl
new file mode 100644
index 0000000..500e418
--- /dev/null
+++ b/tools/testfiles/tints4dimsCount2.ddl
@@ -0,0 +1,22 @@
+HDF5 "tints4dims.h5" {
+DATASET "FourDimInts" {
+ DATATYPE H5T_STD_U32LE
+ DATASPACE SIMPLE { ( 4, 6, 8, 10 ) / ( 4, 6, 8, 10 ) }
+ SUBSET {
+ START ( 0, 0, 0, 0 );
+ STRIDE ( 1, 1, 1, 1 );
+ COUNT ( 2, 2, 2, 2 );
+ BLOCK ( 1, 1, 1, 1 );
+ DATA {
+ (0,0,0,0): 0, 1,
+ (0,0,1,0): 10, 11
+ (0,1,0,0): 80, 81,
+ (0,1,1,0): 90, 91
+ (1,0,0,0): 480, 481,
+ (1,0,1,0): 490, 491
+ (1,1,0,0): 560, 561,
+ (1,1,1,0): 570, 571
+ }
+ }
+}
+}
diff --git a/tools/testfiles/tints4dimsCountEq.ddl b/tools/testfiles/tints4dimsCountEq.ddl
new file mode 100644
index 0000000..8b17bfc
--- /dev/null
+++ b/tools/testfiles/tints4dimsCountEq.ddl
@@ -0,0 +1,30 @@
+HDF5 "tints4dims.h5" {
+DATASET "FourDimInts" {
+ DATATYPE H5T_STD_U32LE
+ DATASPACE SIMPLE { ( 4, 6, 8, 10 ) / ( 4, 6, 8, 10 ) }
+ SUBSET {
+ START ( 0, 0, 0, 0 );
+ STRIDE ( 2, 2, 1, 1 );
+ COUNT ( 2, 2, 4, 4 );
+ BLOCK ( 1, 2, 1, 1 );
+ DATA {
+ (0,0,0,0): 0, 1, 2, 3, 80, 81, 82, 83,
+ (0,0,1,0): 10, 11, 12, 13, 90, 91, 92, 93,
+ (0,0,2,0): 20, 21, 22, 23, 100, 101, 102, 103,
+ (0,0,3,0): 30, 31, 32, 33, 110, 111, 112, 113
+ (0,2,0,0): 160, 161, 162, 163, 240, 241, 242, 243,
+ (0,2,1,0): 170, 171, 172, 173, 250, 251, 252, 253,
+ (0,2,2,0): 180, 181, 182, 183, 260, 261, 262, 263,
+ (0,2,3,0): 190, 191, 192, 193, 270, 271, 272, 273
+ (2,0,0,0): 960, 961, 962, 963, 1040, 1041, 1042, 1043,
+ (2,0,1,0): 970, 971, 972, 973, 1050, 1051, 1052, 1053,
+ (2,0,2,0): 980, 981, 982, 983, 1060, 1061, 1062, 1063,
+ (2,0,3,0): 990, 991, 992, 993, 1070, 1071, 1072, 1073
+ (2,2,0,0): 1120, 1121, 1122, 1123, 1200, 1201, 1202, 1203,
+ (2,2,1,0): 1130, 1131, 1132, 1133, 1210, 1211, 1212, 1213,
+ (2,2,2,0): 1140, 1141, 1142, 1143, 1220, 1221, 1222, 1223,
+ (2,2,3,0): 1150, 1151, 1152, 1153, 1230, 1231, 1232, 1233
+ }
+ }
+}
+}
diff --git a/tools/testfiles/tints4dimsStride2.ddl b/tools/testfiles/tints4dimsStride2.ddl
new file mode 100644
index 0000000..7ec98fc
--- /dev/null
+++ b/tools/testfiles/tints4dimsStride2.ddl
@@ -0,0 +1,22 @@
+HDF5 "tints4dims.h5" {
+DATASET "FourDimInts" {
+ DATATYPE H5T_STD_U32LE
+ DATASPACE SIMPLE { ( 4, 6, 8, 10 ) / ( 4, 6, 8, 10 ) }
+ SUBSET {
+ START ( 0, 0, 0, 0 );
+ STRIDE ( 2, 2, 2, 2 );
+ COUNT ( 2, 2, 2, 2 );
+ BLOCK ( 1, 1, 1, 1 );
+ DATA {
+ (0,0,0,0): 0, 2,
+ (0,0,2,0): 20, 22
+ (0,2,0,0): 160, 162,
+ (0,2,2,0): 180, 182
+ (2,0,0,0): 960, 962,
+ (2,0,2,0): 980, 982
+ (2,2,0,0): 1120, 1122,
+ (2,2,2,0): 1140, 1142
+ }
+ }
+}
+}
diff --git a/tools/testfiles/tnbit.ddl b/tools/testfiles/tnbit.ddl
index bd32eaa..fd5d1cf 100644
--- a/tools/testfiles/tnbit.ddl
+++ b/tools/testfiles/tnbit.ddl
@@ -11,7 +11,7 @@ DATASET "nbit" {
}
FILLVALUE {
FILL_TIME H5D_FILL_TIME_IFSET
- VALUE 0
+ VALUE H5D_FILL_VALUE_DEFAULT
}
ALLOCATION_TIME {
H5D_ALLOC_TIME_INCR
diff --git a/tools/testfiles/tscaleoffset.ddl b/tools/testfiles/tscaleoffset.ddl
index ba49c70..a039736 100644
--- a/tools/testfiles/tscaleoffset.ddl
+++ b/tools/testfiles/tscaleoffset.ddl
@@ -11,7 +11,7 @@ DATASET "scaleoffset" {
}
FILLVALUE {
FILL_TIME H5D_FILL_TIME_IFSET
- VALUE 0
+ VALUE H5D_FILL_VALUE_DEFAULT
}
ALLOCATION_TIME {
H5D_ALLOC_TIME_INCR
diff --git a/tools/testfiles/tshuffle.ddl b/tools/testfiles/tshuffle.ddl
index 5c183fe..b0477db 100644
--- a/tools/testfiles/tshuffle.ddl
+++ b/tools/testfiles/tshuffle.ddl
@@ -11,7 +11,7 @@ DATASET "shuffle" {
}
FILLVALUE {
FILL_TIME H5D_FILL_TIME_IFSET
- VALUE 0
+ VALUE H5D_FILL_VALUE_DEFAULT
}
ALLOCATION_TIME {
H5D_ALLOC_TIME_INCR
diff --git a/tools/testfiles/tszip.ddl b/tools/testfiles/tszip.ddl
index 6fdd92f..06e2259 100644
--- a/tools/testfiles/tszip.ddl
+++ b/tools/testfiles/tszip.ddl
@@ -17,7 +17,7 @@ DATASET "szip" {
}
FILLVALUE {
FILL_TIME H5D_FILL_TIME_IFSET
- VALUE 0
+ VALUE H5D_FILL_VALUE_DEFAULT
}
ALLOCATION_TIME {
H5D_ALLOC_TIME_INCR
diff --git a/tools/testfiles/tuserfilter.ddl b/tools/testfiles/tuserfilter.ddl
index 24745b9..f77fb17 100644
--- a/tools/testfiles/tuserfilter.ddl
+++ b/tools/testfiles/tuserfilter.ddl
@@ -15,7 +15,7 @@ DATASET "myfilter" {
}
FILLVALUE {
FILL_TIME H5D_FILL_TIME_IFSET
- VALUE 0
+ VALUE H5D_FILL_VALUE_DEFAULT
}
ALLOCATION_TIME {
H5D_ALLOC_TIME_INCR
diff --git a/tools/testfiles/vds/a.h5 b/tools/testfiles/vds/a.h5
new file mode 100644
index 0000000..fa19535
--- /dev/null
+++ b/tools/testfiles/vds/a.h5
Binary files differ
diff --git a/tools/testfiles/vds/b.h5 b/tools/testfiles/vds/b.h5
new file mode 100644
index 0000000..08449ca
--- /dev/null
+++ b/tools/testfiles/vds/b.h5
Binary files differ
diff --git a/tools/testfiles/vds/c.h5 b/tools/testfiles/vds/c.h5
new file mode 100644
index 0000000..ba9af30
--- /dev/null
+++ b/tools/testfiles/vds/c.h5
Binary files differ
diff --git a/tools/testfiles/vds/d.h5 b/tools/testfiles/vds/d.h5
new file mode 100644
index 0000000..8eceb4a
--- /dev/null
+++ b/tools/testfiles/vds/d.h5
Binary files differ
diff --git a/tools/testfiles/vds/f-0.h5 b/tools/testfiles/vds/f-0.h5
new file mode 100644
index 0000000..242df07
--- /dev/null
+++ b/tools/testfiles/vds/f-0.h5
Binary files differ
diff --git a/tools/testfiles/vds/f-3.h5 b/tools/testfiles/vds/f-3.h5
new file mode 100644
index 0000000..539c1c9
--- /dev/null
+++ b/tools/testfiles/vds/f-3.h5
Binary files differ
diff --git a/tools/testfiles/vds/tvds_layout-1.ddl b/tools/testfiles/vds/tvds_layout-1.ddl
index 5d8a62c..b5351f2 100644
--- a/tools/testfiles/vds/tvds_layout-1.ddl
+++ b/tools/testfiles/vds/tvds_layout-1.ddl
@@ -125,16 +125,10 @@ GROUP "/" {
}
}
}
- FILTERS {
- NONE
- }
FILLVALUE {
FILL_TIME H5D_FILL_TIME_IFSET
VALUE -9
}
- ALLOCATION_TIME {
- H5D_ALLOC_TIME_INCR
- }
DATA {
(0,0,0): 10, 10, 10, 10, 10, 10, 10, 10,
(0,1,0): 10, 10, 10, 10, 10, 10, 10, 10,
diff --git a/tools/testfiles/vds/tvds_layout-2.ddl b/tools/testfiles/vds/tvds_layout-2.ddl
index af6b718..53407c7 100644
--- a/tools/testfiles/vds/tvds_layout-2.ddl
+++ b/tools/testfiles/vds/tvds_layout-2.ddl
@@ -105,16 +105,10 @@ GROUP "/" {
}
}
}
- FILTERS {
- NONE
- }
FILLVALUE {
FILL_TIME H5D_FILL_TIME_IFSET
VALUE -9
}
- ALLOCATION_TIME {
- H5D_ALLOC_TIME_INCR
- }
DATA {
(0,0,0): 10, 10, 10, 10, 10, 10, 10, 40, 40, 40, 40, 40, 40, 40,
(0,1,0): 10, 10, 10, 10, 10, 10, 10, 40, 40, 40, 40, 40, 40, 40,
diff --git a/tools/testfiles/vds/tvds_layout-3_1.ddl b/tools/testfiles/vds/tvds_layout-3_1.ddl
index 968327d..e75fe36 100644
--- a/tools/testfiles/vds/tvds_layout-3_1.ddl
+++ b/tools/testfiles/vds/tvds_layout-3_1.ddl
@@ -125,16 +125,10 @@ GROUP "/" {
}
}
}
- FILTERS {
- NONE
- }
FILLVALUE {
FILL_TIME H5D_FILL_TIME_IFSET
VALUE -9
}
- ALLOCATION_TIME {
- H5D_ALLOC_TIME_INCR
- }
DATA {
(0,0,0): -9, -9, -9, -9, -9, -9, -9, -9,
(0,1,0): 10, 10, 10, 10, 10, 10, 10, 10,
diff --git a/tools/testfiles/vds/tvds_layout-3_2.ddl b/tools/testfiles/vds/tvds_layout-3_2.ddl
index 7e14ec2..5b63269 100644
--- a/tools/testfiles/vds/tvds_layout-3_2.ddl
+++ b/tools/testfiles/vds/tvds_layout-3_2.ddl
@@ -105,16 +105,10 @@ GROUP "/" {
}
}
}
- FILTERS {
- NONE
- }
FILLVALUE {
FILL_TIME H5D_FILL_TIME_IFSET
VALUE -9
}
- ALLOCATION_TIME {
- H5D_ALLOC_TIME_INCR
- }
DATA {
(0,0,0): -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9,
(0,0,15): -9, -9, -9, -9,
diff --git a/tools/testfiles/vds/tvds_layout-4.ddl b/tools/testfiles/vds/tvds_layout-4.ddl
index 018644e..a449d0c 100644
--- a/tools/testfiles/vds/tvds_layout-4.ddl
+++ b/tools/testfiles/vds/tvds_layout-4.ddl
@@ -25,16 +25,10 @@ GROUP "/" {
}
}
}
- FILTERS {
- NONE
- }
FILLVALUE {
FILL_TIME H5D_FILL_TIME_IFSET
VALUE -9
}
- ALLOCATION_TIME {
- H5D_ALLOC_TIME_INCR
- }
DATA {
(0,0,0): 10, 10, 10, 10,
(0,1,0): 10, 10, 10, 10,
diff --git a/tools/testfiles/vds/tvds_layout-5.ddl b/tools/testfiles/vds/tvds_layout-5.ddl
index b43629a..1698eb4 100644
--- a/tools/testfiles/vds/tvds_layout-5.ddl
+++ b/tools/testfiles/vds/tvds_layout-5.ddl
@@ -65,16 +65,10 @@ GROUP "/" {
}
}
}
- FILTERS {
- NONE
- }
FILLVALUE {
FILL_TIME H5D_FILL_TIME_IFSET
VALUE -9
}
- ALLOCATION_TIME {
- H5D_ALLOC_TIME_INCR
- }
DATA {
(0,0,0): 10, 10, 10, 10,
(0,1,0): 10, 10, 10, 10,
diff --git a/tools/testfiles/vds/vds-eiger.h5 b/tools/testfiles/vds/vds-eiger.h5
new file mode 100644
index 0000000..23d1fd3
--- /dev/null
+++ b/tools/testfiles/vds/vds-eiger.h5
Binary files differ
diff --git a/tools/testfiles/vds/vds-first.ddl b/tools/testfiles/vds/vds-first.ddl
new file mode 100644
index 0000000..97b1ecf
--- /dev/null
+++ b/tools/testfiles/vds/vds-first.ddl
@@ -0,0 +1,210 @@
+HDF5 "vds-percival-unlim-maxmin.h5" {
+GROUP "/" {
+ DATASET "VDS-Percival-unlim-maxmin" {
+ DATATYPE H5T_STD_I32LE
+ DATASPACE SIMPLE { ( 20, 10, 10 ) / ( H5S_UNLIMITED, 10, 10 ) }
+ DATA {
+ (0,0,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (0,1,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (0,2,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (0,3,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (0,4,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (0,5,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (0,6,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (0,7,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (0,8,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (0,9,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (1,0,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (1,1,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (1,2,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (1,3,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (1,4,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (1,5,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (1,6,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (1,7,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (1,8,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (1,9,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (2,0,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (2,1,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (2,2,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (2,3,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (2,4,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (2,5,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (2,6,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (2,7,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (2,8,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (2,9,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (3,0,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (3,1,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (3,2,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (3,3,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (3,4,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (3,5,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (3,6,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (3,7,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (3,8,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (3,9,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (4,0,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (4,1,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (4,2,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (4,3,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (4,4,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (4,5,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (4,6,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (4,7,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (4,8,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (4,9,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (5,0,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (5,1,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (5,2,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (5,3,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (5,4,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (5,5,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (5,6,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (5,7,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (5,8,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (5,9,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (6,0,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (6,1,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (6,2,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (6,3,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (6,4,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (6,5,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (6,6,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (6,7,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (6,8,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (6,9,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (7,0,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (7,1,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (7,2,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (7,3,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (7,4,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (7,5,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (7,6,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (7,7,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (7,8,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (7,9,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (8,0,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (8,1,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (8,2,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (8,3,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (8,4,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (8,5,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (8,6,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (8,7,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (8,8,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (8,9,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (9,0,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (9,1,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (9,2,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (9,3,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (9,4,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (9,5,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (9,6,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (9,7,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (9,8,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (9,9,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (10,0,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (10,1,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (10,2,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (10,3,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (10,4,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (10,5,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (10,6,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (10,7,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (10,8,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (10,9,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (11,0,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (11,1,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (11,2,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (11,3,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (11,4,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (11,5,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (11,6,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (11,7,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (11,8,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (11,9,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (12,0,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (12,1,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (12,2,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (12,3,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (12,4,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (12,5,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (12,6,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (12,7,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (12,8,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (12,9,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (13,0,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (13,1,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (13,2,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (13,3,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (13,4,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (13,5,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (13,6,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (13,7,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (13,8,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (13,9,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (14,0,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (14,1,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (14,2,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (14,3,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (14,4,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (14,5,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (14,6,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (14,7,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (14,8,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (14,9,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (15,0,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (15,1,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (15,2,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (15,3,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (15,4,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (15,5,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (15,6,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (15,7,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (15,8,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (15,9,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (16,0,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (16,1,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (16,2,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (16,3,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (16,4,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (16,5,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (16,6,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (16,7,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (16,8,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (16,9,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (17,0,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (17,1,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (17,2,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (17,3,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (17,4,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (17,5,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (17,6,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (17,7,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (17,8,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (17,9,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (18,0,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (18,1,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (18,2,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (18,3,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (18,4,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (18,5,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (18,6,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (18,7,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (18,8,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (18,9,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (19,0,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (19,1,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (19,2,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (19,3,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (19,4,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (19,5,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (19,6,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (19,7,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (19,8,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (19,9,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40
+ }
+ }
+}
+}
diff --git a/tools/testfiles/vds/vds-gap1.ddl b/tools/testfiles/vds/vds-gap1.ddl
new file mode 100644
index 0000000..cace781
--- /dev/null
+++ b/tools/testfiles/vds/vds-gap1.ddl
@@ -0,0 +1,58 @@
+HDF5 "vds-eiger.h5" {
+DATASET "/VDS-Eiger" {
+ DATATYPE H5T_STD_I32LE
+ DATASPACE SIMPLE { ( 5, 10, 10 ) / ( H5S_UNLIMITED, 10, 10 ) }
+ DATA {
+ (0,0,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (0,1,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (0,2,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (0,3,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (0,4,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (0,5,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (0,6,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (0,7,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (0,8,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (0,9,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (1,0,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (1,1,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (1,2,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (1,3,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (1,4,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (1,5,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (1,6,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (1,7,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (1,8,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (1,9,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (2,0,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (2,1,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (2,2,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (2,3,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (2,4,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (2,5,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (2,6,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (2,7,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (2,8,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (2,9,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (3,0,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (3,1,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (3,2,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (3,3,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (3,4,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (3,5,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (3,6,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (3,7,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (3,8,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (3,9,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (4,0,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (4,1,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (4,2,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (4,3,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (4,4,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (4,5,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (4,6,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (4,7,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (4,8,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (4,9,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ }
+}
+}
diff --git a/tools/testfiles/vds/vds-gap2.ddl b/tools/testfiles/vds/vds-gap2.ddl
new file mode 100644
index 0000000..24da48f
--- /dev/null
+++ b/tools/testfiles/vds/vds-gap2.ddl
@@ -0,0 +1,210 @@
+HDF5 "vds-eiger.h5" {
+GROUP "/" {
+ DATASET "VDS-Eiger" {
+ DATATYPE H5T_STD_I32LE
+ DATASPACE SIMPLE { ( 20, 10, 10 ) / ( H5S_UNLIMITED, 10, 10 ) }
+ DATA {
+ (0,0,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (0,1,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (0,2,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (0,3,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (0,4,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (0,5,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (0,6,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (0,7,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (0,8,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (0,9,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (1,0,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (1,1,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (1,2,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (1,3,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (1,4,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (1,5,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (1,6,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (1,7,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (1,8,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (1,9,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (2,0,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (2,1,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (2,2,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (2,3,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (2,4,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (2,5,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (2,6,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (2,7,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (2,8,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (2,9,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (3,0,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (3,1,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (3,2,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (3,3,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (3,4,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (3,5,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (3,6,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (3,7,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (3,8,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (3,9,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (4,0,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (4,1,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (4,2,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (4,3,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (4,4,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (4,5,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (4,6,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (4,7,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (4,8,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (4,9,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (5,0,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (5,1,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (5,2,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (5,3,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (5,4,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (5,5,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (5,6,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (5,7,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (5,8,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (5,9,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (6,0,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (6,1,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (6,2,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (6,3,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (6,4,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (6,5,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (6,6,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (6,7,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (6,8,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (6,9,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (7,0,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (7,1,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (7,2,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (7,3,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (7,4,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (7,5,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (7,6,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (7,7,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (7,8,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (7,9,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (8,0,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (8,1,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (8,2,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (8,3,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (8,4,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (8,5,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (8,6,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (8,7,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (8,8,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (8,9,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (9,0,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (9,1,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (9,2,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (9,3,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (9,4,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (9,5,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (9,6,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (9,7,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (9,8,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (9,9,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (10,0,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (10,1,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (10,2,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (10,3,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (10,4,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (10,5,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (10,6,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (10,7,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (10,8,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (10,9,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (11,0,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (11,1,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (11,2,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (11,3,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (11,4,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (11,5,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (11,6,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (11,7,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (11,8,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (11,9,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (12,0,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (12,1,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (12,2,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (12,3,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (12,4,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (12,5,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (12,6,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (12,7,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (12,8,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (12,9,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (13,0,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (13,1,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (13,2,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (13,3,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (13,4,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (13,5,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (13,6,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (13,7,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (13,8,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (13,9,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (14,0,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (14,1,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (14,2,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (14,3,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (14,4,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (14,5,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (14,6,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (14,7,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (14,8,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (14,9,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (15,0,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (15,1,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (15,2,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (15,3,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (15,4,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (15,5,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (15,6,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (15,7,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (15,8,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (15,9,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (16,0,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (16,1,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (16,2,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (16,3,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (16,4,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (16,5,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (16,6,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (16,7,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (16,8,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (16,9,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (17,0,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (17,1,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (17,2,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (17,3,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (17,4,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (17,5,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (17,6,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (17,7,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (17,8,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (17,9,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (18,0,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (18,1,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (18,2,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (18,3,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (18,4,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (18,5,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (18,6,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (18,7,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (18,8,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (18,9,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (19,0,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (19,1,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (19,2,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (19,3,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (19,4,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (19,5,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (19,6,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (19,7,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (19,8,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (19,9,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3
+ }
+ }
+}
+}
diff --git a/tools/testfiles/vds/vds-percival-unlim-maxmin.h5 b/tools/testfiles/vds/vds-percival-unlim-maxmin.h5
new file mode 100644
index 0000000..b7f8827
--- /dev/null
+++ b/tools/testfiles/vds/vds-percival-unlim-maxmin.h5
Binary files differ
diff --git a/tools/testfiles/vds/vds_layout-eiger.ddl b/tools/testfiles/vds/vds_layout-eiger.ddl
new file mode 100644
index 0000000..d32a139
--- /dev/null
+++ b/tools/testfiles/vds/vds_layout-eiger.ddl
@@ -0,0 +1,81 @@
+HDF5 "vds-eiger.h5" {
+GROUP "/" {
+ DATASET "VDS-Eiger" {
+ DATATYPE H5T_STD_I32LE
+ DATASPACE SIMPLE { ( 5, 10, 10 ) / ( H5S_UNLIMITED, 10, 10 ) }
+ STORAGE_LAYOUT {
+ MAPPING 0 {
+ VIRTUAL {
+ SELECTION REGULAR_HYPERSLAB {
+ START (0,0,0)
+ STRIDE (5,1,1)
+ COUNT (H5S_UNLIMITED,1,1)
+ BLOCK (5,10,10)
+ }
+ }
+ SOURCE {
+ FILE "f-%b.h5"
+ DATASET "A"
+ SELECTION ALL
+ }
+ }
+ }
+ FILLVALUE {
+ FILL_TIME H5D_FILL_TIME_IFSET
+ VALUE H5D_FILL_VALUE_DEFAULT
+ }
+ DATA {
+ (0,0,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (0,1,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (0,2,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (0,3,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (0,4,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (0,5,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (0,6,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (0,7,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (0,8,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (0,9,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (1,0,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (1,1,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (1,2,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (1,3,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (1,4,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (1,5,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (1,6,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (1,7,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (1,8,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (1,9,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (2,0,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (2,1,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (2,2,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (2,3,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (2,4,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (2,5,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (2,6,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (2,7,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (2,8,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (2,9,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (3,0,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (3,1,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (3,2,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (3,3,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (3,4,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (3,5,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (3,6,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (3,7,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (3,8,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (3,9,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (4,0,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (4,1,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (4,2,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (4,3,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (4,4,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (4,5,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (4,6,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (4,7,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (4,8,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (4,9,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ }
+ }
+}
+}
diff --git a/tools/testfiles/vds/vds_layout-maxmin.ddl b/tools/testfiles/vds/vds_layout-maxmin.ddl
new file mode 100644
index 0000000..790fc1c
--- /dev/null
+++ b/tools/testfiles/vds/vds_layout-maxmin.ddl
@@ -0,0 +1,416 @@
+HDF5 "vds-percival-unlim-maxmin.h5" {
+GROUP "/" {
+ DATASET "VDS-Percival-unlim-maxmin" {
+ DATATYPE H5T_STD_I32LE
+ DATASPACE SIMPLE { ( 32, 10, 10 ) / ( H5S_UNLIMITED, 10, 10 ) }
+ STORAGE_LAYOUT {
+ MAPPING 0 {
+ VIRTUAL {
+ SELECTION REGULAR_HYPERSLAB {
+ START (0,0,0)
+ STRIDE (4,1,1)
+ COUNT (H5S_UNLIMITED,1,1)
+ BLOCK (1,10,10)
+ }
+ }
+ SOURCE {
+ FILE "a.h5"
+ DATASET "A"
+ SELECTION REGULAR_HYPERSLAB {
+ START (0,0,0)
+ STRIDE (1,1,1)
+ COUNT (H5S_UNLIMITED,1,1)
+ BLOCK (1,10,10)
+ }
+ }
+ }
+ MAPPING 1 {
+ VIRTUAL {
+ SELECTION REGULAR_HYPERSLAB {
+ START (1,0,0)
+ STRIDE (4,1,1)
+ COUNT (H5S_UNLIMITED,1,1)
+ BLOCK (1,10,10)
+ }
+ }
+ SOURCE {
+ FILE "b.h5"
+ DATASET "B"
+ SELECTION REGULAR_HYPERSLAB {
+ START (0,0,0)
+ STRIDE (1,1,1)
+ COUNT (H5S_UNLIMITED,1,1)
+ BLOCK (1,10,10)
+ }
+ }
+ }
+ MAPPING 2 {
+ VIRTUAL {
+ SELECTION REGULAR_HYPERSLAB {
+ START (2,0,0)
+ STRIDE (4,1,1)
+ COUNT (H5S_UNLIMITED,1,1)
+ BLOCK (1,10,10)
+ }
+ }
+ SOURCE {
+ FILE "c.h5"
+ DATASET "C"
+ SELECTION REGULAR_HYPERSLAB {
+ START (0,0,0)
+ STRIDE (1,1,1)
+ COUNT (H5S_UNLIMITED,1,1)
+ BLOCK (1,10,10)
+ }
+ }
+ }
+ MAPPING 3 {
+ VIRTUAL {
+ SELECTION REGULAR_HYPERSLAB {
+ START (3,0,0)
+ STRIDE (4,1,1)
+ COUNT (H5S_UNLIMITED,1,1)
+ BLOCK (1,10,10)
+ }
+ }
+ SOURCE {
+ FILE "d.h5"
+ DATASET "D"
+ SELECTION REGULAR_HYPERSLAB {
+ START (0,0,0)
+ STRIDE (1,1,1)
+ COUNT (H5S_UNLIMITED,1,1)
+ BLOCK (1,10,10)
+ }
+ }
+ }
+ }
+ FILLVALUE {
+ FILL_TIME H5D_FILL_TIME_IFSET
+ VALUE H5D_FILL_VALUE_DEFAULT
+ }
+ DATA {
+ (0,0,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (0,1,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (0,2,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (0,3,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (0,4,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (0,5,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (0,6,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (0,7,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (0,8,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (0,9,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (1,0,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (1,1,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (1,2,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (1,3,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (1,4,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (1,5,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (1,6,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (1,7,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (1,8,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (1,9,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (2,0,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (2,1,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (2,2,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (2,3,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (2,4,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (2,5,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (2,6,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (2,7,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (2,8,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (2,9,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (3,0,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (3,1,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (3,2,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (3,3,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (3,4,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (3,5,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (3,6,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (3,7,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (3,8,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (3,9,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (4,0,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (4,1,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (4,2,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (4,3,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (4,4,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (4,5,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (4,6,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (4,7,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (4,8,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (4,9,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (5,0,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (5,1,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (5,2,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (5,3,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (5,4,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (5,5,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (5,6,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (5,7,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (5,8,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (5,9,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (6,0,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (6,1,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (6,2,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (6,3,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (6,4,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (6,5,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (6,6,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (6,7,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (6,8,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (6,9,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (7,0,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (7,1,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (7,2,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (7,3,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (7,4,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (7,5,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (7,6,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (7,7,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (7,8,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (7,9,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (8,0,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (8,1,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (8,2,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (8,3,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (8,4,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (8,5,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (8,6,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (8,7,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (8,8,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (8,9,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (9,0,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (9,1,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (9,2,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (9,3,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (9,4,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (9,5,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (9,6,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (9,7,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (9,8,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (9,9,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (10,0,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (10,1,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (10,2,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (10,3,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (10,4,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (10,5,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (10,6,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (10,7,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (10,8,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (10,9,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (11,0,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (11,1,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (11,2,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (11,3,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (11,4,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (11,5,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (11,6,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (11,7,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (11,8,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (11,9,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (12,0,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (12,1,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (12,2,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (12,3,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (12,4,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (12,5,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (12,6,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (12,7,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (12,8,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (12,9,0): 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ (13,0,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (13,1,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (13,2,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (13,3,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (13,4,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (13,5,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (13,6,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (13,7,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (13,8,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (13,9,0): 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ (14,0,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (14,1,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (14,2,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (14,3,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (14,4,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (14,5,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (14,6,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (14,7,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (14,8,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (14,9,0): 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ (15,0,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (15,1,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (15,2,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (15,3,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (15,4,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (15,5,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (15,6,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (15,7,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (15,8,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (15,9,0): 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ (16,0,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (16,1,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (16,2,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (16,3,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (16,4,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (16,5,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (16,6,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (16,7,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (16,8,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (16,9,0): 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ (17,0,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (17,1,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (17,2,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (17,3,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (17,4,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (17,5,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (17,6,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (17,7,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (17,8,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (17,9,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (18,0,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (18,1,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (18,2,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (18,3,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (18,4,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (18,5,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (18,6,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (18,7,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (18,8,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (18,9,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (19,0,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (19,1,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (19,2,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (19,3,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (19,4,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (19,5,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (19,6,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (19,7,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (19,8,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (19,9,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (20,0,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (20,1,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (20,2,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (20,3,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (20,4,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (20,5,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (20,6,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (20,7,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (20,8,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (20,9,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (21,0,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (21,1,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (21,2,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (21,3,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (21,4,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (21,5,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (21,6,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (21,7,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (21,8,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (21,9,0): 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ (22,0,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (22,1,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (22,2,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (22,3,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (22,4,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (22,5,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (22,6,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (22,7,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (22,8,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (22,9,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (23,0,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (23,1,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (23,2,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (23,3,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (23,4,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (23,5,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (23,6,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (23,7,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (23,8,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (23,9,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (24,0,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (24,1,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (24,2,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (24,3,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (24,4,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (24,5,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (24,6,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (24,7,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (24,8,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (24,9,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (25,0,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (25,1,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (25,2,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (25,3,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (25,4,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (25,5,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (25,6,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (25,7,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (25,8,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (25,9,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (26,0,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (26,1,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (26,2,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (26,3,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (26,4,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (26,5,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (26,6,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (26,7,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (26,8,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (26,9,0): 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ (27,0,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (27,1,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (27,2,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (27,3,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (27,4,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (27,5,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (27,6,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (27,7,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (27,8,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (27,9,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (28,0,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (28,1,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (28,2,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (28,3,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (28,4,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (28,5,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (28,6,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (28,7,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (28,8,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (28,9,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (29,0,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (29,1,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (29,2,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (29,3,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (29,4,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (29,5,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (29,6,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (29,7,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (29,8,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (29,9,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (30,0,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (30,1,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (30,2,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (30,3,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (30,4,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (30,5,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (30,6,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (30,7,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (30,8,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (30,9,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (31,0,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (31,1,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (31,2,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (31,3,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (31,4,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (31,5,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (31,6,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (31,7,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (31,8,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ (31,9,0): 40, 40, 40, 40, 40, 40, 40, 40, 40, 40
+ }
+ }
+}
+}