summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAllen Byrne <byrn@hdfgroup.org>2013-02-18 19:03:53 (GMT)
committerAllen Byrne <byrn@hdfgroup.org>2013-02-18 19:03:53 (GMT)
commit1629fd1ee78c33fdfd8328eef520a7e10aa945a8 (patch)
tree492cbade970f0660eb3436c5bcde3e712e30e37e
parent79bc86c220bfc7de65f1fe5e5c49088d9cfbd659 (diff)
downloadhdf5-1629fd1ee78c33fdfd8328eef520a7e10aa945a8.zip
hdf5-1629fd1ee78c33fdfd8328eef520a7e10aa945a8.tar.gz
hdf5-1629fd1ee78c33fdfd8328eef520a7e10aa945a8.tar.bz2
[svn-r23301]
-rw-r--r--.autotools42
-rw-r--r--MANIFEST64
-rwxr-xr-xconfig/cmake/CTestCustom.cmake67
-rw-r--r--config/cmake/HDFMacros.cmake25
-rw-r--r--config/cmake/grepTest.cmake2
-rwxr-xr-xconfig/cmake/mccacheinit.cmake7
-rw-r--r--release_docs/USING_CMake.txt12
-rw-r--r--tools/h5copy/CMakeLists.txt418
-rw-r--r--tools/h5copy/testfiles/h5copy_misc1.out2
-rw-r--r--tools/h5copy/testh5copy.sh.in4
-rw-r--r--tools/h5diff/CMakeLists.txt26
-rw-r--r--tools/h5dump/CMakeLists.txt643
-rw-r--r--tools/h5dump/h5dump.c382
-rw-r--r--tools/h5dump/h5dump_ddl.c72
-rw-r--r--tools/h5dump/h5dump_defines.h10
-rw-r--r--tools/h5dump/h5dumpgentest.c475
-rw-r--r--tools/h5dump/testh5dump.sh.in53
-rw-r--r--tools/h5dump/testh5dumppbits.sh.in4
-rw-r--r--tools/h5dump/testh5dumpxml.sh.in30
-rw-r--r--tools/h5import/CMakeLists.txt265
-rw-r--r--tools/h5ls/CMakeLists.txt5
-rw-r--r--tools/h5ls/h5ls.c12
-rw-r--r--tools/h5repack/CMakeLists.txt397
-rw-r--r--tools/h5stat/CMakeLists.txt5
-rw-r--r--tools/lib/h5tools.c82
-rw-r--r--tools/lib/h5tools.h7
-rw-r--r--tools/lib/h5tools_dump.c8
-rw-r--r--tools/lib/h5tools_str.c375
-rw-r--r--tools/lib/h5tools_utils.c20
-rw-r--r--tools/misc/CMakeLists.txt281
-rw-r--r--tools/misc/testh5mkgrp.sh.in126
-rw-r--r--tools/testfiles/h5dump-help.txt2
-rw-r--r--tools/testfiles/h5mkgrp_nested_lp.ls13
-rw-r--r--tools/testfiles/h5mkgrp_nested_mult_lp.ls21
-rw-r--r--tools/testfiles/h5mkgrp_nested_mult_p.ls16
-rw-r--r--tools/testfiles/h5mkgrp_nested_p.ls10
-rw-r--r--tools/testfiles/h5mkgrp_several.ls5
-rw-r--r--tools/testfiles/h5mkgrp_several_l.ls13
-rw-r--r--tools/testfiles/h5mkgrp_several_p.ls10
-rw-r--r--tools/testfiles/h5mkgrp_several_v.ls10
-rw-r--r--tools/testfiles/h5mkgrp_single.ls5
-rw-r--r--tools/testfiles/h5mkgrp_single_l.ls9
-rw-r--r--tools/testfiles/h5mkgrp_single_p.ls7
-rw-r--r--tools/testfiles/h5mkgrp_single_v.ls7
-rw-r--r--tools/testfiles/h5mkgrp_version.ls4
-rw-r--r--tools/testfiles/help-1.ls4
-rw-r--r--tools/testfiles/help-2.ls4
-rw-r--r--tools/testfiles/help-3.ls4
-rw-r--r--tools/testfiles/tall-6.exp11
-rw-r--r--tools/testfiles/textlinksrc-nodangle-1.ls4
-rw-r--r--tools/testfiles/tgroup-1.ls4
-rw-r--r--tools/testfiles/tnoattrdata.ddl39
-rw-r--r--tools/testfiles/tnoattrddl.ddl7
-rw-r--r--tools/testfiles/tnodata.ddl58
-rw-r--r--tools/testfiles/tnoddl.ddl402
-rw-r--r--tools/testfiles/tnoddlfile.ddl0
-rw-r--r--tools/testfiles/tnoddlfile.exp402
-rw-r--r--tools/testfiles/tnofilename-with-packed-bits.ddl2
-rw-r--r--tools/testfiles/tpbitsIncomplete.ddl2
-rw-r--r--tools/testfiles/tpbitsLengthExceeded.ddl2
-rw-r--r--tools/testfiles/tpbitsLengthPositive.ddl2
-rw-r--r--tools/testfiles/tpbitsMaxExceeded.ddl2
-rw-r--r--tools/testfiles/tpbitsOffsetExceeded.ddl2
-rw-r--r--tools/testfiles/tpbitsOffsetNegative.ddl2
-rw-r--r--tools/testfiles/trawdatafile.ddl58
-rw-r--r--tools/testfiles/trawdatafile.exp402
-rw-r--r--tools/testfiles/tscalarattrintsize.ddl130
-rw-r--r--tools/testfiles/tscalarattrintsize.h5bin0 -> 12944 bytes
-rw-r--r--tools/testfiles/tscalarintsize.ddl130
-rw-r--r--tools/testfiles/tscalarintsize.h5bin0 -> 15968 bytes
-rw-r--r--tools/testfiles/tscalarstring.ddl28
-rw-r--r--tools/testfiles/tscalarstring.h5bin0 -> 2208 bytes
-rw-r--r--tools/testfiles/twithddl.exp58
-rw-r--r--tools/testfiles/twithddlfile.ddl0
-rw-r--r--tools/testfiles/twithddlfile.exp402
75 files changed, 4811 insertions, 1403 deletions
diff --git a/.autotools b/.autotools
new file mode 100644
index 0000000..8daaeec
--- /dev/null
+++ b/.autotools
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configurations>
+<configuration id="cdt.managedbuild.toolchain.gnu.base.1090433295">
+<option id="configure" value="configure"/>
+<option id="configdir" value=""/>
+<option id="cache-file" value=""/>
+<option id="help" value="false"/>
+<option id="no-create" value="false"/>
+<option id="quiet" value="false"/>
+<option id="version" value="false"/>
+<option id="host" value=""/>
+<option id="build" value=""/>
+<option id="target" value=""/>
+<option id="prefix" value=""/>
+<option id="exec-prefix" value=""/>
+<option id="libdir" value=""/>
+<option id="bindir" value=""/>
+<option id="sbindir" value=""/>
+<option id="includedir" value=""/>
+<option id="datadir" value=""/>
+<option id="sysconfdir" value=""/>
+<option id="infodir" value=""/>
+<option id="mandir" value=""/>
+<option id="srcdir" value=""/>
+<option id="localstatedir" value=""/>
+<option id="sharedstatedir" value=""/>
+<option id="libexecdir" value=""/>
+<option id="oldincludedir" value=""/>
+<option id="program-prefix" value=""/>
+<option id="program-suffix" value=""/>
+<option id="program-transform-name" value=""/>
+<option id="enable-maintainer-mode" value="false"/>
+<flag id="CFLAGS">
+<flagvalue id="cflags-debug" value="false"/>
+<flagvalue id="cflags-gprof" value="false"/>
+<flagvalue id="cflags-gcov" value="false"/>
+</flag>
+<option id="user" value=""/>
+<option id="autogen" value="autogen.sh"/>
+<option id="autogenOpts" value=""/>
+</configuration>
+</configurations>
diff --git a/MANIFEST b/MANIFEST
index 6b2a929..136c53f 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -1202,6 +1202,7 @@
./tools/testfiles/tall-4s.ddl
./tools/testfiles/tall-5s.ddl
./tools/testfiles/tall-6.ddl
+./tools/testfiles/tall-6.exp
./tools/testfiles/tall.h5
./tools/testfiles/tarray1.ddl
./tools/testfiles/tarray1.h5
@@ -1320,14 +1321,28 @@
./tools/testfiles/tnestedcomp.h5
./tools/testfiles/tnestedcmpddt.ddl
./tools/testfiles/tnestedcmpddt.h5
+./tools/testfiles/tnoattrdata.ddl
+./tools/testfiles/tnoattrddl.ddl
+./tools/testfiles/tnodata.ddl
+./tools/testfiles/tnoddl.ddl
+./tools/testfiles/tnoddlfile.ddl
+./tools/testfiles/tnoddlfile.exp
./tools/testfiles/tno-subset.h5
./tools/testfiles/tno-subset.ddl
./tools/testfiles/tnullspace.h5
./tools/testfiles/tnullspace.ddl
./tools/testfiles/tobjref.h5
./tools/testfiles/topaque.h5
+./tools/testfiles/trawdatafile.ddl
+./tools/testfiles/trawdatafile.exp
./tools/testfiles/tsaf.ddl
./tools/testfiles/tsaf.h5
+./tools/testfiles/tscalarattrintsize.ddl
+./tools/testfiles/tscalarattrintsize.h5
+./tools/testfiles/tscalarintsize.ddl
+./tools/testfiles/tscalarintsize.h5
+./tools/testfiles/tscalarstring.ddl
+./tools/testfiles/tscalarstring.h5
./tools/testfiles/tscaleoffset.ddl
./tools/testfiles/tslink-1.ddl
./tools/testfiles/tslink-2.ddl
@@ -1411,6 +1426,9 @@
./tools/testfiles/tbigdims.h5
./tools/testfiles/thyperslab.h5
./tools/testfiles/twidedisplay.ddl
+./tools/testfiles/twithddl.exp
+./tools/testfiles/twithddlfile.ddl
+./tools/testfiles/twithddlfile.exp
# h5dump test error files
./tools/h5dump/errfiles/filter_fail.err
@@ -1891,29 +1909,29 @@
./tools/h5diff/testfiles/non_comparables2.h5
#test files for h5repack
-./tools/h5repack/testfiles/h5repack_szip.h5
./tools/h5repack/testfiles/h5repack_fill.h5
-./tools/h5repack/testfiles/ublock.bin
-./tools/h5repack/testfiles/h5repack_ext.bin
-./tools/h5repack/testfiles/h5repack_fletcher.h5
-./tools/h5repack/testfiles/h5repack_nbit.h5
-./tools/h5repack/testfiles/h5repack_shuffle.h5
./tools/h5repack/testfiles/h5repack_objs.h5
-./tools/h5repack/testfiles/h5repack.info
-./tools/h5repack/testfiles/h5repack_ext.h5
-./tools/h5repack/testfiles/h5repack_deflate.h5
-./tools/h5repack/testfiles/h5repack_hlink.h5
-./tools/h5repack/testfiles/h5repack_filters.h5
-./tools/h5repack/testfiles/h5repack_soffset.h5
./tools/h5repack/testfiles/h5repack_attr.h5
-./tools/h5repack/testfiles/h5repack_attr_refs.h5
-./tools/h5repack/testfiles/h5repack_early.h5
+./tools/h5repack/testfiles/h5repack_hlink.h5
./tools/h5repack/testfiles/h5repack_layout.h5
./tools/h5repack/testfiles/h5repack_layouto.h5
./tools/h5repack/testfiles/h5repack_layout2.h5
./tools/h5repack/testfiles/h5repack_layout3.h5
+./tools/h5repack/testfiles/h5repack_early.h5
+./tools/h5repack/testfiles/h5repack_szip.h5
+./tools/h5repack/testfiles/h5repack_deflate.h5
+./tools/h5repack/testfiles/h5repack_shuffle.h5
+./tools/h5repack/testfiles/h5repack_fletcher.h5
+./tools/h5repack/testfiles/h5repack_filters.h5
+./tools/h5repack/testfiles/h5repack_nbit.h5
+./tools/h5repack/testfiles/h5repack_soffset.h5
+./tools/h5repack/testfiles/h5repack.info
+./tools/h5repack/testfiles/h5repack_ext.bin
+./tools/h5repack/testfiles/h5repack_ext.h5
+./tools/h5repack/testfiles/ublock.bin
./tools/h5repack/testfiles/h5repack_named_dtypes.h5
./tools/h5repack/testfiles/h5repack_refs.h5
+./tools/h5repack/testfiles/h5repack_attr_refs.h5
# jam utility and tests
./tools/h5jam/h5jam.c
@@ -1948,16 +1966,18 @@
./tools/h5copy/testfiles/h5copy_misc1.out
# test files for h5mkgrp
-./tools/testfiles/h5mkgrp_help.ls
-./tools/testfiles/h5mkgrp_nested.ls
-./tools/testfiles/h5mkgrp_nested_latest.ls
-./tools/testfiles/h5mkgrp_nested_mult.ls
-./tools/testfiles/h5mkgrp_nested_mult_latest.ls
+./tools/testfiles/h5mkgrp_nested_p.ls
+./tools/testfiles/h5mkgrp_nested_lp.ls
+./tools/testfiles/h5mkgrp_nested_mult_p.ls
+./tools/testfiles/h5mkgrp_nested_mult_lp.ls
./tools/testfiles/h5mkgrp_several.ls
-./tools/testfiles/h5mkgrp_several_latest.ls
+./tools/testfiles/h5mkgrp_several_v.ls
+./tools/testfiles/h5mkgrp_several_p.ls
+./tools/testfiles/h5mkgrp_several_l.ls
./tools/testfiles/h5mkgrp_single.ls
-./tools/testfiles/h5mkgrp_single_latest.ls
-./tools/testfiles/h5mkgrp_version.ls
+./tools/testfiles/h5mkgrp_single_v.ls
+./tools/testfiles/h5mkgrp_single_p.ls
+./tools/testfiles/h5mkgrp_single_l.ls
# high level libraries
diff --git a/config/cmake/CTestCustom.cmake b/config/cmake/CTestCustom.cmake
index 1baf580..76a403e 100755
--- a/config/cmake/CTestCustom.cmake
+++ b/config/cmake/CTestCustom.cmake
@@ -37,35 +37,15 @@ SET (CTEST_CUSTOM_MEMCHECK_IGNORE
hl_test-clear-objects
hl_fortran_test-clear-objects
######### tools/h5copy #########
- H5COPY-clear-refs
- H5COPY-clear-ext-links
- H5COPY-clear-misc
+ H5COPY-clearall-objects
######### tools/h5diff #########
H5DIFF-clearall-objects
######### tools/h5dump #########
H5DUMP-clearall-objects
- H5DUMP-clear-out1
- H5DUMP-clear-out3
- H5DUMP-clear-objects
H5DUMP_PACKED_BITS-clearall-objects
H5DUMP-XML-clearall-objects
######### tools/h5import #########
- H5IMPORT-ASCII_I32-clear-objects
- H5IMPORT-ASCII_I16-clear-objects
- H5IMPORT-ASCII_I8-clear-objects
- H5IMPORT-ASCII_UI16-clear-objects
- H5IMPORT-ASCII_UI32-clear-objects
- H5IMPORT-ASCII_F32-clear-objects
- H5IMPORT-ASCII_F64-clear-objects
- H5IMPORT-BINARY_F64-clear-objects
- H5IMPORT-BINARY_I8-clear-objects
- H5IMPORT-BINARY_I16-clear-objects
- H5IMPORT-BINARY_I32-clear-objects
- H5IMPORT-BINARY_UI16-clear-objects
- H5IMPORT-BINARY_UI32-clear-objects
- H5IMPORT-STR-clear-objects
- H5IMPORT-BINARY_I8_EOF-clear-objects
- H5IMPORT-ASCII_F64_R1-clear-objects
+ H5IMPORT-clear-objects
######### tools/h5jam #########
H5JAM-SETUP-N_twithub_u10_c-clear-objects
H5JAM-SETUP-N_twithub_u10_c
@@ -224,47 +204,8 @@ SET (CTEST_CUSTOM_MEMCHECK_IGNORE
######### tools/h5stat #########
H5STAT-clearall-objects
######### tools/misc #########
- h5repart_20K-clear-objects
- h5repart_5K-clear-objects
- h5repart_sec2-clear-objects
- H5MKGRP_CMP-clear-h5mkgrp_help
- H5MKGRP_CMP-clear-h5mkgrp_version
- H5MKGRP-clear-h5mkgrp_single
- H5MKGRP-h5mkgrp_single #uses runTest.cmake
- H5MKGRP-h5ls-h5mkgrp_single #uses runTest.cmake
- H5MKGRP-clear-h5mkgrp_single-v
- H5MKGRP-h5mkgrp_single-v #uses runTest.cmake
- H5MKGRP-h5ls-h5mkgrp_single-v #uses runTest.cmake
- H5MKGRP-clear-h5mkgrp_single-p
- H5MKGRP-h5mkgrp_single-p #uses runTest.cmake
- H5MKGRP-h5ls-h5mkgrp_single-p #uses runTest.cmake
- H5MKGRP-clear-h5mkgrp_single_latest-l
- H5MKGRP-h5mkgrp_single_latest-l #uses runTest.cmake
- H5MKGRP-h5ls-h5mkgrp_single_latest-l #uses runTest.cmake
- H5MKGRP-clear-h5mkgrp_several
- H5MKGRP-h5mkgrp_several #uses runTest.cmake
- H5MKGRP-h5ls-h5mkgrp_several #uses runTest.cmake
- H5MKGRP-clear-h5mkgrp_several-v
- H5MKGRP-h5mkgrp_several-v #uses runTest.cmake
- H5MKGRP-h5ls-h5mkgrp_several-v #uses runTest.cmake
- H5MKGRP-clear-h5mkgrp_several-p
- H5MKGRP-h5mkgrp_several-p #uses runTest.cmake
- H5MKGRP-h5ls-h5mkgrp_several-p #uses runTest.cmake
- H5MKGRP-clear-h5mkgrp_several_latest-l
- H5MKGRP-h5mkgrp_several_latest-l #uses runTest.cmake
- H5MKGRP-h5ls-h5mkgrp_several_latest-l #uses runTest.cmake
- H5MKGRP-clear-h5mkgrp_nested-p
- H5MKGRP-h5mkgrp_nested-p #uses runTest.cmake
- H5MKGRP-h5ls-h5mkgrp_nested-p #uses runTest.cmake
- H5MKGRP-clear-h5mkgrp_nested_latest-lp
- H5MKGRP-h5mkgrp_nested_latest-lp #uses runTest.cmake
- H5MKGRP-h5ls-h5mkgrp_nested_latest-lp #uses runTest.cmake
- H5MKGRP-clear-h5mkgrp_nested_mult-p
- H5MKGRP-h5mkgrp_nested_mult-p #uses runTest.cmake
- H5MKGRP-h5ls-h5mkgrp_nested_mult-p #uses runTest.cmake
- H5MKGRP-clear-h5mkgrp_nested_mult_latest-lp
- H5MKGRP-h5mkgrp_nested_mult_latest-lp #uses runTest.cmake
- H5MKGRP-h5ls-h5mkgrp_nested_mult_latest-lp #uses runTest.cmake
+ H5REPART-clearall-objects
+ H5MKGRP-clearall-objects
######### examples #########
EXAMPLES-clear-objects
cpp_ex-clear-objects
diff --git a/config/cmake/HDFMacros.cmake b/config/cmake/HDFMacros.cmake
index 499c227..099b97f 100644
--- a/config/cmake/HDFMacros.cmake
+++ b/config/cmake/HDFMacros.cmake
@@ -37,12 +37,7 @@ ENDMACRO (IDE_SOURCE_PROPERTIES)
MACRO (TARGET_NAMING libtarget libtype)
IF (WIN32)
IF (${libtype} MATCHES "SHARED")
- IF (HDF_LEGACY_NAMING)
- SET_TARGET_PROPERTIES (${libtarget} PROPERTIES OUTPUT_NAME "dll")
- SET_TARGET_PROPERTIES (${libtarget} PROPERTIES PREFIX "${libtarget}")
- ELSE (HDF_LEGACY_NAMING)
- SET_TARGET_PROPERTIES (${libtarget} PROPERTIES OUTPUT_NAME "${libtarget}dll")
- ENDIF (HDF_LEGACY_NAMING)
+ SET_TARGET_PROPERTIES (${libtarget} PROPERTIES OUTPUT_NAME "${libtarget}dll")
ENDIF (${libtype} MATCHES "SHARED")
ENDIF (WIN32)
ENDMACRO (TARGET_NAMING)
@@ -83,26 +78,16 @@ MACRO (HDF_SET_LIB_OPTIONS libtarget libname libtype)
# message (STATUS "${libname} libtype: ${libtype}")
IF (${libtype} MATCHES "SHARED")
IF (WIN32)
- IF (HDF_LEGACY_NAMING)
- SET (LIB_RELEASE_NAME "${libname}dll")
- SET (LIB_DEBUG_NAME "${libname}ddll")
- ELSE (HDF_LEGACY_NAMING)
- SET (LIB_RELEASE_NAME "${libname}")
- SET (LIB_DEBUG_NAME "${libname}_D")
- ENDIF (HDF_LEGACY_NAMING)
+ SET (LIB_RELEASE_NAME "${libname}")
+ SET (LIB_DEBUG_NAME "${libname}_D")
ELSE (WIN32)
SET (LIB_RELEASE_NAME "${libname}")
SET (LIB_DEBUG_NAME "${libname}_debug")
ENDIF (WIN32)
ELSE (${libtype} MATCHES "SHARED")
IF (WIN32)
- IF (HDF_LEGACY_NAMING)
- SET (LIB_RELEASE_NAME "${libname}")
- SET (LIB_DEBUG_NAME "${libname}d")
- ELSE (HDF_LEGACY_NAMING)
- SET (LIB_RELEASE_NAME "lib${libname}")
- SET (LIB_DEBUG_NAME "lib${libname}_D")
- ENDIF (HDF_LEGACY_NAMING)
+ SET (LIB_RELEASE_NAME "lib${libname}")
+ SET (LIB_DEBUG_NAME "lib${libname}_D")
ELSE (WIN32)
# if the generator supports configuration types or if the CMAKE_BUILD_TYPE has a value
IF (CMAKE_CONFIGURATION_TYPES OR CMAKE_BUILD_TYPE)
diff --git a/config/cmake/grepTest.cmake b/config/cmake/grepTest.cmake
index 365d9c3..74ac912 100644
--- a/config/cmake/grepTest.cmake
+++ b/config/cmake/grepTest.cmake
@@ -57,7 +57,7 @@ IF (${TEST_EXPECT} STREQUAL "1")
IF (NOT ${TEST_RESULT} STREQUAL "0")
MESSAGE (FATAL_ERROR "Failed: The output of ${TEST_PROGRAM} did contain ${TEST_FILTER}")
ENDIF (NOT ${TEST_RESULT} STREQUAL "0")
-ENDIF (${TEST_EXPECT} STREQUAL "0")
+ENDIF (${TEST_EXPECT} STREQUAL "1")
# everything went fine...
MESSAGE ("Passed: The output of ${TEST_PROGRAM} matched")
diff --git a/config/cmake/mccacheinit.cmake b/config/cmake/mccacheinit.cmake
index 418e178..03896fb 100755
--- a/config/cmake/mccacheinit.cmake
+++ b/config/cmake/mccacheinit.cmake
@@ -8,6 +8,8 @@ SET (BUILD_SHARED_LIBS OFF CACHE BOOL "Build Shared Libraries" FORCE)
SET (BUILD_TESTING ON CACHE BOOL "Build HDF5 Unit Testing" FORCE)
+SET (HDF_PACKAGE_EXT "" CACHE STRING "Name of HDF package extension" FORCE)
+
SET (HDF5_BUILD_CPP_LIB ON CACHE BOOL "Build HDF5 C++ Library" FORCE)
SET (HDF5_BUILD_EXAMPLES ON CACHE BOOL "Build HDF5 Library Examples" FORCE)
@@ -56,7 +58,7 @@ SET (HDF5_ENABLE_THREADSAFE OFF CACHE BOOL "(WINDOWS)Enable Threadsafety" FORCE)
SET (HDF5_PACKAGE_EXTLIBS OFF CACHE BOOL "(WINDOWS)CPACK - include external libraries" FORCE)
-SET (HDF5_NO_PACKAGES OFF CACHE BOOL "CPACK - Disable packaging" FORCE)
+SET (HDF5_NO_PACKAGES ON CACHE BOOL "CPACK - Disable packaging" FORCE)
SET (HDF5_ALLOW_EXTERNAL_SUPPORT "NO" CACHE STRING "Allow External Library Building" FORCE)
@@ -72,3 +74,6 @@ SET (CMAKE_BUILD_TYPE "Debug" CACHE STRING "Build Debug" FORCE)
SET (CTEST_BUILD_CONFIGURATION "Debug" CACHE STRING "Build Debug" FORCE)
+SET (ZLIB_PACKAGE_NAME "zlib" CACHE STRING "Name of ZLIB package" FORCE)
+
+SET (SZIP_PACKAGE_NAME "szip" CACHE STRING "Name of SZIP package" FORCE)
diff --git a/release_docs/USING_CMake.txt b/release_docs/USING_CMake.txt
index 4397750..e4e05ed 100644
--- a/release_docs/USING_CMake.txt
+++ b/release_docs/USING_CMake.txt
@@ -4,14 +4,14 @@
Notes: This short instruction is written for users who want to quickly build
HDF5 Applications from the HDF5 Examples package using the CMake tools.
- Users can adapt these instructions for their own applicaltions, see the
+ Users can adapt these instructions for their own applications, see the
"Minimum Project Files" section.
More information about using CMake can be found at the KitWare site,
www.cmake.org.
CMake uses the command line, however the visual CMake tool is
- available for the configuration step. The steps are similiar for
+ available for the configuration step. The steps are similar for
all the operating systems supported by CMake.
NOTES:
@@ -62,7 +62,7 @@ Notes: This short instruction is written for users who want to quickly build
available in your Start menu. For Linux, UNIX, and Mac users the
executable is named "cmake-gui" and can be found where CMake was
installed.
- Specify the source and build directories. It is recommemded that you
+ Specify the source and build directories. It is recommended that you
choose a build directory different then the source directory
(for example on Windows, if the source is at c:\MyHDFstuff\hdf5, then
use c:\MyHDFstuff\hdf5\build or c:\MyHDFstuff\build\hdf5).
@@ -156,7 +156,7 @@ Notes: This short instruction is written for users who want to quickly build
========================================================================
- Using HDF5 Libraries with Visual Studio 2008
+ Using Visual Studio 2008 with HDF5 Libraries built with Visual Studio 2008
========================================================================
8. Set up path for external libraries and headers
@@ -168,11 +168,11 @@ Notes: This short instruction is written for users who want to quickly build
and select "x64".
8.2 Find the box "Show directories for", choose "Include files", add the
- header path (i.e. c:\Program Files\HDF Group\HDF5\hdf5-1.8.7\include)
+ header path (i.e. c:\Program Files\HDF Group\HDF5\hdf5-1.8.x\include)
to the included directories.
8.3 Find the box "Show directories for", choose "Library files", add the
- library path (i.e. c:\Program Files\HDF Group\HDF5\hdf5-1.8.7\lib)
+ library path (i.e. c:\Program Files\HDF Group\HDF5\hdf5-1.8.x\lib)
to the library directories.
8.4 If using Fortran libraries, you will also need to setup the path
diff --git a/tools/h5copy/CMakeLists.txt b/tools/h5copy/CMakeLists.txt
index 970cc12..60e940a 100644
--- a/tools/h5copy/CMakeLists.txt
+++ b/tools/h5copy/CMakeLists.txt
@@ -62,20 +62,6 @@ IF (BUILD_TESTING)
ARGS -E copy_if_different ${listfiles} ${dest}
)
ENDFOREACH (listfiles ${LIST_HDF5_TEST_FILES} ${LIST_OTHER_TEST_FILES})
-
- #
- # This section can be removed, but leave here for a reference later.
- # Purpose: '-l3' ignores top 3 lines when copy text file.
- #
- #FOREACH (listfiles ${LIST_OTHER_TEST_FILES})
- # SET (lsdest "${PROJECT_BINARY_DIR}/testfiles/${listfiles}")
- # ADD_CUSTOM_COMMAND (
- # TARGET h5copy
- # POST_BUILD
- # COMMAND ${XLATE_UTILITY}
- # ARGS ${HDF5_TOOLS_H5COPY_SOURCE_DIR}/testfiles/${listfiles} ${lsdest} -l3
- # )
- #ENDFOREACH (listfiles ${LIST_OTHER_TEST_FILES})
##############################################################################
##############################################################################
@@ -86,89 +72,225 @@ IF (BUILD_TESTING)
#
# Perform h5copy according to passing parmeters
#
- MACRO (ADD_H5_F_TEST testname resultcode infile outfile fparam vparam sparam srcname dparam dstname)
+ MACRO (ADD_H5_F_TEST testname resultcode infile fparam vparam sparam srcname dparam dstname)
+ IF (NOT HDF5_ENABLE_USING_MEMCHECKER)
+ # Remove any output file left over from previous test run
+ ADD_TEST (
+ NAME H5COPY_F-${testname}-clear-objects
+ COMMAND ${CMAKE_COMMAND}
+ -E remove
+ ./testfiles/${testname}.out.h5
+ )
+ ENDIF (NOT HDF5_ENABLE_USING_MEMCHECKER)
+
ADD_TEST (
NAME H5COPY_F-${testname}
- COMMAND $<TARGET_FILE:h5copy> -f ${fparam} -i ./testfiles/${infile} -o ./testfiles/${outfile} ${vparam} ${sparam} ${srcname} ${dparam} ${dstname} ${ARGN}
+ COMMAND $<TARGET_FILE:h5copy> -f ${fparam} -i ./testfiles/${infile} -o ./testfiles/${testname}.out.h5 ${vparam} ${sparam} ${srcname} ${dparam} ${dstname} ${ARGN}
)
- IF (NOT "${last_test}" STREQUAL "")
- SET_TESTS_PROPERTIES (H5COPY_F-${testname} PROPERTIES DEPENDS ${last_test})
- ENDIF (NOT "${last_test}" STREQUAL "")
- SET (last_test "H5COPY_F-${testname}")
- ADD_H5_DIFF_TEST (${testname} ${resultcode} ${last_test} ${infile} ${outfile} ${srcname} ${dstname})
+ IF (HDF5_ENABLE_USING_MEMCHECKER)
+ IF (NOT "${last_test}" STREQUAL "")
+ SET_TESTS_PROPERTIES (H5COPY_F-${testname} PROPERTIES DEPENDS ${last_test})
+ ENDIF (NOT "${last_test}" STREQUAL "")
+ ELSE (HDF5_ENABLE_USING_MEMCHECKER)
+ SET_TESTS_PROPERTIES (H5COPY_F-${testname} PROPERTIES DEPENDS H5COPY_F-${testname}-clear-objects)
+ ENDIF (HDF5_ENABLE_USING_MEMCHECKER)
+
+ # resultcode=2 will cause the test to skip the diff test
+ IF (NOT ${resultcode} STREQUAL "2")
+ ADD_TEST (
+ NAME H5COPY_F-${testname}-DIFF
+ COMMAND $<TARGET_FILE:h5diff> -q ./testfiles/${infile} ./testfiles/${testname}.out.h5 ${srcname} ${dstname}
+ )
+ SET_TESTS_PROPERTIES(H5COPY_F-${testname}-DIFF PROPERTIES DEPENDS H5COPY_F-${testname})
+ IF (${resultcode} STREQUAL "1")
+ SET_TESTS_PROPERTIES (H5COPY_F-${testname}-DIFF PROPERTIES WILL_FAIL "true")
+ ENDIF (${resultcode} STREQUAL "1")
+ ENDIF (NOT ${resultcode} STREQUAL "2")
ENDMACRO (ADD_H5_F_TEST)
- MACRO (ADD_H5_TEST testname resultcode infile outfile vparam sparam srcname dparam dstname)
+ MACRO (ADD_H5_TEST testname resultcode infile vparam sparam srcname dparam dstname)
+ IF (NOT HDF5_ENABLE_USING_MEMCHECKER)
+ # Remove any output file left over from previous test run
+ ADD_TEST (
+ NAME H5COPY-${testname}-clear-objects
+ COMMAND ${CMAKE_COMMAND}
+ -E remove
+ ./testfiles/${testname}.out.h5
+ )
+ ENDIF (NOT HDF5_ENABLE_USING_MEMCHECKER)
+
ADD_TEST (
NAME H5COPY-${testname}
- COMMAND $<TARGET_FILE:h5copy> -i ./testfiles/${infile} -o ./testfiles/${outfile} ${vparam} ${sparam} ${srcname} ${dparam} ${dstname} ${ARGN}
+ COMMAND $<TARGET_FILE:h5copy> -i ./testfiles/${infile} -o ./testfiles/${testname}.out.h5 ${vparam} ${sparam} ${srcname} ${dparam} ${dstname} ${ARGN}
)
- IF (NOT "${last_test}" STREQUAL "")
- SET_TESTS_PROPERTIES (H5COPY-${testname} PROPERTIES DEPENDS ${last_test})
- ENDIF (NOT "${last_test}" STREQUAL "")
- SET (last_test "H5COPY-${testname}")
- ADD_H5_DIFF_TEST (${testname} ${resultcode} ${last_test} ${infile} ${outfile} ${srcname} ${dstname})
+ IF (HDF5_ENABLE_USING_MEMCHECKER)
+ IF (NOT "${last_test}" STREQUAL "")
+ SET_TESTS_PROPERTIES (H5COPY-${testname} PROPERTIES DEPENDS ${last_test})
+ ENDIF (NOT "${last_test}" STREQUAL "")
+ ELSE (HDF5_ENABLE_USING_MEMCHECKER)
+ SET_TESTS_PROPERTIES (H5COPY-${testname} PROPERTIES DEPENDS H5COPY-${testname}-clear-objects)
+ ENDIF (HDF5_ENABLE_USING_MEMCHECKER)
+
+ # resultcode=2 will cause the test to skip the diff test
+ IF (NOT ${resultcode} STREQUAL "2")
+ ADD_TEST (
+ NAME H5COPY-${testname}-DIFF
+ COMMAND $<TARGET_FILE:h5diff> -q ./testfiles/${infile} ./testfiles/${testname}.out.h5 ${srcname} ${dstname}
+ )
+ SET_TESTS_PROPERTIES(H5COPY-${testname}-DIFF PROPERTIES DEPENDS H5COPY-${testname})
+ IF (${resultcode} STREQUAL "1")
+ SET_TESTS_PROPERTIES (H5COPY-${testname}-DIFF PROPERTIES WILL_FAIL "true")
+ ENDIF (${resultcode} STREQUAL "1")
+ ENDIF (NOT ${resultcode} STREQUAL "2")
ENDMACRO (ADD_H5_TEST)
- MACRO (ADD_H5_DIFF_TEST testname resultcode testdepends infile outfile srcname dstname)
+ MACRO (ADD_H5_TEST2 testname resultcode infile psparam pdparam vparam sparam srcname dparam dstname)
+ IF (NOT HDF5_ENABLE_USING_MEMCHECKER)
+ # Remove any output file left over from previous test run
+ ADD_TEST (
+ NAME H5COPY-${testname}-clear-objects
+ COMMAND ${CMAKE_COMMAND}
+ -E remove
+ ./testfiles/${testname}.out.h5
+ )
+ ENDIF (NOT HDF5_ENABLE_USING_MEMCHECKER)
+
+ ADD_TEST (
+ NAME H5COPY-${testname}-prefill
+ COMMAND $<TARGET_FILE:h5copy> -i ./testfiles/${infile} -o ./testfiles/${testname}.out.h5 -v -s ${psparam} -d ${pdparam}
+ )
+ IF (HDF5_ENABLE_USING_MEMCHECKER)
+ IF (NOT "${last_test}" STREQUAL "")
+ SET_TESTS_PROPERTIES (H5COPY-${testname}-prefill PROPERTIES DEPENDS ${last_test})
+ ENDIF (NOT "${last_test}" STREQUAL "")
+ ELSE (HDF5_ENABLE_USING_MEMCHECKER)
+ SET_TESTS_PROPERTIES (H5COPY-${testname}-prefill PROPERTIES DEPENDS H5COPY-${testname}-clear-objects)
+ ENDIF (HDF5_ENABLE_USING_MEMCHECKER)
+
+ ADD_TEST (
+ NAME H5COPY-${testname}
+ COMMAND $<TARGET_FILE:h5copy> -i ./testfiles/${infile} -o ./testfiles/${testname}.out.h5 ${vparam} ${sparam} ${srcname} ${dparam} ${dstname} ${ARGN}
+ )
+ SET_TESTS_PROPERTIES (H5COPY-${testname} PROPERTIES DEPENDS H5COPY-${testname}-prefill)
+ # resultcode=2 will cause the test to skip the diff test
+ IF (NOT ${resultcode} STREQUAL "2")
+ ADD_TEST (
+ NAME H5COPY-${testname}-DIFF
+ COMMAND $<TARGET_FILE:h5diff> -q ./testfiles/${infile} ./testfiles/${testname}.out.h5 ${srcname} ${dstname}
+ )
+ SET_TESTS_PROPERTIES(H5COPY-${testname}-DIFF PROPERTIES DEPENDS H5COPY-${testname})
+ IF (${resultcode} STREQUAL "1")
+ SET_TESTS_PROPERTIES (H5COPY-${testname}-DIFF PROPERTIES WILL_FAIL "true")
+ ENDIF (${resultcode} STREQUAL "1")
+ ENDIF (NOT ${resultcode} STREQUAL "2")
+ ENDMACRO (ADD_H5_TEST2)
+
+ MACRO (ADD_H5_TEST_SAME testname resultcode pfile psparam pdparam vparam sparam srcname dparam dstname)
+ IF (NOT HDF5_ENABLE_USING_MEMCHECKER)
+ # Remove any output file left over from previous test run
+ ADD_TEST (
+ NAME H5COPY_SAME-${testname}-clear-objects
+ COMMAND ${CMAKE_COMMAND}
+ -E remove
+ ./testfiles/${testname}.out.h5
+ )
+ ENDIF (NOT HDF5_ENABLE_USING_MEMCHECKER)
+
+ ADD_TEST (
+ NAME H5COPY_SAME-${testname}-prefill
+ COMMAND $<TARGET_FILE:h5copy> -i ./testfiles/${pfile} -o ./testfiles/${testname}.out.h5 -v -s ${psparam} -d ${pdparam}
+ )
+ IF (HDF5_ENABLE_USING_MEMCHECKER)
+ IF (NOT "${last_test}" STREQUAL "")
+ SET_TESTS_PROPERTIES (H5COPY_SAME-${testname}-prefill PROPERTIES DEPENDS ${last_test})
+ ENDIF (NOT "${last_test}" STREQUAL "")
+ ELSE (HDF5_ENABLE_USING_MEMCHECKER)
+ SET_TESTS_PROPERTIES (H5COPY_SAME-${testname}-prefill PROPERTIES DEPENDS H5COPY_SAME-${testname}-clear-objects)
+ ENDIF (HDF5_ENABLE_USING_MEMCHECKER)
+
+ ADD_TEST (
+ NAME H5COPY_SAME-${testname}
+ COMMAND $<TARGET_FILE:h5copy> -i ./testfiles/${testname}.out.h5 -o ./testfiles/${testname}.out.h5 ${vparam} ${sparam} ${srcname} ${dparam} ${dstname} ${ARGN}
+ )
+ SET_TESTS_PROPERTIES (H5COPY_SAME-${testname} PROPERTIES DEPENDS H5COPY_SAME-${testname}-prefill)
# resultcode=2 will cause the test to skip the diff test
IF (NOT ${resultcode} STREQUAL "2")
ADD_TEST (
- NAME H5COPY-DIFF_${testname}
- COMMAND $<TARGET_FILE:h5diff> -q ./testfiles/${infile} ./testfiles/${outfile} ${srcname} ${dstname}
+ NAME H5COPY_SAME-${testname}-DIFF
+ COMMAND $<TARGET_FILE:h5diff> -q ./testfiles/${testname}.out.h5 ./testfiles/${testname}.out.h5 ${srcname} ${dstname}
)
- SET_TESTS_PROPERTIES(H5COPY-DIFF_${testname} PROPERTIES DEPENDS ${testdepends})
- SET (last_test "H5COPY-DIFF_${testname}")
+ SET_TESTS_PROPERTIES(H5COPY_SAME-${testname}-DIFF PROPERTIES DEPENDS H5COPY_SAME-${testname})
IF (${resultcode} STREQUAL "1")
- SET_TESTS_PROPERTIES (H5COPY-DIFF_${testname} PROPERTIES WILL_FAIL "true")
+ SET_TESTS_PROPERTIES (H5COPY_SAME-${testname}-DIFF PROPERTIES WILL_FAIL "true")
ENDIF (${resultcode} STREQUAL "1")
ENDIF (NOT ${resultcode} STREQUAL "2")
- ENDMACRO (ADD_H5_DIFF_TEST)
+ ENDMACRO (ADD_H5_TEST_SAME)
#
# Test result with h5ls
#
- MACRO (ADD_H5LS_TEST file filetest)
+ MACRO (ADD_H5LS_TEST infile filetest)
# If using memchecker add tests without using scripts
IF (HDF5_ENABLE_USING_MEMCHECKER)
- ADD_TEST (NAME H5COPY-h5ls_${file}-${filetest} COMMAND $<TARGET_FILE:h5ls> -Svr ./testfiles/${file}.out.h5)
+ ADD_TEST (NAME H5COPY-h5ls-${infile}-${filetest} COMMAND $<TARGET_FILE:h5ls> -Svr ./testfiles/${filetest}.out.h5)
+ IF (NOT "${last_test}" STREQUAL "")
+ SET_TESTS_PROPERTIES (H5COPY-h5ls-${infile}-${filetest} PROPERTIES DEPENDS ${last_test})
+ ENDIF (NOT "${last_test}" STREQUAL "")
ELSE (HDF5_ENABLE_USING_MEMCHECKER)
+ # Remove any output file left over from previous test run
+ ADD_TEST (
+ NAME H5COPY-h5ls-${infile}-${filetest}-clear-objects
+ COMMAND ${CMAKE_COMMAND}
+ -E remove
+ ./testfiles/${filetest}.out.h5
+ ./testfiles/${filetest}.out.out
+ ./testfiles/${filetest}.out.out.err
+ )
ADD_TEST (
- NAME H5COPY-h5ls_${file}-${filetest}
+ NAME H5COPY-h5ls-${file}-${filetest}
COMMAND "${CMAKE_COMMAND}"
-D "TEST_PROGRAM=$<TARGET_FILE:h5ls>"
- -D "TEST_ARGS=-Svr;./testfiles/${file}.out.h5"
+ -D "TEST_ARGS=-Svr;./testfiles/${filetest}.out.h5"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
- -D "TEST_OUTPUT=./testfiles/${file}.out.out"
+ -D "TEST_OUTPUT=./testfiles/${filetest}.out.out"
-D "TEST_EXPECT=0"
- -D "TEST_REFERENCE=./testfiles/${file}.out.ls"
+ -D "TEST_REFERENCE=./testfiles/${infile}.out.ls"
-D "TEST_MASK=true"
-P "${HDF5_RESOURCES_DIR}/runTest.cmake"
)
+ SET_TESTS_PROPERTIES (H5COPY-h5ls-${infile}-${filetest} PROPERTIES DEPENDS H5COPY-h5ls-${infile}-${filetest}-clear-objects)
ENDIF (HDF5_ENABLE_USING_MEMCHECKER)
- IF (NOT "${last_test}" STREQUAL "")
- SET_TESTS_PROPERTIES (H5COPY-h5ls_${file}-${filetest} PROPERTIES DEPENDS ${last_test})
- ENDIF (NOT "${last_test}" STREQUAL "")
- SET (last_test "H5COPY-h5ls_${file}-${filetest}")
ENDMACRO (ADD_H5LS_TEST)
#
# Similiar to ADD_H5_TEST macro. Compare to outputs from source & target
# files instead of checking with h5ls.
#
- MACRO (ADD_H5_CMP_TEST testname resultcode infile outfile vparam sparam srcname dparam dstname)
+ MACRO (ADD_H5_CMP_TEST testname resultcode infile vparam sparam srcname dparam dstname)
# If using memchecker add tests without using scripts
IF (HDF5_ENABLE_USING_MEMCHECKER)
- ADD_TEST (NAME H5COPY-CMP-${testname} COMMAND $<TARGET_FILE:h5copy> -i ./testfiles/${infile} -o ./testfiles/${outfile} ${vparam} ${sparam} ${srcname} ${dparam} ${dstname} ${ARGN})
+ ADD_TEST (NAME H5COPY-CMP-${testname} COMMAND $<TARGET_FILE:h5copy> -i ./testfiles/${infile} -o ./testfiles/${testname}.out.h5 ${vparam} ${sparam} ${srcname} ${dparam} ${dstname} ${ARGN})
IF (${resultcode} STREQUAL "1")
SET_TESTS_PROPERTIES (H5COPY-CMP-${testname} PROPERTIES WILL_FAIL "true")
ENDIF (${resultcode} STREQUAL "1")
+ IF (NOT "${last_test}" STREQUAL "")
+ SET_TESTS_PROPERTIES (H5COPY-CMP-${testname} PROPERTIES DEPENDS ${last_test})
+ ENDIF (NOT "${last_test}" STREQUAL "")
ELSE (HDF5_ENABLE_USING_MEMCHECKER)
+ # Remove any output file left over from previous test run
+ ADD_TEST (
+ NAME H5COPY-CMP-${testname}-clear-objects
+ COMMAND ${CMAKE_COMMAND}
+ -E remove
+ ./testfiles/${testname}.out.h5
+ ./testfiles/${testname}.out.out
+ ./testfiles/${testname}.out.out.err
+ )
ADD_TEST (
NAME H5COPY-CMP-${testname}
COMMAND "${CMAKE_COMMAND}"
-D "TEST_PROGRAM=$<TARGET_FILE:h5copy>"
- -D "TEST_ARGS=-i;./testfiles/${infile};-o;./testfiles/${outfile};${vparam};${sparam};${srcname};${dparam};${dstname}"
+ -D "TEST_ARGS=-i;./testfiles/${infile};-o;./testfiles/${testname}.out.h5;${vparam};${sparam};${srcname};${dparam};${dstname}"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
-D "TEST_OUTPUT=./testfiles/${testname}.out.out"
-D "TEST_EXPECT=${resultcode}"
@@ -176,11 +298,8 @@ IF (BUILD_TESTING)
-D "TEST_MASK=true"
-P "${HDF5_RESOURCES_DIR}/runTest.cmake"
)
+ SET_TESTS_PROPERTIES (H5COPY-CMP-${testname} PROPERTIES DEPENDS H5COPY-CMP-${testname}-clear-objects)
ENDIF (HDF5_ENABLE_USING_MEMCHECKER)
- IF (NOT "${last_test}" STREQUAL "")
- SET_TESTS_PROPERTIES (H5COPY-CMP-${testname} PROPERTIES DEPENDS ${last_test})
- ENDIF (NOT "${last_test}" STREQUAL "")
- SET (last_test "H5COPY-CMP-${testname}")
ENDMACRO (ADD_H5_CMP_TEST)
##############################################################################
@@ -197,172 +316,147 @@ IF (BUILD_TESTING)
SET (HDF_EXT_SRC_FILE h5copy_extlinks_src)
SET (HDF_EXT_TRG_FILE h5copy_extlinks_trg)
- # Remove any output file left over from previous test run
- ADD_TEST (
- NAME H5COPY-clearall-objects
- COMMAND ${CMAKE_COMMAND}
- -E remove
- ./testfiles/${HDF_FILE1}.out.h5
- ./testfiles/${HDF_FILE1}.out.out
- ./testfiles/${HDF_FILE1}.out.out.err
- ./testfiles/${HDF_FILE2}.out.h5
- ./testfiles/${HDF_FILE2}.out.out
- ./testfiles/${HDF_FILE2}.out.out.err
- ./testfiles/${HDF_EXT_SRC_FILE}.out.h5
- ./testfiles/${HDF_EXT_SRC_FILE}.out.out
- ./testfiles/${HDF_EXT_SRC_FILE}.out.out.err
- )
- IF (NOT "${last_test}" STREQUAL "")
- SET_TESTS_PROPERTIES (H5COPY-clearall-objects PROPERTIES DEPENDS ${last_test})
- ENDIF (NOT "${last_test}" STREQUAL "")
- SET (last_test "H5COPY-clearall-objects")
+ IF (HDF5_ENABLE_USING_MEMCHECKER)
+ # Remove any output file left over from previous test run
+ ADD_TEST (
+ NAME H5COPY-clearall-objects
+ COMMAND ${CMAKE_COMMAND}
+ -E remove
+ simple.out.h5
+ chunk.out.h5
+ compact.out.h5
+ compound.out.h5
+ compressed.out.h5
+ named_vl.out.h5
+ nested_vl.out.h5
+ simple_top.out.h5
+ dsrename.out.h5
+ grp_empty.out.h5
+ grp_dsets.out.h5
+ grp_nested.out.h5
+ simple_group.out.h5
+ grp_rename.out.h5
+ grp_dsets_rename.out.h5
+ A_B1_simple.out.h5
+ A_B2_simple2.out.h5
+ C_D_simple.out.h5
+ E_F_grp_dsets.out.h5
+ G_H_grp_nested.out.h5
+ region_ref.out.h5
+ ext_link.out.h5
+ ext_link_f.out.h5
+ ext_dangle_noobj.out.h5
+ ext_dangle_noobj_f.out.h5
+ ext_dangle_nofile.out.h5
+ ext_dangle_nofile_f.out.h5
+ ext_link_group.out.h5
+ ext_link_group_f.out.h5
+ samefile1.out.h5
+ samefile2.out.h5
+ h5copy_misc1.out.h5
+ h5copy_misc1.out.out
+ h5copy_misc1.out.out.err
+ )
+ SET_TESTS_PROPERTIES (H5COPY-clearall-objects PROPERTIES WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles")
+ IF (NOT "${last_test}" STREQUAL "")
+ SET_TESTS_PROPERTIES (H5COPY-clearall-objects PROPERTIES DEPENDS ${last_test})
+ ENDIF (NOT "${last_test}" STREQUAL "")
+ SET (last_test "H5COPY-clearall-objects")
+ ENDIF (HDF5_ENABLE_USING_MEMCHECKER)
# "Test copying various forms of datasets"
- ADD_H5_TEST (simple 0 ${HDF_FILE1}.h5 ${HDF_FILE1}.out.h5 -v -s simple -d simple)
- ADD_H5_TEST (chunk 0 ${HDF_FILE1}.h5 ${HDF_FILE1}.out.h5 -v -s chunk -d chunk)
- ADD_H5_TEST (compact 0 ${HDF_FILE1}.h5 ${HDF_FILE1}.out.h5 -v -s compact -d compact)
- ADD_H5_TEST (compound 0 ${HDF_FILE1}.h5 ${HDF_FILE1}.out.h5 -v -s compound -d compound)
- ADD_H5_TEST (compressed 0 ${HDF_FILE1}.h5 ${HDF_FILE1}.out.h5 -v -s compressed -d compressed)
- ADD_H5_TEST (named_vl 0 ${HDF_FILE1}.h5 ${HDF_FILE1}.out.h5 -v -s named_vl -d named_vl)
- ADD_H5_TEST (nested_vl 0 ${HDF_FILE1}.h5 ${HDF_FILE1}.out.h5 -v -s nested_vl -d nested_vl)
+ ADD_H5_TEST (simple 0 ${HDF_FILE1}.h5 -v -s simple -d simple)
+ ADD_H5_TEST (chunk 0 ${HDF_FILE1}.h5 -v -s chunk -d chunk)
+ ADD_H5_TEST (compact 0 ${HDF_FILE1}.h5 -v -s compact -d compact)
+ ADD_H5_TEST (compound 0 ${HDF_FILE1}.h5 -v -s compound -d compound)
+ ADD_H5_TEST (compressed 0 ${HDF_FILE1}.h5 -v -s compressed -d compressed)
+ ADD_H5_TEST (named_vl 0 ${HDF_FILE1}.h5 -v -s named_vl -d named_vl)
+ ADD_H5_TEST (nested_vl 0 ${HDF_FILE1}.h5 -v -s nested_vl -d nested_vl)
# "Test copying dataset within group in source file to root of destination"
- ADD_H5_TEST (simple_top 0 ${HDF_FILE1}.h5 ${HDF_FILE1}.out.h5 -v -s grp_dsets/simple -d simple_top)
+ ADD_H5_TEST (simple_top 0 ${HDF_FILE1}.h5 -v -s grp_dsets/simple -d simple_top)
# "Test copying & renaming dataset"
- ADD_H5_TEST (rename 0 ${HDF_FILE1}.h5 ${HDF_FILE1}.out.h5 -v -s compound -d rename)
+ ADD_H5_TEST (dsrename 0 ${HDF_FILE1}.h5 -v -s compound -d rename)
# "Test copying empty, 'full' & 'nested' groups"
- ADD_H5_TEST (grp_empty 0 ${HDF_FILE1}.h5 ${HDF_FILE1}.out.h5 -v -s grp_empty -d grp_empty)
- ADD_H5_TEST (grp_dsets 0 ${HDF_FILE1}.h5 ${HDF_FILE1}.out.h5 -v -s grp_dsets -d grp_dsets)
- ADD_H5_TEST (grp_nested 0 ${HDF_FILE1}.h5 ${HDF_FILE1}.out.h5 -v -s grp_nested -d grp_nested)
+ ADD_H5_TEST (grp_empty 0 ${HDF_FILE1}.h5 -v -s grp_empty -d grp_empty)
+ ADD_H5_TEST (grp_dsets 0 ${HDF_FILE1}.h5 -v -s grp_dsets -d grp_dsets)
+ ADD_H5_TEST (grp_nested 0 ${HDF_FILE1}.h5 -v -s grp_nested -d grp_nested)
# "Test copying dataset within group in source file to group in destination"
- ADD_H5_TEST (simple_group 0 ${HDF_FILE1}.h5 ${HDF_FILE1}.out.h5 -v -s /grp_dsets/simple -d /grp_dsets/simple_group)
+ ADD_H5_TEST2 (simple_group 0 ${HDF_FILE1}.h5 grp_dsets grp_dsets -v -s /grp_dsets/simple -d /grp_dsets/simple_group)
# "Test copying & renaming group"
- ADD_H5_TEST (grp_rename 0 ${HDF_FILE1}.h5 ${HDF_FILE1}.out.h5 -v -s grp_dsets -d grp_rename)
+ ADD_H5_TEST (grp_rename 0 ${HDF_FILE1}.h5 -v -s grp_dsets -d grp_rename)
# "Test copying 'full' group hierarchy into group in destination file"
- ADD_H5_TEST (grp_dsets_rename 0 ${HDF_FILE1}.h5 ${HDF_FILE1}.out.h5 -v -s grp_dsets -d /grp_rename/grp_dsets)
+ ADD_H5_TEST2 (grp_dsets_rename 0 ${HDF_FILE1}.h5 grp_dsets grp_rename -v -s grp_dsets -d /grp_rename/grp_dsets)
# "Test copying objects into group hier. that doesn't exist yet in destination file"
- ADD_H5_TEST (A_B1_simple 0 ${HDF_FILE1}.h5 ${HDF_FILE1}.out.h5 -vp -s simple -d /A/B1/simple)
- ADD_H5_TEST (A_B2_simple2 0 ${HDF_FILE1}.h5 ${HDF_FILE1}.out.h5 -vp -s simple -d /A/B2/simple2)
- ADD_H5_TEST (C_D_simple 0 ${HDF_FILE1}.h5 ${HDF_FILE1}.out.h5 -vp -s /grp_dsets/simple -d /C/D/simple)
- ADD_H5_TEST (E_F_grp_dsets 0 ${HDF_FILE1}.h5 ${HDF_FILE1}.out.h5 -vp -s /grp_dsets -d /E/F/grp_dsets)
- ADD_H5_TEST (G_H_grp_nested 0 ${HDF_FILE1}.h5 ${HDF_FILE1}.out.h5 -vp -s /grp_nested -d /G/H/grp_nested)
+ ADD_H5_TEST (A_B1_simple 0 ${HDF_FILE1}.h5 -vp -s simple -d /A/B1/simple)
+ ADD_H5_TEST (A_B2_simple2 0 ${HDF_FILE1}.h5 -vp -s simple -d /A/B2/simple2)
+ ADD_H5_TEST (C_D_simple 0 ${HDF_FILE1}.h5 -vp -s /grp_dsets/simple -d /C/D/simple)
+ ADD_H5_TEST (E_F_grp_dsets 0 ${HDF_FILE1}.h5 -vp -s /grp_dsets -d /E/F/grp_dsets)
+ ADD_H5_TEST (G_H_grp_nested 0 ${HDF_FILE1}.h5 -vp -s /grp_nested -d /G/H/grp_nested)
# Verify that the file created above is correct
- ADD_H5LS_TEST (${HDF_FILE1} basic)
+ # This test is not independent of the above tests
+ #ADD_H5LS_TEST (${HDF_FILE1} basic)
############# COPY REFERENCES ##############
- # Remove any output file left over from previous test run
- ADD_TEST (
- NAME H5COPY-clear-refs
- COMMAND ${CMAKE_COMMAND}
- -E remove
- ./testfiles/${HDF_FILE2}.out.h5
- ./testfiles/${HDF_FILE2}.out.out
- ./testfiles/${HDF_FILE2}.out.out.err
- )
- IF (NOT "${last_test}" STREQUAL "")
- SET_TESTS_PROPERTIES (H5COPY-clear-refs PROPERTIES DEPENDS ${last_test})
- ENDIF (NOT "${last_test}" STREQUAL "")
- SET (last_test "H5COPY-clear-refs")
-
# "Test copying object and region references"
- ADD_H5_F_TEST (region_ref 2 ${HDF_FILE2}.h5 ${HDF_FILE2}.out.h5 ref -v -s / -d /COPY)
+ ADD_H5_F_TEST (region_ref 2 ${HDF_FILE2}.h5 ref -v -s / -d /COPY)
# Verify that the file created above is correct
- ADD_H5LS_TEST (${HDF_FILE2} refs)
+ # This test is not independent of the above tests
+ #ADD_H5LS_TEST (${HDF_FILE2} refs)
############# COPY EXT LINKS ##############
- # Remove any output file left over from previous test run
- ADD_TEST (
- NAME H5COPY-clear-ext-links
- COMMAND ${CMAKE_COMMAND}
- -E remove
- ./testfiles/${HDF_EXT_SRC_FILE}.out.h5
- ./testfiles/${HDF_EXT_SRC_FILE}.out.out
- ./testfiles/${HDF_EXT_SRC_FILE}.out.out.err
- )
- IF (NOT "${last_test}" STREQUAL "")
- SET_TESTS_PROPERTIES (H5COPY-clear-ext-links PROPERTIES DEPENDS ${last_test})
- ENDIF (NOT "${last_test}" STREQUAL "")
- SET (last_test "H5COPY-clear-ext-links")
-
# "Test copying external link directly without -f ext"
- ADD_H5_TEST (ext_link 2 ${HDF_EXT_SRC_FILE}.h5 ${HDF_EXT_SRC_FILE}.out.h5 -v -s /group_ext/extlink_dset -d /copy1_dset)
+ ADD_H5_TEST (ext_link 2 ${HDF_EXT_SRC_FILE}.h5 -v -s /group_ext/extlink_dset -d /copy1_dset)
# "Test copying external link directly with -f ext"
- ADD_H5_F_TEST (ext_link_f 2 ${HDF_EXT_SRC_FILE}.h5 ${HDF_EXT_SRC_FILE}.out.h5 ext -v -s /group_ext/extlink_dset -d /copy2_dset)
+ ADD_H5_F_TEST (ext_link_f 2 ${HDF_EXT_SRC_FILE}.h5 ext -v -s /group_ext/extlink_dset -d /copy2_dset)
# "Test copying dangling external link (no obj) directly without -f ext"
- ADD_H5_TEST (ext_dangle_noobj 2 ${HDF_EXT_SRC_FILE}.h5 ${HDF_EXT_SRC_FILE}.out.h5 -v -s /group_ext/extlink_notyet1 -d /copy_dangle1_1)
+ ADD_H5_TEST (ext_dangle_noobj 2 ${HDF_EXT_SRC_FILE}.h5 -v -s /group_ext/extlink_notyet1 -d /copy_dangle1_1)
# "Test copying dangling external link (no obj) directly with -f ext"
- ADD_H5_F_TEST (ext_dangle_noobj_f 2 ${HDF_EXT_SRC_FILE}.h5 ${HDF_EXT_SRC_FILE}.out.h5 ext -v -s /group_ext/extlink_notyet1 -d /copy_dangle1_2)
+ ADD_H5_F_TEST (ext_dangle_noobj_f 2 ${HDF_EXT_SRC_FILE}.h5 ext -v -s /group_ext/extlink_notyet1 -d /copy_dangle1_2)
# "Test copying dangling external link (no file) directly without -f ext"
- ADD_H5_TEST (ext_dangle_nofile 2 ${HDF_EXT_SRC_FILE}.h5 ${HDF_EXT_SRC_FILE}.out.h5 -v -s /group_ext/extlink_notyet2 -d /copy_dangle2_1)
+ ADD_H5_TEST (ext_dangle_nofile 2 ${HDF_EXT_SRC_FILE}.h5 -v -s /group_ext/extlink_notyet2 -d /copy_dangle2_1)
# "Test copying dangling external link (no file) directly with -f ext"
- ADD_H5_F_TEST (ext_dangle_nofile_f 2 ${HDF_EXT_SRC_FILE}.h5 ${HDF_EXT_SRC_FILE}.out.h5 ext -v -s /group_ext/extlink_notyet2 -d /copy_dangle2_2)
+ ADD_H5_F_TEST (ext_dangle_nofile_f 2 ${HDF_EXT_SRC_FILE}.h5 ext -v -s /group_ext/extlink_notyet2 -d /copy_dangle2_2)
# "Test copying a group contains external links without -f ext"
- ADD_H5_TEST (ext_link_group 2 ${HDF_EXT_SRC_FILE}.h5 ${HDF_EXT_SRC_FILE}.out.h5 -v -s /group_ext -d /copy1_group)
+ ADD_H5_TEST (ext_link_group 2 ${HDF_EXT_SRC_FILE}.h5 -v -s /group_ext -d /copy1_group)
# "Test copying a group contains external links with -f ext"
- ADD_H5_F_TEST (ext_link_group_f 2 ${HDF_EXT_SRC_FILE}.h5 ${HDF_EXT_SRC_FILE}.out.h5 ext -v -s /group_ext -d /copy2_group)
+ ADD_H5_F_TEST (ext_link_group_f 2 ${HDF_EXT_SRC_FILE}.h5 ext -v -s /group_ext -d /copy2_group)
# Verify that the file created above is correct
- ADD_H5LS_TEST (${HDF_EXT_SRC_FILE} links)
+ # This test is not independent of the above tests
+ #ADD_H5LS_TEST (${HDF_EXT_SRC_FILE} links)
############# Test misc. ##############
- # Remove any output file left over from previous test run
- ADD_TEST (
- NAME H5COPY-clear-misc
- COMMAND ${CMAKE_COMMAND}
- -E remove
- ./testfiles/h5copy_misc1.out.out
- ./testfiles/h5copy_misc1.out.out.err
- ./testfiles/${HDF_FILE1}.out.h5
- )
- IF (NOT "${last_test}" STREQUAL "")
- SET_TESTS_PROPERTIES (H5COPY-clear-misc PROPERTIES DEPENDS ${last_test})
- ENDIF (NOT "${last_test}" STREQUAL "")
- SET (last_test "H5COPY-clear-misc")
#-----------------------------------------------------------------
# "Test copying object into group which doesn't exist, without -p"
#
- ADD_H5_CMP_TEST (h5copy_misc1 1 ${HDF_FILE1}.h5 ${HDF_FILE1}.out.h5 -v -s /simple -d /g1/g2/simple)
- # Remove any output file left over from previous test run
- ADD_TEST (
- NAME H5COPY-clear-samefile
- COMMAND ${CMAKE_COMMAND}
- -E remove
- ./testfiles/${HDF_FILE1}.out.h5
- )
- IF (NOT "${last_test}" STREQUAL "")
- SET_TESTS_PROPERTIES (H5COPY-clear-samefile PROPERTIES DEPENDS ${last_test})
- ENDIF (NOT "${last_test}" STREQUAL "")
- SET (last_test "H5COPY-clear-samefile")
+ ADD_H5_CMP_TEST (h5copy_misc1 1 ${HDF_FILE1}.h5 -v -s /simple -d /g1/g2/simple)
#-------------------------------------------
# "Test copying objects to the same file "
#
- # create temporary test file with some objects
- ADD_H5_TEST (samefile1_pre 0 ${HDF_FILE1}.h5 ${HDF_FILE1}.out.h5 -v -s /simple -d /simple)
- ADD_H5_TEST (samefile2_pre 0 ${HDF_FILE1}.h5 ${HDF_FILE1}.out.h5 -v -s /grp_dsets -d /grp_dsets)
- # actual test cases
# - dataset
- ADD_H5_TEST (samefile1 0 ${HDF_FILE1}.out.h5 ${HDF_FILE1}.out.h5 -v -s /simple -d /simple_cp)
+ ADD_H5_TEST_SAME (samefile1 0 ${HDF_FILE1}.h5 /simple /simple -v -s /simple -d /simple_cp)
# - group with some datasets
- ADD_H5_TEST (samefile2 0 ${HDF_FILE1}.out.h5 ${HDF_FILE1}.out.h5 -v -s /grp_dsets -d /grp_dsets_cp)
+ ADD_H5_TEST_SAME (samefile2 0 ${HDF_FILE1}.h5 /grp_dsets /grp_dsets -v -s /grp_dsets -d /grp_dsets_cp)
ENDIF (BUILD_TESTING)
##############################################################################
diff --git a/tools/h5copy/testfiles/h5copy_misc1.out b/tools/h5copy/testfiles/h5copy_misc1.out
index 10dd1a6..1624f2b 100644
--- a/tools/h5copy/testfiles/h5copy_misc1.out
+++ b/tools/h5copy/testfiles/h5copy_misc1.out
@@ -1,3 +1,3 @@
-Copying file <./testfiles/h5copytst.h5> and object </simple> to file <./testfiles/h5copytst.out.h5> and object </g1/g2/simple>
+Copying file <./testfiles/h5copytst.h5> and object </simple> to file <./testfiles/h5copy_misc1.out.h5> and object </g1/g2/simple>
Error in copy...Exiting
h5copy error: group </g1> doesn't exist. Use -p to create parent groups.
diff --git a/tools/h5copy/testh5copy.sh.in b/tools/h5copy/testh5copy.sh.in
index c7acd9a..cd5f677 100644
--- a/tools/h5copy/testh5copy.sh.in
+++ b/tools/h5copy/testh5copy.sh.in
@@ -514,10 +514,10 @@ TEST_MISC()
FILEOUT="$TESTDIR/`basename h5copytst.h5 .h5`.out.h5"
# Remove any output file left over from previous test run
- rm -f $FILEOUT
+ rm -f $h5copy_misc1.out.h5
echo "Test copying object into group which doesn't exist, without -p"
- TOOLTEST_FAIL h5copy_misc1.out -v -i $TESTFILE -o $FILEOUT -s /simple -d /g1/g2/simple
+ TOOLTEST_FAIL h5copy_misc1.out -v -i $TESTFILE -o $TESTDIR/h5copy_misc1.out.h5 -s /simple -d /g1/g2/simple
echo "Test copying objects to the same file "
rm -f $FILEOUT
diff --git a/tools/h5diff/CMakeLists.txt b/tools/h5diff/CMakeLists.txt
index 87eca15..a8fed57 100644
--- a/tools/h5diff/CMakeLists.txt
+++ b/tools/h5diff/CMakeLists.txt
@@ -344,10 +344,9 @@ IF (BUILD_TESTING)
IF (NOT "${last_test}" STREQUAL "")
SET_TESTS_PROPERTIES (H5DIFF-${resultfile} PROPERTIES DEPENDS ${last_test})
ENDIF (NOT "${last_test}" STREQUAL "")
- SET (last_test "H5DIFF-${resultfile}")
ELSE (HDF5_ENABLE_USING_MEMCHECKER)
ADD_TEST (
- NAME H5DIFF-clear-${resultfile}-objects
+ NAME H5DIFF-${resultfile}-clear-objects
COMMAND ${CMAKE_COMMAND}
-E remove ./testfiles/${resultfile}.out ./testfiles/${resultfile}.out.err
)
@@ -363,7 +362,7 @@ IF (BUILD_TESTING)
-D "TEST_APPEND=EXIT CODE:"
-P "${HDF5_RESOURCES_DIR}/runTest.cmake"
)
- SET_TESTS_PROPERTIES (H5DIFF-${resultfile} PROPERTIES DEPENDS "H5DIFF-clear-${resultfile}-objects")
+ SET_TESTS_PROPERTIES (H5DIFF-${resultfile} PROPERTIES DEPENDS "H5DIFF-${resultfile}-clear-objects")
ENDIF (HDF5_ENABLE_USING_MEMCHECKER)
IF (H5_HAVE_PARALLEL)
ADD_PH5_TEST (${resultfile} ${resultcode} ${ARGN})
@@ -381,10 +380,9 @@ IF (BUILD_TESTING)
IF (NOT "${last_test}" STREQUAL "")
SET_TESTS_PROPERTIES (PH5DIFF-${resultfile} PROPERTIES DEPENDS ${last_test})
ENDIF (NOT "${last_test}" STREQUAL "")
- SET (last_test "PH5DIFF-${resultfile}")
ELSE (HDF5_ENABLE_USING_MEMCHECKER)
ADD_TEST (
- NAME PH5DIFF-clear-${resultfile}-objects
+ NAME PH5DIFF-${resultfile}-clear-objects
COMMAND ${CMAKE_COMMAND}
-E remove ./testfiles/${resultfile}_p.out ./testfiles/${resultfile}_p.out.err
)
@@ -402,7 +400,7 @@ IF (BUILD_TESTING)
-D "TEST_SKIP_COMPARE=TRUE"
-P "${HDF5_RESOURCES_DIR}/prunTest.cmake"
)
- SET_TESTS_PROPERTIES (PH5DIFF-${resultfile} PROPERTIES DEPENDS "PH5DIFF-clear-${resultfile}-objects")
+ SET_TESTS_PROPERTIES (PH5DIFF-${resultfile} PROPERTIES DEPENDS "PH5DIFF-${resultfile}-clear-objects")
ENDIF (HDF5_ENABLE_USING_MEMCHECKER)
ENDMACRO (ADD_PH5_TEST file)
@@ -413,15 +411,14 @@ IF (BUILD_TESTING)
# If using memchecker add tests without using scripts
IF (NOT HDF5_ENABLE_USING_MEMCHECKER)
ADD_TEST (
- NAME H5DIFF-clear-${testname}-objects
+ NAME H5DIFF-${testname}-clear-objects
COMMAND ${CMAKE_COMMAND}
-E remove ./testfiles/${testname}.out ./testfiles/${testname}.out.err
)
# if there was a previous test
IF (NOT "${last_test}" STREQUAL "")
- SET_TESTS_PROPERTIES (H5DIFF-clear-${testname}-objects PROPERTIES DEPENDS ${last_test})
+ SET_TESTS_PROPERTIES (H5DIFF-${testname}-clear-objects PROPERTIES DEPENDS ${last_test})
ENDIF (NOT "${last_test}" STREQUAL "")
- SET (last_test "H5DIFF-clear-${testname}-objects")
ENDIF (NOT HDF5_ENABLE_USING_MEMCHECKER)
ADD_TEST (NAME H5DIFF-${testname} COMMAND $<TARGET_FILE:h5diff> ${ARGN})
@@ -429,10 +426,13 @@ IF (BUILD_TESTING)
SET_TESTS_PROPERTIES (H5DIFF-${testname} PROPERTIES WILL_FAIL "true")
ENDIF (NOT ${resultcode} STREQUAL "0")
- IF (NOT "${last_test}" STREQUAL "")
- SET_TESTS_PROPERTIES (H5DIFF-${testname} PROPERTIES DEPENDS ${last_test})
- ENDIF (NOT "${last_test}" STREQUAL "")
- SET (last_test "H5DIFF-${testname}")
+ IF (HDF5_ENABLE_USING_MEMCHECKER)
+ IF (NOT "${last_test}" STREQUAL "")
+ SET_TESTS_PROPERTIES (H5DIFF-${testname} PROPERTIES DEPENDS ${last_test})
+ ENDIF (NOT "${last_test}" STREQUAL "")
+ ELSE (HDF5_ENABLE_USING_MEMCHECKER)
+ SET_TESTS_PROPERTIES (H5DIFF-${testname} PROPERTIES DEPENDS H5DIFF-${testname}-clear-objects)
+ ENDIF (HDF5_ENABLE_USING_MEMCHECKER)
ENDMACRO (ADD_H5_NO_OUTPUT_TEST)
##############################################################################
diff --git a/tools/h5dump/CMakeLists.txt b/tools/h5dump/CMakeLists.txt
index f42ebf0..49c2980 100644
--- a/tools/h5dump/CMakeLists.txt
+++ b/tools/h5dump/CMakeLists.txt
@@ -139,8 +139,14 @@ IF (BUILD_TESTING)
${HDF5_TOOLS_SRC_DIR}/testfiles/tnestcomp-1.ddl
${HDF5_TOOLS_SRC_DIR}/testfiles/tnestedcmpddt.ddl
${HDF5_TOOLS_SRC_DIR}/testfiles/tnbit.ddl
+ ${HDF5_TOOLS_SRC_DIR}/testfiles/tnoattrdata.ddl
+ ${HDF5_TOOLS_SRC_DIR}/testfiles/tnoattrddl.ddl
+ ${HDF5_TOOLS_SRC_DIR}/testfiles/tnodata.ddl
+ ${HDF5_TOOLS_SRC_DIR}/testfiles/tnoddl.ddl
+ ${HDF5_TOOLS_SRC_DIR}/testfiles/tnoddlfile.ddl
${HDF5_TOOLS_SRC_DIR}/testfiles/tno-subset.ddl
${HDF5_TOOLS_SRC_DIR}/testfiles/tnullspace.ddl
+ ${HDF5_TOOLS_SRC_DIR}/testfiles/trawdatafile.ddl
${HDF5_TOOLS_SRC_DIR}/testfiles/zerodim.ddl
${HDF5_TOOLS_SRC_DIR}/testfiles/tordergr1.ddl
${HDF5_TOOLS_SRC_DIR}/testfiles/tordergr2.ddl
@@ -158,6 +164,9 @@ IF (BUILD_TESTING)
${HDF5_TOOLS_SRC_DIR}/testfiles/tperror.ddl
${HDF5_TOOLS_SRC_DIR}/testfiles/treference.ddl
${HDF5_TOOLS_SRC_DIR}/testfiles/tsaf.ddl
+ ${HDF5_TOOLS_SRC_DIR}/testfiles/tscalarintsize.ddl
+ ${HDF5_TOOLS_SRC_DIR}/testfiles/tscalarattrintsize.ddl
+ ${HDF5_TOOLS_SRC_DIR}/testfiles/tscalarstring.ddl
${HDF5_TOOLS_SRC_DIR}/testfiles/tscaleoffset.ddl
${HDF5_TOOLS_SRC_DIR}/testfiles/tshuffle.ddl
${HDF5_TOOLS_SRC_DIR}/testfiles/tslink-1.ddl
@@ -181,16 +190,18 @@ IF (BUILD_TESTING)
${HDF5_TOOLS_SRC_DIR}/testfiles/tvlstr.ddl
${HDF5_TOOLS_SRC_DIR}/testfiles/tvms.ddl
${HDF5_TOOLS_SRC_DIR}/testfiles/twidedisplay.ddl
+ ${HDF5_TOOLS_SRC_DIR}/testfiles/twithddlfile.ddl
${HDF5_TOOLS_SRC_DIR}/testfiles/h5dump-help.txt
${HDF5_TOOLS_SRC_DIR}/testfiles/out3.h5import
)
SET (HDF5_REFERENCE_EXP_FILES
-# tall-6.exp
-# tnoddlfile.exp
-# trawdatafile.exp
+ tall-6.exp
+ tnoddlfile.exp
+ trawdatafile.exp
tstr2bin2.exp
tstr2bin6.exp
-# twithddlfile.exp
+ twithddl.exp
+ twithddlfile.exp
)
SET (HDF5_REFERENCE_TEST_FILES
${HDF5_TOOLS_SRC_DIR}/testfiles/charsets.h5
@@ -266,6 +277,9 @@ IF (BUILD_TESTING)
${HDF5_TOOLS_SRC_DIR}/testfiles/torderattr.h5
${HDF5_TOOLS_SRC_DIR}/testfiles/tordergr.h5
${HDF5_TOOLS_SRC_DIR}/testfiles/tsaf.h5
+ ${HDF5_TOOLS_SRC_DIR}/testfiles/tscalarintsize.h5
+ ${HDF5_TOOLS_SRC_DIR}/testfiles/tscalarattrintsize.h5
+ ${HDF5_TOOLS_SRC_DIR}/testfiles/tscalarstring.h5
${HDF5_TOOLS_SRC_DIR}/testfiles/tslink.h5
${HDF5_TOOLS_SRC_DIR}/testfiles/tsplit_file-m.h5
${HDF5_TOOLS_SRC_DIR}/testfiles/tsplit_file-r.h5
@@ -314,7 +328,7 @@ IF (BUILD_TESTING)
#
FOREACH (tst_h5_file ${HDF5_REFERENCE_TEST_FILES})
GET_FILENAME_COMPONENT(fname "${tst_h5_file}" NAME)
- SET (dest "${PROJECT_BINARY_DIR}/testfiles/${fname}")
+ SET (dest "${PROJECT_BINARY_DIR}/testfiles/std/${fname}")
#MESSAGE (STATUS " Copying ${tst_h5_file}")
ADD_CUSTOM_COMMAND (
TARGET h5dump
@@ -327,20 +341,20 @@ IF (BUILD_TESTING)
FOREACH (tst_exp_file ${HDF5_REFERENCE_EXP_FILES})
IF (WIN32 AND NOT CYGWIN)
FILE (READ ${HDF5_TOOLS_SRC_DIR}/testfiles/${tst_exp_file} TEST_STREAM)
- FILE (WRITE ${PROJECT_BINARY_DIR}/testfiles/${tst_exp_file} "${TEST_STREAM}")
+ FILE (WRITE ${PROJECT_BINARY_DIR}/testfiles/std/${tst_exp_file} "${TEST_STREAM}")
ELSE (WIN32 AND NOT CYGWIN)
ADD_CUSTOM_COMMAND (
TARGET h5dump
POST_BUILD
COMMAND ${CMAKE_COMMAND}
- ARGS -E copy_if_different ${HDF5_TOOLS_SRC_DIR}/testfiles/${tst_exp_file} ${PROJECT_BINARY_DIR}/testfiles/${tst_exp_file}
+ ARGS -E copy_if_different ${HDF5_TOOLS_SRC_DIR}/testfiles/${tst_exp_file} ${PROJECT_BINARY_DIR}/testfiles/std/${tst_exp_file}
)
ENDIF (WIN32 AND NOT CYGWIN)
ENDFOREACH (tst_exp_file ${HDF5_REFERENCE_EXP_FILES})
FOREACH (tst_other_file ${HDF5_REFERENCE_FILES})
GET_FILENAME_COMPONENT(fname "${tst_other_file}" NAME)
- SET (dest "${PROJECT_BINARY_DIR}/testfiles/${fname}")
+ SET (dest "${PROJECT_BINARY_DIR}/testfiles/std/${fname}")
#MESSAGE (STATUS " Copying ${tst_other_file}")
ADD_CUSTOM_COMMAND (
TARGET h5dump
@@ -352,7 +366,7 @@ IF (BUILD_TESTING)
FOREACH (tst_error_file ${HDF5_ERROR_REFERENCE_TEST_FILES})
GET_FILENAME_COMPONENT(fname "${tst_error_file}" NAME)
- SET (dest "${PROJECT_BINARY_DIR}/testfiles/${fname}")
+ SET (dest "${PROJECT_BINARY_DIR}/testfiles/std/${fname}")
#MESSAGE (STATUS " Copying ${tst_error_file}")
ADD_CUSTOM_COMMAND (
TARGET h5dump
@@ -362,15 +376,53 @@ IF (BUILD_TESTING)
)
ENDFOREACH (tst_error_file ${HDF5_ERROR_REFERENCE_TEST_FILES})
+ # --------------------------------------------------------------------
+ # Special file handling
+ # --------------------------------------------------------------------
+ ADD_CUSTOM_COMMAND (
+ TARGET h5dump
+ POST_BUILD
+ COMMAND ${CMAKE_COMMAND}
+ ARGS -E copy_if_different ${HDF5_TOOLS_SOURCE_DIR}/testfiles/tbin1.ddl ${PROJECT_BINARY_DIR}/testfiles/std/tbin1LE.ddl
+ )
+
+ IF (WIN32 AND NOT CYGWIN)
+ FILE (READ ${HDF5_TOOLS_SRC_DIR}/testfiles/tbinregR.exp TEST_STREAM)
+ FILE (WRITE ${PROJECT_BINARY_DIR}/testfiles/std/tbinregR.exp "${TEST_STREAM}")
+ ELSE (WIN32 AND NOT CYGWIN)
+ ADD_CUSTOM_COMMAND (
+ TARGET h5dump
+ POST_BUILD
+ COMMAND ${CMAKE_COMMAND}
+ ARGS -E copy_if_different ${HDF5_TOOLS_SRC_DIR}/testfiles/tbinregR.exp ${PROJECT_BINARY_DIR}/testfiles/std/tbinregR.exp
+ )
+ ENDIF (WIN32 AND NOT CYGWIN)
+
#
# copy XML test files from source dir to test dir
#
SET (HDF5_XML_REFERENCE_TEST_FILES
+ ${HDF5_TOOLS_SRC_DIR}/testfiles/tall.h5
+ ${HDF5_TOOLS_SRC_DIR}/testfiles/tarray1.h5
+ ${HDF5_TOOLS_SRC_DIR}/testfiles/tarray2.h5
+ ${HDF5_TOOLS_SRC_DIR}/testfiles/tarray3.h5
+ ${HDF5_TOOLS_SRC_DIR}/testfiles/tarray6.h5
+ ${HDF5_TOOLS_SRC_DIR}/testfiles/tarray7.h5
+ ${HDF5_TOOLS_SRC_DIR}/testfiles/tattr.h5
${HDF5_TOOLS_SRC_DIR}/testfiles/tbitfields.h5
+ ${HDF5_TOOLS_SRC_DIR}/testfiles/tcompound.h5
${HDF5_TOOLS_SRC_DIR}/testfiles/tcompound2.h5
+ ${HDF5_TOOLS_SRC_DIR}/testfiles/tcompound_complex.h5
+ ${HDF5_TOOLS_SRC_DIR}/testfiles/tdatareg.h5
+ ${HDF5_TOOLS_SRC_DIR}/testfiles/tdset.h5
${HDF5_TOOLS_SRC_DIR}/testfiles/tdset2.h5
+ ${HDF5_TOOLS_SRC_DIR}/testfiles/tempty.h5
${HDF5_TOOLS_SRC_DIR}/testfiles/tenum.h5
${HDF5_TOOLS_SRC_DIR}/testfiles/textlink.h5
+ ${HDF5_TOOLS_SRC_DIR}/testfiles/tfpformat.h5
+ ${HDF5_TOOLS_SRC_DIR}/testfiles/tgroup.h5
+ ${HDF5_TOOLS_SRC_DIR}/testfiles/thlink.h5
+ ${HDF5_TOOLS_SRC_DIR}/testfiles/tloop.h5
${HDF5_TOOLS_SRC_DIR}/testfiles/tloop2.h5
${HDF5_TOOLS_SRC_DIR}/testfiles/tmany.h5
${HDF5_TOOLS_SRC_DIR}/testfiles/tname-amp.h5
@@ -379,14 +431,28 @@ IF (BUILD_TESTING)
${HDF5_TOOLS_SRC_DIR}/testfiles/tname-lt.h5
${HDF5_TOOLS_SRC_DIR}/testfiles/tname-quot.h5
${HDF5_TOOLS_SRC_DIR}/testfiles/tname-sp.h5
+ ${HDF5_TOOLS_SRC_DIR}/testfiles/tnamed_dtype_attr.h5
+ ${HDF5_TOOLS_SRC_DIR}/testfiles/tnestedcomp.h5
${HDF5_TOOLS_SRC_DIR}/testfiles/tnodata.h5
${HDF5_TOOLS_SRC_DIR}/testfiles/tobjref.h5
${HDF5_TOOLS_SRC_DIR}/testfiles/topaque.h5
+ ${HDF5_TOOLS_SRC_DIR}/testfiles/torderattr.h5
${HDF5_TOOLS_SRC_DIR}/testfiles/tref.h5
${HDF5_TOOLS_SRC_DIR}/testfiles/tref-escapes.h5
${HDF5_TOOLS_SRC_DIR}/testfiles/tref-escapes-at.h5
+ ${HDF5_TOOLS_SRC_DIR}/testfiles/tsaf.h5
+ ${HDF5_TOOLS_SRC_DIR}/testfiles/tslink.h5
${HDF5_TOOLS_SRC_DIR}/testfiles/tstring.h5
${HDF5_TOOLS_SRC_DIR}/testfiles/tstring-at.h5
+ ${HDF5_TOOLS_SRC_DIR}/testfiles/tstr.h5
+ ${HDF5_TOOLS_SRC_DIR}/testfiles/tstr2.h5
+ ${HDF5_TOOLS_SRC_DIR}/testfiles/tudlink.h5
+ ${HDF5_TOOLS_SRC_DIR}/testfiles/tvldtypes1.h5
+ ${HDF5_TOOLS_SRC_DIR}/testfiles/tvldtypes2.h5
+ ${HDF5_TOOLS_SRC_DIR}/testfiles/tvldtypes3.h5
+ ${HDF5_TOOLS_SRC_DIR}/testfiles/tvldtypes4.h5
+ ${HDF5_TOOLS_SRC_DIR}/testfiles/tvldtypes5.h5
+ ${HDF5_TOOLS_SRC_DIR}/testfiles/tvlstr.h5
)
SET (HDF5_XML_REFERENCE_FILES
${HDF5_TOOLS_SRC_DIR}/testfiles/tall.h5.xml
@@ -456,7 +522,7 @@ IF (BUILD_TESTING)
FOREACH (tst_xml_h5_file ${HDF5_XML_REFERENCE_TEST_FILES})
GET_FILENAME_COMPONENT(fname "${tst_xml_h5_file}" NAME)
- SET (dest "${PROJECT_BINARY_DIR}/testfiles/${fname}")
+ SET (dest "${PROJECT_BINARY_DIR}/testfiles/xml/${fname}")
#MESSAGE (STATUS " Copying ${tst_xml_h5_file}")
ADD_CUSTOM_COMMAND (
TARGET h5dump
@@ -468,7 +534,7 @@ IF (BUILD_TESTING)
FOREACH (tst_xml_other_file ${HDF5_XML_REFERENCE_FILES})
GET_FILENAME_COMPONENT(fname "${tst_xml_other_file}" NAME)
- SET (dest "${PROJECT_BINARY_DIR}/testfiles/${fname}")
+ SET (dest "${PROJECT_BINARY_DIR}/testfiles/xml/${fname}")
#MESSAGE (STATUS " Copying ${tst_xml_other_file}")
ADD_CUSTOM_COMMAND (
TARGET h5dump
@@ -477,28 +543,6 @@ IF (BUILD_TESTING)
ARGS -E copy_if_different ${tst_xml_other_file} ${dest}
)
ENDFOREACH (tst_xml_other_file ${HDF5_XML_REFERENCE_FILES})
-
- # --------------------------------------------------------------------
- # Special file handling
- # --------------------------------------------------------------------
- ADD_CUSTOM_COMMAND (
- TARGET h5dump
- POST_BUILD
- COMMAND ${CMAKE_COMMAND}
- ARGS -E copy_if_different ${HDF5_TOOLS_SOURCE_DIR}/testfiles/tbin1.ddl ${PROJECT_BINARY_DIR}/testfiles/tbin1LE.ddl
- )
-
- IF (WIN32 AND NOT CYGWIN)
- FILE (READ ${HDF5_TOOLS_SRC_DIR}/testfiles/tbinregR.exp TEST_STREAM)
- FILE (WRITE ${PROJECT_BINARY_DIR}/testfiles/tbinregR.exp "${TEST_STREAM}")
- ELSE (WIN32 AND NOT CYGWIN)
- ADD_CUSTOM_COMMAND (
- TARGET h5dump
- POST_BUILD
- COMMAND ${CMAKE_COMMAND}
- ARGS -E copy_if_different ${HDF5_TOOLS_SRC_DIR}/testfiles/tbinregR.exp ${PROJECT_BINARY_DIR}/testfiles/tbinregR.exp
- )
- ENDIF (WIN32 AND NOT CYGWIN)
# --------------------------------------------------------------------
# Packed Bits
@@ -559,6 +603,11 @@ IF (BUILD_TESTING)
${HDF5_TOOLS_SRC_DIR}/testfiles/tpbitsSignedLongLong16.ddl
${HDF5_TOOLS_SRC_DIR}/testfiles/tpbitsUnsignedLongLong16.ddl
)
+ SET (HDF5_REFERENCE_TEST_PBITS
+ ${HDF5_TOOLS_SRC_DIR}/testfiles/packedbits.h5
+ ${HDF5_TOOLS_SRC_DIR}/testfiles/tarray1.h5
+ ${HDF5_TOOLS_SRC_DIR}/testfiles/tcompound.h5
+ )
SET (HDF5_ERROR_REFERENCE_PBITS
${PROJECT_SOURCE_DIR}/errfiles/tnofilename-with-packed-bits.err
${PROJECT_SOURCE_DIR}/errfiles/tpbitsCharLengthExceeded.err
@@ -575,9 +624,22 @@ IF (BUILD_TESTING)
${PROJECT_SOURCE_DIR}/errfiles/tpbitsOffsetNegative.err
)
+ FOREACH (pbits_h5_file ${HDF5_REFERENCE_TEST_PBITS})
+ 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 (
+ TARGET h5dump
+ POST_BUILD
+ COMMAND ${CMAKE_COMMAND}
+ ARGS -E copy_if_different ${pbits_h5_file} ${dest}
+ )
+ ENDFOREACH (pbits_h5_file ${HDF5_REFERENCE_TEST_PBITS})
+
+
FOREACH (ddl_pbits ${HDF5_REFERENCE_PBITS})
GET_FILENAME_COMPONENT(fname "${ddl_pbits}" NAME)
- SET (ddldest "${PROJECT_BINARY_DIR}/testfiles/${fname}")
+ SET (ddldest "${PROJECT_BINARY_DIR}/testfiles/pbits/${fname}")
#MESSAGE (STATUS " Copying ${ddl_pbits}")
ADD_CUSTOM_COMMAND (
TARGET h5dump
@@ -589,7 +651,7 @@ IF (BUILD_TESTING)
FOREACH (ddl_pbits ${HDF5_ERROR_REFERENCE_PBITS})
GET_FILENAME_COMPONENT(fname "${ddl_pbits}" NAME)
- SET (ddldest "${PROJECT_BINARY_DIR}/testfiles/${fname}")
+ SET (ddldest "${PROJECT_BINARY_DIR}/testfiles/pbits/${fname}")
#MESSAGE (STATUS " Copying ${ddl_pbits}")
ADD_CUSTOM_COMMAND (
TARGET h5dump
@@ -609,30 +671,30 @@ IF (BUILD_TESTING)
# If using memchecker add tests without using scripts
IF (HDF5_ENABLE_USING_MEMCHECKER)
ADD_TEST (NAME H5DUMP-${testname} COMMAND $<TARGET_FILE:h5dump> ${ARGN})
- SET_TESTS_PROPERTIES (H5DUMP-${testname} PROPERTIES WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles")
+ SET_TESTS_PROPERTIES (H5DUMP-${testname} PROPERTIES WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles/std")
IF (NOT "${last_test}" STREQUAL "")
SET_TESTS_PROPERTIES (H5DUMP-${testname} PROPERTIES DEPENDS ${last_test})
ENDIF (NOT "${last_test}" STREQUAL "")
SET (last_test "H5DUMP-${testname}")
ELSE (HDF5_ENABLE_USING_MEMCHECKER)
ADD_TEST (
- NAME H5DUMP-clear-h5dump-${testname}-objects
+ NAME H5DUMP-h5dump-${testname}-clear-objects
COMMAND ${CMAKE_COMMAND}
-E remove h5dump-${testname}.out h5dump-${testname}.out.err
)
- SET_TESTS_PROPERTIES (H5DUMP-clear-h5dump-${testname}-objects PROPERTIES WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles")
+ SET_TESTS_PROPERTIES (H5DUMP-h5dump-${testname}-clear-objects PROPERTIES WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles/std")
ADD_TEST (
NAME H5DUMP-h5dump-${testname}
COMMAND "${CMAKE_COMMAND}"
-D "TEST_PROGRAM=$<TARGET_FILE:h5dump>"
-D "TEST_ARGS:STRING=${ARGN}"
- -D "TEST_FOLDER=${PROJECT_BINARY_DIR}/testfiles"
+ -D "TEST_FOLDER=${PROJECT_BINARY_DIR}/testfiles/std"
-D "TEST_OUTPUT=h5dump-${testname}.out"
-D "TEST_EXPECT=${resultcode}"
-D "TEST_REFERENCE=h5dump-${testname}.txt"
-P "${HDF5_RESOURCES_DIR}/runTest.cmake"
)
- SET_TESTS_PROPERTIES (H5DUMP-h5dump-${testname} PROPERTIES DEPENDS "H5DUMP-clear-h5dump-${testname}-objects")
+ SET_TESTS_PROPERTIES (H5DUMP-h5dump-${testname} PROPERTIES DEPENDS "H5DUMP-h5dump-${testname}-clear-objects")
ENDIF (HDF5_ENABLE_USING_MEMCHECKER)
ENDMACRO (ADD_HELP_TEST)
@@ -653,98 +715,184 @@ IF (BUILD_TESTING)
# 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}/testfiles")
+ SET_TESTS_PROPERTIES (H5DUMP-${resultfile} PROPERTIES WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles/std")
IF (NOT ${resultcode} STREQUAL "0")
SET_TESTS_PROPERTIES (H5DUMP-${resultfile} PROPERTIES WILL_FAIL "true")
ENDIF (NOT ${resultcode} STREQUAL "0")
IF (NOT "${last_test}" STREQUAL "")
SET_TESTS_PROPERTIES (H5DUMP-${resultfile} PROPERTIES DEPENDS ${last_test})
ENDIF (NOT "${last_test}" STREQUAL "")
- SET (last_test "H5DUMP-${resultfile}")
ELSE (HDF5_ENABLE_USING_MEMCHECKER)
ADD_TEST (
- NAME H5DUMP-clear-${resultfile}-objects
+ NAME H5DUMP-${resultfile}-clear-objects
COMMAND ${CMAKE_COMMAND}
- -E remove ${resultfile}.out ${resultfile}.out.err
+ -E remove ${resultfile}.bin ${resultfile}.out ${resultfile}.out.err
)
- SET_TESTS_PROPERTIES (H5DUMP-clear-${resultfile}-objects PROPERTIES WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles")
+ SET_TESTS_PROPERTIES (H5DUMP-${resultfile}-clear-objects PROPERTIES WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles/std")
ADD_TEST (
NAME H5DUMP-${resultfile}
COMMAND "${CMAKE_COMMAND}"
-D "TEST_PROGRAM=$<TARGET_FILE:h5dump>"
-D "TEST_ARGS:STRING=${ARGN}"
- -D "TEST_FOLDER=${PROJECT_BINARY_DIR}/testfiles"
+ -D "TEST_FOLDER=${PROJECT_BINARY_DIR}/testfiles/std"
-D "TEST_OUTPUT=${resultfile}.out"
-D "TEST_EXPECT=${resultcode}"
-D "TEST_REFERENCE=${resultfile}.ddl"
-P "${HDF5_RESOURCES_DIR}/runTest.cmake"
)
- SET_TESTS_PROPERTIES (H5DUMP-${resultfile} PROPERTIES DEPENDS "H5DUMP-clear-${resultfile}-objects")
+ SET_TESTS_PROPERTIES (H5DUMP-${resultfile} PROPERTIES DEPENDS "H5DUMP-${resultfile}-clear-objects")
ENDIF (HDF5_ENABLE_USING_MEMCHECKER)
ENDMACRO (ADD_H5_TEST file)
+ MACRO (ADD_H5_TEST_EXPORT resultfile targetfile resultcode)
+ # If using memchecker add tests without using scripts
+ IF (HDF5_ENABLE_USING_MEMCHECKER)
+ ADD_TEST (NAME H5DUMP-${resultfile} COMMAND $<TARGET_FILE:h5dump> ${ARGN} ${resultfile}.txt ${targetfile})
+ SET_TESTS_PROPERTIES (H5DUMP-${resultfile} PROPERTIES WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles/std")
+ IF (NOT ${resultcode} STREQUAL "0")
+ SET_TESTS_PROPERTIES (H5DUMP-${resultfile} PROPERTIES WILL_FAIL "true")
+ ENDIF (NOT ${resultcode} STREQUAL "0")
+ IF (NOT "${last_test}" STREQUAL "")
+ SET_TESTS_PROPERTIES (H5DUMP-${resultfile} PROPERTIES DEPENDS ${last_test})
+ ENDIF (NOT "${last_test}" STREQUAL "")
+ ELSE (HDF5_ENABLE_USING_MEMCHECKER)
+ ADD_TEST (
+ NAME H5DUMP-${resultfile}-clear-objects
+ COMMAND ${CMAKE_COMMAND}
+ -E remove ${resultfile}.txt ${resultfile}.out ${resultfile}.out.err
+ )
+ SET_TESTS_PROPERTIES (H5DUMP-${resultfile}-clear-objects PROPERTIES WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles/std")
+ ADD_TEST (
+ NAME H5DUMP-${resultfile}
+ COMMAND "${CMAKE_COMMAND}"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5dump>"
+ -D "TEST_ARGS:STRING=${ARGN};${resultfile}.txt;${targetfile}"
+ -D "TEST_FOLDER=${PROJECT_BINARY_DIR}/testfiles/std"
+ -D "TEST_OUTPUT=${resultfile}.out"
+ -D "TEST_EXPECT=${resultcode}"
+ -D "TEST_REFERENCE=${resultfile}.ddl"
+ -P "${HDF5_RESOURCES_DIR}/runTest.cmake"
+ )
+ SET_TESTS_PROPERTIES (H5DUMP-${resultfile} PROPERTIES DEPENDS "H5DUMP-${resultfile}-clear-objects")
+ ADD_TEST (
+ NAME H5DUMP-${resultfile}-output-cmp
+ COMMAND ${CMAKE_COMMAND}
+ -E compare_files ${resultfile}.txt ${resultfile}.exp
+ )
+ SET_TESTS_PROPERTIES (H5DUMP-${resultfile}-output-cmp PROPERTIES WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles/std")
+ SET_TESTS_PROPERTIES (H5DUMP-${resultfile}-output-cmp PROPERTIES DEPENDS H5DUMP-${resultfile})
+ ENDIF (HDF5_ENABLE_USING_MEMCHECKER)
+ ENDMACRO (ADD_H5_TEST_EXPORT file)
+
+ MACRO (ADD_H5_TEST_EXPORT_DDL resultfile targetfile resultcode ddlfile)
+ # If using memchecker add tests without using scripts
+ IF (HDF5_ENABLE_USING_MEMCHECKER)
+ ADD_TEST (NAME H5DUMP-${resultfile} COMMAND $<TARGET_FILE:h5dump> --ddl=${ddlfile}.txt ${ARGN} ${resultfile}.txt ${targetfile})
+ SET_TESTS_PROPERTIES (H5DUMP-${resultfile} PROPERTIES WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles/std")
+ IF (NOT ${resultcode} STREQUAL "0")
+ SET_TESTS_PROPERTIES (H5DUMP-${resultfile} PROPERTIES WILL_FAIL "true")
+ ENDIF (NOT ${resultcode} STREQUAL "0")
+ IF (NOT "${last_test}" STREQUAL "")
+ SET_TESTS_PROPERTIES (H5DUMP-${resultfile} PROPERTIES DEPENDS ${last_test})
+ ENDIF (NOT "${last_test}" STREQUAL "")
+ ELSE (HDF5_ENABLE_USING_MEMCHECKER)
+ ADD_TEST (
+ NAME H5DUMP-${resultfile}-clear-objects
+ COMMAND ${CMAKE_COMMAND}
+ -E remove ${ddlfile}.txt ${resultfile}.txt ${resultfile}.out ${resultfile}.out.err
+ )
+ SET_TESTS_PROPERTIES (H5DUMP-${resultfile}-clear-objects PROPERTIES WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles/std")
+ ADD_TEST (
+ NAME H5DUMP-${resultfile}
+ COMMAND "${CMAKE_COMMAND}"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5dump>"
+ -D "TEST_ARGS:STRING=--ddl=${ddlfile}.txt;${ARGN};${resultfile}.txt;${targetfile}"
+ -D "TEST_FOLDER=${PROJECT_BINARY_DIR}/testfiles/std"
+ -D "TEST_OUTPUT=${resultfile}.out"
+ -D "TEST_EXPECT=${resultcode}"
+ -D "TEST_REFERENCE=${resultfile}.ddl"
+ -P "${HDF5_RESOURCES_DIR}/runTest.cmake"
+ )
+ SET_TESTS_PROPERTIES (H5DUMP-${resultfile} PROPERTIES DEPENDS "H5DUMP-${resultfile}-clear-objects")
+ ADD_TEST (
+ NAME H5DUMP-${resultfile}-output-cmp
+ COMMAND ${CMAKE_COMMAND}
+ -E compare_files ${resultfile}.txt ${resultfile}.exp
+ )
+ SET_TESTS_PROPERTIES (H5DUMP-${resultfile}-output-cmp PROPERTIES WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles/std")
+ SET_TESTS_PROPERTIES (H5DUMP-${resultfile}-output-cmp PROPERTIES DEPENDS H5DUMP-${resultfile})
+ ADD_TEST (
+ NAME H5DUMP-${resultfile}-output-cmp-ddl
+ COMMAND ${CMAKE_COMMAND}
+ -E compare_files ${ddlfile}.txt ${ddlfile}.exp
+ )
+ SET_TESTS_PROPERTIES (H5DUMP-${resultfile}-output-cmp-ddl PROPERTIES WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles/std")
+ SET_TESTS_PROPERTIES (H5DUMP-${resultfile}-output-cmp-ddl PROPERTIES DEPENDS H5DUMP-${resultfile}-output-cmp)
+ ENDIF (HDF5_ENABLE_USING_MEMCHECKER)
+ ENDMACRO (ADD_H5_TEST_EXPORT_DDL file)
+
MACRO (ADD_H5_EXPORT_TEST resultfile targetfile resultcode)
- ADD_TEST (
- NAME H5DUMP-output-${resultfile}
- COMMAND $<TARGET_FILE:h5dump> ${ARGN} ${resultfile}.txt ${targetfile}
- )
- SET_TESTS_PROPERTIES (H5DUMP-output-${resultfile} PROPERTIES WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles")
- IF (NOT "${last_test}" STREQUAL "")
- SET_TESTS_PROPERTIES (H5DUMP-output-${resultfile} PROPERTIES DEPENDS ${last_test})
- ENDIF (NOT "${last_test}" STREQUAL "")
- SET (last_test "H5DUMP-output-${resultfile}")
IF (NOT HDF5_ENABLE_USING_MEMCHECKER)
ADD_TEST (
+ NAME H5DUMP-output-${resultfile}-clear-objects
+ COMMAND ${CMAKE_COMMAND}
+ -E remove ${resultfile}.txt
+ )
+ SET_TESTS_PROPERTIES (H5DUMP-output-${resultfile}-clear-objects PROPERTIES WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles/std")
+ ADD_TEST (
+ NAME H5DUMP-output-${resultfile}
+ COMMAND $<TARGET_FILE:h5dump> ${ARGN} ${resultfile}.txt ${targetfile}
+ )
+ SET_TESTS_PROPERTIES (H5DUMP-output-${resultfile} PROPERTIES WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles/std")
+ SET_TESTS_PROPERTIES (H5DUMP-output-${resultfile} PROPERTIES DEPENDS H5DUMP-output-${resultfile}-clear-objects)
+ ADD_TEST (
NAME H5DUMP-output-cmp-${resultfile}
COMMAND ${CMAKE_COMMAND}
-E compare_files ${resultfile}.txt ${resultfile}.exp
)
- SET_TESTS_PROPERTIES (H5DUMP-output-cmp-${resultfile} PROPERTIES WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles")
- IF (NOT "${last_test}" STREQUAL "")
- SET_TESTS_PROPERTIES (H5DUMP-output-cmp-${resultfile} PROPERTIES DEPENDS ${last_test})
- ENDIF (NOT "${last_test}" STREQUAL "")
- SET (last_test "H5DUMP-output-cmp-${resultfile}")
+ SET_TESTS_PROPERTIES (H5DUMP-output-cmp-${resultfile} PROPERTIES WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles/std")
+ SET_TESTS_PROPERTIES (H5DUMP-output-cmp-${resultfile} PROPERTIES DEPENDS H5DUMP-output-${resultfile})
ENDIF (NOT HDF5_ENABLE_USING_MEMCHECKER)
ENDMACRO (ADD_H5_EXPORT_TEST file)
MACRO (ADD_H5_MASK_TEST resultfile resultcode)
IF (NOT HDF5_ENABLE_USING_MEMCHECKER)
ADD_TEST (
- NAME H5DUMP-clear-${resultfile}-objects
+ NAME H5DUMP-${resultfile}-clear-objects
COMMAND ${CMAKE_COMMAND}
-E remove ${resultfile}.out ${resultfile}.out.err
)
- SET_TESTS_PROPERTIES (H5DUMP-clear-${resultfile}-objects PROPERTIES WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles")
+ SET_TESTS_PROPERTIES (H5DUMP-${resultfile}-clear-objects PROPERTIES WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles/std")
ADD_TEST (
NAME H5DUMP-${resultfile}
COMMAND "${CMAKE_COMMAND}"
-D "TEST_PROGRAM=$<TARGET_FILE:h5dump>"
-D "TEST_ARGS:STRING=${ARGN}"
- -D "TEST_FOLDER=${PROJECT_BINARY_DIR}/testfiles"
+ -D "TEST_FOLDER=${PROJECT_BINARY_DIR}/testfiles/std"
-D "TEST_OUTPUT=${resultfile}.out"
-D "TEST_EXPECT=${resultcode}"
-D "TEST_REFERENCE=${resultfile}.ddl"
-D "TEST_MASK_ERROR=true"
-P "${HDF5_RESOURCES_DIR}/runTest.cmake"
)
- SET_TESTS_PROPERTIES (H5DUMP-${resultfile} PROPERTIES DEPENDS "H5DUMP-clear-${resultfile}-objects")
+ SET_TESTS_PROPERTIES (H5DUMP-${resultfile} PROPERTIES DEPENDS "H5DUMP-${resultfile}-clear-objects")
ENDIF (NOT HDF5_ENABLE_USING_MEMCHECKER)
ENDMACRO (ADD_H5_MASK_TEST file)
MACRO (ADD_H5ERR_MASK_TEST resultfile resultcode)
IF (NOT HDF5_ENABLE_USING_MEMCHECKER)
ADD_TEST (
- NAME H5DUMP-clear-${resultfile}-objects
+ NAME H5DUMP-${resultfile}-clear-objects
COMMAND ${CMAKE_COMMAND}
-E remove ${resultfile}.out ${resultfile}.out.err
)
- SET_TESTS_PROPERTIES (H5DUMP-clear-${resultfile}-objects PROPERTIES WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles")
+ SET_TESTS_PROPERTIES (H5DUMP-${resultfile}-clear-objects PROPERTIES WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles/std")
ADD_TEST (
NAME H5DUMP-${resultfile}
COMMAND "${CMAKE_COMMAND}"
-D "TEST_PROGRAM=$<TARGET_FILE:h5dump>"
-D "TEST_ARGS:STRING=${ARGN}"
- -D "TEST_FOLDER=${PROJECT_BINARY_DIR}/testfiles"
+ -D "TEST_FOLDER=${PROJECT_BINARY_DIR}/testfiles/std"
-D "TEST_OUTPUT=${resultfile}.out"
-D "TEST_EXPECT=${resultcode}"
-D "TEST_REFERENCE=${resultfile}.ddl"
@@ -752,10 +900,73 @@ IF (BUILD_TESTING)
-D "TEST_MASK_ERROR=true"
-P "${HDF5_RESOURCES_DIR}/runTest.cmake"
)
- SET_TESTS_PROPERTIES (H5DUMP-${resultfile} PROPERTIES DEPENDS "H5DUMP-clear-${resultfile}-objects")
+ SET_TESTS_PROPERTIES (H5DUMP-${resultfile} PROPERTIES DEPENDS "H5DUMP-${resultfile}-clear-objects")
ENDIF (NOT HDF5_ENABLE_USING_MEMCHECKER)
ENDMACRO (ADD_H5ERR_MASK_TEST file)
+ MACRO (ADD_H5_TEST_IMPORT conffile resultfile testfile resultcode)
+ # If using memchecker add tests without using scripts
+ IF (NOT HDF5_ENABLE_USING_MEMCHECKER)
+ ADD_TEST (
+ NAME H5DUMP-IMPORT-${resultfile}-clear-objects
+ COMMAND ${CMAKE_COMMAND}
+ -E remove ${conffile}.out ${conffile}.out.err ${resultfile}.bin ${resultfile}.h5
+ )
+ SET_TESTS_PROPERTIES (H5DUMP-IMPORT-${resultfile}-clear-objects PROPERTIES WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles/std")
+ ADD_TEST (
+ NAME H5DUMP-IMPORT-${resultfile}
+ COMMAND "${CMAKE_COMMAND}"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5dump>"
+ -D "TEST_ARGS:STRING=${ARGN};-o;${resultfile}.bin;${testfile}"
+ -D "TEST_FOLDER=${PROJECT_BINARY_DIR}/testfiles/std"
+ -D "TEST_OUTPUT=${conffile}.out"
+ -D "TEST_EXPECT=${resultcode}"
+ -D "TEST_REFERENCE=${conffile}.ddl"
+ -P "${HDF5_RESOURCES_DIR}/runTest.cmake"
+ )
+ SET_TESTS_PROPERTIES (H5DUMP-IMPORT-${resultfile} PROPERTIES DEPENDS "H5DUMP-IMPORT-${resultfile}-clear-objects")
+ ADD_TEST (NAME H5DUMP-IMPORT-h5import-${resultfile} COMMAND h5import ${resultfile}.bin -c ${conffile}.out -o ${resultfile}.h5)
+ SET_TESTS_PROPERTIES (H5DUMP-IMPORT-h5import-${resultfile} PROPERTIES WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles/std")
+ SET_TESTS_PROPERTIES (H5DUMP-IMPORT-h5import-${resultfile} PROPERTIES DEPENDS H5DUMP-IMPORT-${resultfile})
+ ADD_TEST (NAME H5DUMP-IMPORT-h5diff-${resultfile} COMMAND h5diff ${testfile} ${resultfile}.h5 /integer /integer)
+ SET_TESTS_PROPERTIES (H5DUMP-IMPORT-h5diff-${resultfile} PROPERTIES WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles/std")
+ SET_TESTS_PROPERTIES (H5DUMP-IMPORT-h5diff-${resultfile} PROPERTIES DEPENDS H5DUMP-IMPORT-h5import-${resultfile})
+ ENDIF (NOT HDF5_ENABLE_USING_MEMCHECKER)
+ ENDMACRO (ADD_H5_TEST_IMPORT file)
+
+ MACRO (ADD_H5_PBITS_TEST resultfile resultcode)
+ # 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}/testfiles/pbits")
+ IF (NOT ${resultcode} STREQUAL "0")
+ SET_TESTS_PROPERTIES (H5DUMP-${resultfile} PROPERTIES WILL_FAIL "true")
+ ENDIF (NOT ${resultcode} STREQUAL "0")
+ IF (NOT "${last_pbits_test}" STREQUAL "")
+ SET_TESTS_PROPERTIES (H5DUMP-${resultfile} PROPERTIES DEPENDS ${last_pbits_test})
+ ENDIF (NOT "${last_pbits_test}" STREQUAL "")
+ ELSE (HDF5_ENABLE_USING_MEMCHECKER)
+ ADD_TEST (
+ NAME H5DUMP-${resultfile}-clear-objects
+ COMMAND ${CMAKE_COMMAND}
+ -E remove ${resultfile}.out ${resultfile}.out.err
+ )
+ SET_TESTS_PROPERTIES (H5DUMP-${resultfile}-clear-objects PROPERTIES WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles/pbits")
+ ADD_TEST (
+ NAME H5DUMP-${resultfile}
+ COMMAND "${CMAKE_COMMAND}"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5dump>"
+ -D "TEST_ARGS:STRING=${ARGN}"
+ -D "TEST_FOLDER=${PROJECT_BINARY_DIR}/testfiles/pbits"
+ -D "TEST_OUTPUT=${resultfile}.out"
+ -D "TEST_EXPECT=${resultcode}"
+ -D "TEST_REFERENCE=${resultfile}.ddl"
+ -P "${HDF5_RESOURCES_DIR}/runTest.cmake"
+ )
+ SET_TESTS_PROPERTIES (H5DUMP-${resultfile} PROPERTIES DEPENDS "H5DUMP-${resultfile}-clear-objects")
+ ENDIF (HDF5_ENABLE_USING_MEMCHECKER)
+ ENDMACRO (ADD_H5_PBITS_TEST file)
+
MACRO (ADD_XML_SKIP_H5_TEST skipresultfile skipresultcode testtype)
IF (${testtype} STREQUAL "SKIP")
IF (NOT HDF5_ENABLE_USING_MEMCHECKER)
@@ -772,33 +983,32 @@ IF (BUILD_TESTING)
MACRO (ADD_XML_H5_TEST resultfile resultcode)
IF (HDF5_ENABLE_USING_MEMCHECKER)
ADD_TEST (NAME H5DUMP-XML-${resultfile} COMMAND $<TARGET_FILE:h5dump> --xml ${ARGN})
- SET_TESTS_PROPERTIES (H5DUMP-XML-${resultfile} PROPERTIES WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles")
+ SET_TESTS_PROPERTIES (H5DUMP-XML-${resultfile} PROPERTIES WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles/xml")
IF (NOT ${resultcode} STREQUAL "0")
SET_TESTS_PROPERTIES (H5DUMP-XML-${resultfile} PROPERTIES WILL_FAIL "true")
ENDIF (NOT ${resultcode} STREQUAL "0")
- IF (NOT "${last_test}" STREQUAL "")
- SET_TESTS_PROPERTIES (H5DUMP-XML-${resultfile} PROPERTIES DEPENDS ${last_test})
- ENDIF (NOT "${last_test}" STREQUAL "")
- SET (last_test "H5DUMP-XML-${resultfile}")
+ IF (NOT "${last_xml_test}" STREQUAL "")
+ SET_TESTS_PROPERTIES (H5DUMP-XML-${resultfile} PROPERTIES DEPENDS ${last_xml_test})
+ ENDIF (NOT "${last_xml_test}" STREQUAL "")
ELSE (HDF5_ENABLE_USING_MEMCHECKER)
ADD_TEST (
- NAME H5DUMP-XML-clear-${resultfile}-objects
+ NAME H5DUMP-XML-${resultfile}-clear-objects
COMMAND ${CMAKE_COMMAND}
-E remove ${resultfile}.out ${resultfile}.out.err
)
- SET_TESTS_PROPERTIES (H5DUMP-XML-clear-${resultfile}-objects PROPERTIES WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles")
+ SET_TESTS_PROPERTIES (H5DUMP-XML-${resultfile}-clear-objects PROPERTIES WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles/xml")
ADD_TEST (
NAME H5DUMP-XML-${resultfile}
COMMAND "${CMAKE_COMMAND}"
-D "TEST_PROGRAM=$<TARGET_FILE:h5dump>"
-D "TEST_ARGS:STRING=--xml;${ARGN}"
- -D "TEST_FOLDER=${PROJECT_BINARY_DIR}/testfiles"
+ -D "TEST_FOLDER=${PROJECT_BINARY_DIR}/testfiles/xml"
-D "TEST_OUTPUT=${resultfile}.out"
-D "TEST_EXPECT=${resultcode}"
-D "TEST_REFERENCE=${resultfile}.xml"
-P "${HDF5_RESOURCES_DIR}/runTest.cmake"
)
- SET_TESTS_PROPERTIES (H5DUMP-XML-${resultfile} PROPERTIES DEPENDS "H5DUMP-XML-clear-${resultfile}-objects")
+ SET_TESTS_PROPERTIES (H5DUMP-XML-${resultfile} PROPERTIES DEPENDS "H5DUMP-XML-${resultfile}-clear-objects")
ENDIF (HDF5_ENABLE_USING_MEMCHECKER)
ENDMACRO (ADD_XML_H5_TEST file)
@@ -835,6 +1045,7 @@ IF (BUILD_TESTING)
tall-4s.out.err
tall-5s.out
tall-5s.out.err
+ tall-6.txt
tall-6.out
tall-6.out.err
tallfilters.out
@@ -875,6 +1086,8 @@ IF (BUILD_TESTING)
tattrreg.out.err
tattrregR.out
tattrregR.out.err
+ tbin1LE.bin
+ tbinregR.txt
tbinregR.out
tbinregR.out.err
tbigdims.out
@@ -997,6 +1210,19 @@ IF (BUILD_TESTING)
tnestedcmpddt.out.err
tnbit.out
tnbit.out.err
+ tnoattrdata.out
+ tnoattrdata.out.err
+ tnoattrddl.out
+ tnoattrddl.out.err
+ tnodata.out
+ tnodata.out.err
+ tnoddl.out
+ tnoddl.out.err
+ tnoddlfile.out
+ tnoddlfile.out.err
+ trawdatafile.out
+ trawdatafile.out.err
+ trawdatafile.txt
tno-subset.out
tno-subset.out.err
tnullspace.out
@@ -1035,6 +1261,12 @@ IF (BUILD_TESTING)
treference.out.err
tsaf.out
tsaf.out.err
+ tscalarintsize.out
+ tscalarintsize.out.err
+ tscalarattrintsize.out
+ tscalarattrintsize.out.err
+ tscalarstring.out
+ tscalarstring.out.err
tscaleoffset.out
tscaleoffset.out.err
tshuffle.out
@@ -1083,8 +1315,12 @@ IF (BUILD_TESTING)
tvms.out.err
twidedisplay.out
twidedisplay.out.err
+ twithddl.txt
+ twithddlfile.out
+ twithddlfile.out.err
+ twithddlfile.txt
)
- SET_TESTS_PROPERTIES (H5DUMP-clearall-objects PROPERTIES WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles")
+ SET_TESTS_PROPERTIES (H5DUMP-clearall-objects PROPERTIES WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles/std")
IF (NOT "${last_test}" STREQUAL "")
SET_TESTS_PROPERTIES (H5DUMP-clearall-objects PROPERTIES DEPENDS ${last_test})
ENDIF (NOT "${last_test}" STREQUAL "")
@@ -1093,6 +1329,18 @@ IF (BUILD_TESTING)
ADD_HELP_TEST(help 0 -h)
+ # test data output redirection
+ #ADD_H5_TEST (tnoddl 0 --enable-error-stack -O -y packedbits.h5)
+ ADD_H5_TEST (tnoddl 0 --enable-error-stack --ddl -y packedbits.h5)
+ #ADD_H5_TEST (tnodata 0 --enable-error-stack -o packedbits.h5)
+ ADD_H5_TEST (tnodata 0 --enable-error-stack --output packedbits.h5)
+ ADD_H5_TEST (tnoattrddl 0 --enable-error-stack -O -y tattr.h5)
+ ADD_H5_TEST (tnoattrdata 0 --enable-error-stack -A -o tattr.h5)
+ 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_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)
@@ -1100,10 +1348,16 @@ IF (BUILD_TESTING)
ADD_H5_TEST (packedbits 0 --enable-error-stack packedbits.h5)
# test for compound signed/unsigned datasets
ADD_H5_TEST (tcmpdintsize 0 --enable-error-stack tcmpdintsize.h5)
+ # test for signed/unsigned scalar datasets
+ ADD_H5_TEST (tscalarintsize 0 --enable-error-stack tscalarintsize.h5)
# test for signed/unsigned attributes
ADD_H5_TEST (tattrintsize 0 --enable-error-stack tattrintsize.h5)
# test for compound signed/unsigned attributes
ADD_H5_TEST (tcmpdattrintsize 0 --enable-error-stack tcmpdattrintsize.h5)
+ # test for signed/unsigned scalar attributes
+ ADD_H5_TEST (tscalarattrintsize 0 --enable-error-stack tscalarattrintsize.h5)
+ # test for string scalar dataset and attribute
+ ADD_H5_TEST (tscalarstring 0 --enable-error-stack tscalarstring.h5)
# test for displaying groups
ADD_H5_TEST (tgroup-1 0 --enable-error-stack tgroup.h5)
# test for displaying the selected groups
@@ -1335,110 +1589,31 @@ IF (BUILD_TESTING)
ADD_H5_TEST (tvms 0 --enable-error-stack tvms.h5)
# test for binary output
- ADD_H5_TEST (tbin1LE 0 --enable-error-stack -d integer -o out1LE.bin -b LE tbinary.h5)
+ ADD_H5_TEST (tbin1LE 0 --enable-error-stack -d integer -o tbin1LE.bin -b LE tbinary.h5)
# test for string binary output
ADD_H5_EXPORT_TEST (tstr2bin2 tstr2.h5 0 --enable-error-stack -d /g2/dset2 -b -o)
ADD_H5_EXPORT_TEST (tstr2bin6 tstr2.h5 0 --enable-error-stack -d /g6/dset6 -b -o)
# NATIVE default. the NATIVE test can be validated with h5import/h5diff
- ADD_H5_TEST (tbin1 0 --enable-error-stack -d integer -o out1.bin -b tbinary.h5)
- IF (NOT "${last_test}" STREQUAL "")
- SET_TESTS_PROPERTIES (H5DUMP-tbin1 PROPERTIES DEPENDS ${last_test})
- ENDIF (NOT "${last_test}" STREQUAL "")
- SET (last_test "H5DUMP-tbin1")
-
+ ADD_H5_TEST_IMPORT (tbin1 out1D tbinary.h5 0 --enable-error-stack -d integer -b)
+
IF (NOT HDF5_ENABLE_USING_MEMCHECKER)
- ADD_TEST (NAME H5DUMP-clear-out1D COMMAND ${CMAKE_COMMAND} -E remove ./testfiles/out1D.h5)
- SET_TESTS_PROPERTIES (H5DUMP-clear-out1D PROPERTIES DEPENDS H5DUMP-tbin1)
- ADD_TEST (NAME H5DUMP-h5import-out1D COMMAND h5import out1.bin -c tbin1.out -o out1D.h5)
- SET_TESTS_PROPERTIES (H5DUMP-h5import-out1D PROPERTIES WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles")
- SET_TESTS_PROPERTIES (H5DUMP-h5import-out1D PROPERTIES DEPENDS H5DUMP-clear-out1D)
- ADD_TEST (NAME H5DUMP-h5diff-out1D COMMAND h5diff tbinary.h5 out1D.h5 /integer /integer)
- SET_TESTS_PROPERTIES (H5DUMP-h5diff-out1D PROPERTIES WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles")
- SET_TESTS_PROPERTIES (H5DUMP-h5diff-out1D PROPERTIES DEPENDS H5DUMP-h5import-out1D)
- SET (last_test "H5DUMP-h5diff-out1D")
- ENDIF (NOT HDF5_ENABLE_USING_MEMCHECKER)
-
- ADD_TEST (NAME H5DUMP-clear-out1 COMMAND ${CMAKE_COMMAND} -E remove ./testfiles/out1.h5)
- IF (NOT "${last_test}" STREQUAL "")
- SET_TESTS_PROPERTIES (H5DUMP-clear-out1 PROPERTIES DEPENDS ${last_test})
- ENDIF (NOT "${last_test}" STREQUAL "")
- ADD_TEST (NAME H5DUMP-h5import-out1 COMMAND h5import out1.bin -c out3.h5import -o out1.h5)
- SET_TESTS_PROPERTIES (H5DUMP-h5import-out1 PROPERTIES WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles")
- SET_TESTS_PROPERTIES (H5DUMP-h5import-out1 PROPERTIES DEPENDS H5DUMP-clear-out1)
- ADD_TEST (NAME H5DUMP-h5diff-out1 COMMAND h5diff tbinary.h5 out1.h5 /integer /integer)
- SET_TESTS_PROPERTIES (H5DUMP-h5diff-out1 PROPERTIES WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles")
- SET_TESTS_PROPERTIES (H5DUMP-h5diff-out1 PROPERTIES DEPENDS H5DUMP-h5import-out1)
- SET (last_test "H5DUMP-h5diff-out1")
-
- ADD_H5_TEST (tbin2 0 --enable-error-stack -b BE -d float -o out2.bin tbinary.h5)
- IF (NOT HDF5_ENABLE_USING_MEMCHECKER)
- IF (NOT "${last_test}" STREQUAL "")
- SET_TESTS_PROPERTIES (H5DUMP-tbin2 PROPERTIES DEPENDS ${last_test})
- ENDIF (NOT "${last_test}" STREQUAL "")
- SET (last_test "H5DUMP-tbin2")
+ ADD_TEST (NAME H5DUMP-tbin2-bin-clear-objects COMMAND ${CMAKE_COMMAND} -E remove out2.bin)
+ SET_TESTS_PROPERTIES (H5DUMP-tbin2-bin-clear-objects PROPERTIES WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles/std")
+ ADD_H5_TEST (tbin2 0 --enable-error-stack -b BE -d float -o out2.bin tbinary.h5)
+ SET_TESTS_PROPERTIES (H5DUMP-tbin2 PROPERTIES DEPENDS H5DUMP-tbin2-bin-clear-objects)
ENDIF (NOT HDF5_ENABLE_USING_MEMCHECKER)
# the NATIVE test can be validated with h5import/h5diff
- ADD_H5_TEST (tbin3 0 --enable-error-stack -d integer -o out3.bin -b NATIVE tbinary.h5)
- IF (NOT "${last_test}" STREQUAL "")
- SET_TESTS_PROPERTIES (H5DUMP-tbin3 PROPERTIES DEPENDS ${last_test})
- ENDIF (NOT "${last_test}" STREQUAL "")
- SET (last_test "H5DUMP-tbin3")
-
- IF (NOT HDF5_ENABLE_USING_MEMCHECKER)
- ADD_TEST (NAME H5DUMP-clear-out3D COMMAND ${CMAKE_COMMAND} -E remove ./testfiles/out3D.h5)
- SET_TESTS_PROPERTIES (H5DUMP-clear-out3D PROPERTIES DEPENDS H5DUMP-tbin3)
- ADD_TEST (NAME H5DUMP-h5import-out3D COMMAND h5import out3.bin -c tbin3.out -o out3D.h5)
- SET_TESTS_PROPERTIES (H5DUMP-h5import-out3D PROPERTIES WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles")
- SET_TESTS_PROPERTIES (H5DUMP-h5import-out3D PROPERTIES DEPENDS H5DUMP-clear-out3D)
- ADD_TEST (NAME H5DUMP-h5diff-out3D COMMAND h5diff tbinary.h5 out3D.h5 /integer /integer -q)
- SET_TESTS_PROPERTIES (H5DUMP-h5diff-out3D PROPERTIES WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles")
- SET_TESTS_PROPERTIES (H5DUMP-h5diff-out3D PROPERTIES DEPENDS H5DUMP-h5import-out3D)
- SET (last_test "H5DUMP-h5diff-out3D")
- ENDIF (NOT HDF5_ENABLE_USING_MEMCHECKER)
-
- ADD_TEST (NAME H5DUMP-clear-out3 COMMAND ${CMAKE_COMMAND} -E remove ./testfiles/out3.h5)
- IF (NOT "${last_test}" STREQUAL "")
- SET_TESTS_PROPERTIES (H5DUMP-clear-out3 PROPERTIES DEPENDS ${last_test})
- ENDIF (NOT "${last_test}" STREQUAL "")
- ADD_TEST (NAME H5DUMP-h5import-out3 COMMAND h5import out3.bin -c out3.h5import -o out3.h5)
- SET_TESTS_PROPERTIES (H5DUMP-h5import-out3 PROPERTIES WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles")
- SET_TESTS_PROPERTIES (H5DUMP-h5import-out3 PROPERTIES DEPENDS H5DUMP-clear-out3)
- ADD_TEST (NAME H5DUMP-h5diff-out3 COMMAND h5diff tbinary.h5 out3.h5 /integer /integer -q)
- SET_TESTS_PROPERTIES (H5DUMP-h5diff-out3 PROPERTIES WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles")
- SET_TESTS_PROPERTIES (H5DUMP-h5diff-out3 PROPERTIES DEPENDS H5DUMP-h5import-out3)
- SET (last_test "H5DUMP-h5diff-out3")
-
- ADD_H5_TEST (tbin4 0 --enable-error-stack -d double -b FILE -o out4.bin tbinary.h5)
+ ADD_H5_TEST_IMPORT (tbin3 out3D tbinary.h5 0 --enable-error-stack -d integer -b NATIVE)
+
IF (NOT HDF5_ENABLE_USING_MEMCHECKER)
- IF (NOT "${last_test}" STREQUAL "")
- SET_TESTS_PROPERTIES (H5DUMP-tbin4 PROPERTIES DEPENDS ${last_test})
- ENDIF (NOT "${last_test}" STREQUAL "")
- SET (last_test "H5DUMP-tbin4")
+ ADD_TEST (NAME H5DUMP-tbin4-bin-clear-objects COMMAND ${CMAKE_COMMAND} -E remove out4.bin)
+ SET_TESTS_PROPERTIES (H5DUMP-tbin4-bin-clear-objects PROPERTIES WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles/std")
+ ADD_H5_TEST (tbin4 0 --enable-error-stack -d double -b FILE -o out4.bin tbinary.h5)
+ SET_TESTS_PROPERTIES (H5DUMP-tbin4 PROPERTIES DEPENDS H5DUMP-tbin4-bin-clear-objects)
ENDIF (NOT HDF5_ENABLE_USING_MEMCHECKER)
-
- # Clean up binary output files
- IF (NOT HDF5_NOCLEANUP)
- ADD_TEST (
- NAME H5DUMP-clear-objects
- COMMAND ${CMAKE_COMMAND}
- -E remove
- out1.bin
- out1LE.bin
- out2.bin
- out3.bin
- out4.bin
- out1.h5
- out3.h5
- )
- SET_TESTS_PROPERTIES (H5DUMP-clear-objects PROPERTIES WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles")
- IF (NOT "${last_test}" STREQUAL "")
- SET_TESTS_PROPERTIES (H5DUMP-clear-objects PROPERTIES DEPENDS ${last_test})
- ENDIF (NOT "${last_test}" STREQUAL "")
- SET (last_test "H5DUMP-clear-objects")
- ENDIF (NOT HDF5_NOCLEANUP)
# test for dataset region references
ADD_H5_TEST (tdatareg 0 --enable-error-stack tdatareg.h5)
@@ -1478,7 +1653,7 @@ IF (BUILD_TESTING)
ADD_H5ERR_MASK_TEST (filter_fail 1 --enable-error-stack filter_fail.h5)
# test for -o -y for dataset with attributes
- ADD_H5_TEST (tall-6 0 --enable-error-stack -y -o data -d /g1/g1.1/dset1.1.1 tall.h5)
+ ADD_H5_TEST_EXPORT (tall-6 tall.h5 0 --enable-error-stack -d /g1/g1.1/dset1.1.1 -y -o)
####### test for dataset packed bits ######
IF (HDF5_ENABLE_USING_MEMCHECKER)
@@ -1594,16 +1769,16 @@ IF (BUILD_TESTING)
tpbitsUnsignedLongLong16.out
tpbitsUnsignedLongLong16.out.err
)
- SET_TESTS_PROPERTIES (H5DUMP_PACKED_BITS-clearall-objects PROPERTIES WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles")
- IF (NOT "${last_test}" STREQUAL "")
- SET_TESTS_PROPERTIES (H5DUMP_PACKED_BITS-clearall-objects PROPERTIES DEPENDS ${last_test})
- ENDIF (NOT "${last_test}" STREQUAL "")
- SET (last_test "H5DUMP_PACKED_BITS-clearall-objects")
+ SET_TESTS_PROPERTIES (H5DUMP_PACKED_BITS-clearall-objects PROPERTIES WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles/pbits")
+ IF (NOT "${last_pbits_test}" STREQUAL "")
+ SET_TESTS_PROPERTIES (H5DUMP_PACKED_BITS-clearall-objects PROPERTIES DEPENDS ${last_pbits_test})
+ ENDIF (NOT "${last_pbits_test}" STREQUAL "")
+ SET (last_pbits_test "H5DUMP_PACKED_BITS-clearall-objects")
ENDIF (HDF5_ENABLE_USING_MEMCHECKER)
# test failure handling
# Missing file name
- ADD_H5_TEST (tnofilename-with-packed-bits 1 --enable-error-stack)
+ ADD_H5_PBITS_TEST (tnofilename-with-packed-bits 1 --enable-error-stack)
# Limits:
# Maximum number of packed bits is 8 (for now).
# Maximum integer size is 8*sizeof(long long).
@@ -1613,72 +1788,72 @@ IF (BUILD_TESTING)
# Normal operation on both signed and unsigned int datasets.
# Sanity check
# Their rawdata output should be the same.
- ADD_H5_TEST (tpbitsSignedWhole 0 --enable-error-stack -d /DS08BITS -M 0,8 packedbits.h5)
- ADD_H5_TEST (tpbitsUnsignedWhole 0 --enable-error-stack -d /DU08BITS -M 0,8 packedbits.h5)
- ADD_H5_TEST (tpbitsSignedIntWhole 0 --enable-error-stack -d /DS16BITS -M 0,16 packedbits.h5)
- ADD_H5_TEST (tpbitsUnsignedIntWhole 0 --enable-error-stack -d /DU16BITS -M 0,16 packedbits.h5)
- ADD_H5_TEST (tpbitsSignedLongWhole 0 --enable-error-stack -d /DS32BITS -M 0,32 packedbits.h5)
- ADD_H5_TEST (tpbitsUnsignedLongWhole 0 --enable-error-stack -d /DU32BITS -M 0,32 packedbits.h5)
- ADD_H5_TEST (tpbitsSignedLongLongWhole 0 --enable-error-stack -d /DS64BITS -M 0,64 packedbits.h5)
- ADD_H5_TEST (tpbitsUnsignedLongLongWhole 0 --enable-error-stack -d /DU64BITS -M 0,64 packedbits.h5)
- ADD_H5_TEST (tpbitsSignedLongLongWhole63 0 --enable-error-stack -d /DS64BITS -M 0,63 packedbits.h5)
- ADD_H5_TEST (tpbitsUnsignedLongLongWhole63 0 --enable-error-stack -d /DU64BITS -M 0,63 packedbits.h5)
- ADD_H5_TEST (tpbitsSignedLongLongWhole1 0 --enable-error-stack -d /DS64BITS -M 1,63 packedbits.h5)
- ADD_H5_TEST (tpbitsUnsignedLongLongWhole1 0 --enable-error-stack -d /DU64BITS -M 1,63 packedbits.h5)
+ ADD_H5_PBITS_TEST (tpbitsSignedWhole 0 --enable-error-stack -d /DS08BITS -M 0,8 packedbits.h5)
+ ADD_H5_PBITS_TEST (tpbitsUnsignedWhole 0 --enable-error-stack -d /DU08BITS -M 0,8 packedbits.h5)
+ ADD_H5_PBITS_TEST (tpbitsSignedIntWhole 0 --enable-error-stack -d /DS16BITS -M 0,16 packedbits.h5)
+ ADD_H5_PBITS_TEST (tpbitsUnsignedIntWhole 0 --enable-error-stack -d /DU16BITS -M 0,16 packedbits.h5)
+ ADD_H5_PBITS_TEST (tpbitsSignedLongWhole 0 --enable-error-stack -d /DS32BITS -M 0,32 packedbits.h5)
+ ADD_H5_PBITS_TEST (tpbitsUnsignedLongWhole 0 --enable-error-stack -d /DU32BITS -M 0,32 packedbits.h5)
+ ADD_H5_PBITS_TEST (tpbitsSignedLongLongWhole 0 --enable-error-stack -d /DS64BITS -M 0,64 packedbits.h5)
+ ADD_H5_PBITS_TEST (tpbitsUnsignedLongLongWhole 0 --enable-error-stack -d /DU64BITS -M 0,64 packedbits.h5)
+ ADD_H5_PBITS_TEST (tpbitsSignedLongLongWhole63 0 --enable-error-stack -d /DS64BITS -M 0,63 packedbits.h5)
+ ADD_H5_PBITS_TEST (tpbitsUnsignedLongLongWhole63 0 --enable-error-stack -d /DU64BITS -M 0,63 packedbits.h5)
+ ADD_H5_PBITS_TEST (tpbitsSignedLongLongWhole1 0 --enable-error-stack -d /DS64BITS -M 1,63 packedbits.h5)
+ ADD_H5_PBITS_TEST (tpbitsUnsignedLongLongWhole1 0 --enable-error-stack -d /DU64BITS -M 1,63 packedbits.h5)
# Half sections
- ADD_H5_TEST (tpbitsSigned4 0 --enable-error-stack -d /DS08BITS -M 0,4,4,4 packedbits.h5)
- ADD_H5_TEST (tpbitsUnsigned4 0 --enable-error-stack -d /DU08BITS -M 0,4,4,4 packedbits.h5)
- ADD_H5_TEST (tpbitsSignedInt8 0 --enable-error-stack -d /DS16BITS -M 0,8,8,8 packedbits.h5)
- ADD_H5_TEST (tpbitsUnsignedInt8 0 --enable-error-stack -d /DU16BITS -M 0,8,8,8 packedbits.h5)
- ADD_H5_TEST (tpbitsSignedLong16 0 --enable-error-stack -d /DS32BITS -M 0,16,16,16 packedbits.h5)
- ADD_H5_TEST (tpbitsUnsignedLong16 0 --enable-error-stack -d /DU32BITS -M 0,16,16,16 packedbits.h5)
- ADD_H5_TEST (tpbitsSignedLongLong32 0 --enable-error-stack -d /DS64BITS -M 0,32,32,32 packedbits.h5)
- ADD_H5_TEST (tpbitsUnsignedLongLong32 0 --enable-error-stack -d /DU64BITS -M 0,32,32,32 packedbits.h5)
+ ADD_H5_PBITS_TEST (tpbitsSigned4 0 --enable-error-stack -d /DS08BITS -M 0,4,4,4 packedbits.h5)
+ ADD_H5_PBITS_TEST (tpbitsUnsigned4 0 --enable-error-stack -d /DU08BITS -M 0,4,4,4 packedbits.h5)
+ ADD_H5_PBITS_TEST (tpbitsSignedInt8 0 --enable-error-stack -d /DS16BITS -M 0,8,8,8 packedbits.h5)
+ ADD_H5_PBITS_TEST (tpbitsUnsignedInt8 0 --enable-error-stack -d /DU16BITS -M 0,8,8,8 packedbits.h5)
+ ADD_H5_PBITS_TEST (tpbitsSignedLong16 0 --enable-error-stack -d /DS32BITS -M 0,16,16,16 packedbits.h5)
+ ADD_H5_PBITS_TEST (tpbitsUnsignedLong16 0 --enable-error-stack -d /DU32BITS -M 0,16,16,16 packedbits.h5)
+ ADD_H5_PBITS_TEST (tpbitsSignedLongLong32 0 --enable-error-stack -d /DS64BITS -M 0,32,32,32 packedbits.h5)
+ ADD_H5_PBITS_TEST (tpbitsUnsignedLongLong32 0 --enable-error-stack -d /DU64BITS -M 0,32,32,32 packedbits.h5)
# Quarter sections
- ADD_H5_TEST (tpbitsSigned2 0 --enable-error-stack -d /DS08BITS -M 0,2,2,2,4,2,6,2 packedbits.h5)
- ADD_H5_TEST (tpbitsUnsigned2 0 --enable-error-stack -d /DU08BITS -M 0,2,2,2,4,2,6,2 packedbits.h5)
- ADD_H5_TEST (tpbitsSignedInt4 0 --enable-error-stack -d /DS16BITS -M 0,4,4,4,8,4,12,4 packedbits.h5)
- ADD_H5_TEST (tpbitsUnsignedInt4 0 --enable-error-stack -d /DU16BITS -M 0,4,4,4,8,4,12,4 packedbits.h5)
- ADD_H5_TEST (tpbitsSignedLong8 0 --enable-error-stack -d /DS32BITS -M 0,8,8,8,16,8,24,8 packedbits.h5)
- ADD_H5_TEST (tpbitsUnsignedLong8 0 --enable-error-stack -d /DU32BITS -M 0,8,8,8,16,8,24,8 packedbits.h5)
- ADD_H5_TEST (tpbitsSignedLongLong16 0 --enable-error-stack -d /DS64BITS -M 0,16,16,16,32,16,48,16 packedbits.h5)
- ADD_H5_TEST (tpbitsUnsignedLongLong16 0 --enable-error-stack -d /DU64BITS -M 0,16,16,16,32,16,48,16 packedbits.h5)
+ ADD_H5_PBITS_TEST (tpbitsSigned2 0 --enable-error-stack -d /DS08BITS -M 0,2,2,2,4,2,6,2 packedbits.h5)
+ ADD_H5_PBITS_TEST (tpbitsUnsigned2 0 --enable-error-stack -d /DU08BITS -M 0,2,2,2,4,2,6,2 packedbits.h5)
+ ADD_H5_PBITS_TEST (tpbitsSignedInt4 0 --enable-error-stack -d /DS16BITS -M 0,4,4,4,8,4,12,4 packedbits.h5)
+ ADD_H5_PBITS_TEST (tpbitsUnsignedInt4 0 --enable-error-stack -d /DU16BITS -M 0,4,4,4,8,4,12,4 packedbits.h5)
+ ADD_H5_PBITS_TEST (tpbitsSignedLong8 0 --enable-error-stack -d /DS32BITS -M 0,8,8,8,16,8,24,8 packedbits.h5)
+ ADD_H5_PBITS_TEST (tpbitsUnsignedLong8 0 --enable-error-stack -d /DU32BITS -M 0,8,8,8,16,8,24,8 packedbits.h5)
+ ADD_H5_PBITS_TEST (tpbitsSignedLongLong16 0 --enable-error-stack -d /DS64BITS -M 0,16,16,16,32,16,48,16 packedbits.h5)
+ ADD_H5_PBITS_TEST (tpbitsUnsignedLongLong16 0 --enable-error-stack -d /DU64BITS -M 0,16,16,16,32,16,48,16 packedbits.h5)
# Begin and End
- ADD_H5_TEST (tpbitsSigned 0 --enable-error-stack -d /DS08BITS -M 0,2,2,6 packedbits.h5)
- ADD_H5_TEST (tpbitsUnsigned 0 --enable-error-stack -d /DU08BITS -M 0,2,2,6 packedbits.h5)
- ADD_H5_TEST (tpbitsSignedInt 0 --enable-error-stack -d /DS16BITS -M 0,2,10,6 packedbits.h5)
- ADD_H5_TEST (tpbitsUnsignedInt 0 --enable-error-stack -d /DU16BITS -M 0,2,10,6 packedbits.h5)
- ADD_H5_TEST (tpbitsSignedLong 0 --enable-error-stack -d /DS32BITS -M 0,2,26,6 packedbits.h5)
- ADD_H5_TEST (tpbitsUnsignedLong 0 --enable-error-stack -d /DU32BITS -M 0,2,26,6 packedbits.h5)
- ADD_H5_TEST (tpbitsSignedLongLong 0 --enable-error-stack -d /DS64BITS -M 0,2,58,6 packedbits.h5)
- ADD_H5_TEST (tpbitsUnsignedLongLong 0 --enable-error-stack -d /DU64BITS -M 0,2,58,6 packedbits.h5)
+ ADD_H5_PBITS_TEST (tpbitsSigned 0 --enable-error-stack -d /DS08BITS -M 0,2,2,6 packedbits.h5)
+ ADD_H5_PBITS_TEST (tpbitsUnsigned 0 --enable-error-stack -d /DU08BITS -M 0,2,2,6 packedbits.h5)
+ ADD_H5_PBITS_TEST (tpbitsSignedInt 0 --enable-error-stack -d /DS16BITS -M 0,2,10,6 packedbits.h5)
+ ADD_H5_PBITS_TEST (tpbitsUnsignedInt 0 --enable-error-stack -d /DU16BITS -M 0,2,10,6 packedbits.h5)
+ ADD_H5_PBITS_TEST (tpbitsSignedLong 0 --enable-error-stack -d /DS32BITS -M 0,2,26,6 packedbits.h5)
+ ADD_H5_PBITS_TEST (tpbitsUnsignedLong 0 --enable-error-stack -d /DU32BITS -M 0,2,26,6 packedbits.h5)
+ ADD_H5_PBITS_TEST (tpbitsSignedLongLong 0 --enable-error-stack -d /DS64BITS -M 0,2,58,6 packedbits.h5)
+ ADD_H5_PBITS_TEST (tpbitsUnsignedLongLong 0 --enable-error-stack -d /DU64BITS -M 0,2,58,6 packedbits.h5)
# Overlapped packed bits.
- ADD_H5_TEST (tpbitsOverlapped 0 --enable-error-stack -d /DS08BITS -M 0,1,1,1,2,1,0,3 packedbits.h5)
+ ADD_H5_PBITS_TEST (tpbitsOverlapped 0 --enable-error-stack -d /DS08BITS -M 0,1,1,1,2,1,0,3 packedbits.h5)
# Maximum number of packed bits.
- ADD_H5_TEST (tpbitsMax 0 --enable-error-stack -d /DS08BITS -M 0,1,1,1,2,1,3,1,4,1,5,1,6,1,7,1 packedbits.h5)
+ ADD_H5_PBITS_TEST (tpbitsMax 0 --enable-error-stack -d /DS08BITS -M 0,1,1,1,2,1,3,1,4,1,5,1,6,1,7,1 packedbits.h5)
# Compound type.
- ADD_H5_TEST (tpbitsCompound 0 --enable-error-stack -d /dset1 -M 0,1,1,1 tcompound.h5)
+ ADD_H5_PBITS_TEST (tpbitsCompound 0 --enable-error-stack -d /dset1 -M 0,1,1,1 tcompound.h5)
# Array type.
- ADD_H5_TEST (tpbitsArray 0 --enable-error-stack -d /Dataset1 -M 0,1,1,1 tarray1.h5)
+ ADD_H5_PBITS_TEST (tpbitsArray 0 --enable-error-stack -d /Dataset1 -M 0,1,1,1 tarray1.h5)
# Test Error handling.
# Too many packed bits requested. Max is 8 for now.
- ADD_H5_TEST (tpbitsMaxExceeded 1 --enable-error-stack -d /DS08BITS -M 0,1,0,1,1,1,2,1,3,1,4,1,5,1,6,1,7,1 packedbits.h5)
+ ADD_H5_PBITS_TEST (tpbitsMaxExceeded 1 --enable-error-stack -d /DS08BITS -M 0,1,0,1,1,1,2,1,3,1,4,1,5,1,6,1,7,1 packedbits.h5)
# Offset too large. Max is 8*sizeof(long long.
- ADD_H5_TEST (tpbitsOffsetExceeded 1 --enable-error-stack -d /DS08BITS -M 64,1 packedbits.h5)
- ADD_H5_TEST (tpbitsCharOffsetExceeded 0 --enable-error-stack -d /DS08BITS -M 8,1 packedbits.h5)
- ADD_H5_TEST (tpbitsIntOffsetExceeded 0 --enable-error-stack -d /DS16BITS -M 16,1 packedbits.h5)
- ADD_H5_TEST (tpbitsLongOffsetExceeded 0 --enable-error-stack -d /DS32BITS -M 32,1 packedbits.h5)
+ ADD_H5_PBITS_TEST (tpbitsOffsetExceeded 1 --enable-error-stack -d /DS08BITS -M 64,1 packedbits.h5)
+ ADD_H5_PBITS_TEST (tpbitsCharOffsetExceeded 0 --enable-error-stack -d /DS08BITS -M 8,1 packedbits.h5)
+ ADD_H5_PBITS_TEST (tpbitsIntOffsetExceeded 0 --enable-error-stack -d /DS16BITS -M 16,1 packedbits.h5)
+ ADD_H5_PBITS_TEST (tpbitsLongOffsetExceeded 0 --enable-error-stack -d /DS32BITS -M 32,1 packedbits.h5)
# Bad offset, must not be negative.
- ADD_H5_TEST (tpbitsOffsetNegative 1 --enable-error-stack -d /DS08BITS -M -1,1 packedbits.h5)
+ ADD_H5_PBITS_TEST (tpbitsOffsetNegative 1 --enable-error-stack -d /DS08BITS -M -1,1 packedbits.h5)
# Bad length, must not be positive.
- ADD_H5_TEST (tpbitsLengthPositive 1 --enable-error-stack -d /DS08BITS -M 4,0 packedbits.h5)
+ ADD_H5_PBITS_TEST (tpbitsLengthPositive 1 --enable-error-stack -d /DS08BITS -M 4,0 packedbits.h5)
# Offset+Length is too large. Max is 8*sizeof(long long).
- ADD_H5_TEST (tpbitsLengthExceeded 1 --enable-error-stack -d /DS08BITS -M 37,28 packedbits.h5)
- ADD_H5_TEST (tpbitsCharLengthExceeded 0 --enable-error-stack -d /DS08BITS -M 2,7 packedbits.h5)
- ADD_H5_TEST (tpbitsIntLengthExceeded 0 --enable-error-stack -d /DS16BITS -M 10,7 packedbits.h5)
- ADD_H5_TEST (tpbitsLongLengthExceeded 0 --enable-error-stack -d /DS32BITS -M 26,7 packedbits.h5)
+ ADD_H5_PBITS_TEST (tpbitsLengthExceeded 1 --enable-error-stack -d /DS08BITS -M 37,28 packedbits.h5)
+ ADD_H5_PBITS_TEST (tpbitsCharLengthExceeded 0 --enable-error-stack -d /DS08BITS -M 2,7 packedbits.h5)
+ ADD_H5_PBITS_TEST (tpbitsIntLengthExceeded 0 --enable-error-stack -d /DS16BITS -M 10,7 packedbits.h5)
+ ADD_H5_PBITS_TEST (tpbitsLongLengthExceeded 0 --enable-error-stack -d /DS32BITS -M 26,7 packedbits.h5)
# Incomplete pair of packed bits request.
- ADD_H5_TEST (tpbitsIncomplete 1 --enable-error-stack -d /DS08BITS -M 0,2,2,1,0,2,2, packedbits.h5)
+ ADD_H5_PBITS_TEST (tpbitsIncomplete 1 --enable-error-stack -d /DS08BITS -M 0,2,2,1,0,2,2, packedbits.h5)
IF (HDF5_ENABLE_USING_MEMCHECKER)
# Remove any output file left over from previous test run
@@ -1815,10 +1990,10 @@ IF (BUILD_TESTING)
tvlstr.h5.out
tvlstr.h5.out.err
)
- SET_TESTS_PROPERTIES (H5DUMP-XML-clearall-objects PROPERTIES WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles")
- IF (NOT "${last_test}" STREQUAL "")
- SET_TESTS_PROPERTIES (H5DUMP-XML-clearall-objects PROPERTIES DEPENDS ${last_test})
- ENDIF (NOT "${last_test}" STREQUAL "")
+ SET_TESTS_PROPERTIES (H5DUMP-XML-clearall-objects PROPERTIES WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles/xml")
+ IF (NOT "${last_xml_test}" STREQUAL "")
+ SET_TESTS_PROPERTIES (H5DUMP-XML-clearall-objects PROPERTIES DEPENDS ${last_xml_test})
+ ENDIF (NOT "${last_xml_test}" STREQUAL "")
SET (last_test "H5DUMP-XML-clearall-objects")
ENDIF (HDF5_ENABLE_USING_MEMCHECKER)
diff --git a/tools/h5dump/h5dump.c b/tools/h5dump/h5dump.c
index 34b8bc4..d89202c 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:Aq:z:m:RECM:";
+static const char *s_opts = "hn*peyBHirVa:c:d:f:g:k:l:t:w:xD:uX:o*b*F:s:S:Aq:z:m:RECM:O*";
static struct long_options l_opts[] = {
{ "help", no_arg, 'h' },
{ "hel", no_arg, 'h' },
@@ -139,11 +139,11 @@ static struct long_options l_opts[] = {
{ "grou", require_arg, 'g' },
{ "gro", require_arg, 'g' },
{ "gr", require_arg, 'g' },
- { "output", require_arg, 'o' },
- { "outpu", require_arg, 'o' },
- { "outp", require_arg, 'o' },
- { "out", require_arg, 'o' },
- { "ou", require_arg, 'o' },
+ { "output", optional_arg, 'o' },
+ { "outpu", optional_arg, 'o' },
+ { "outp", optional_arg, 'o' },
+ { "out", optional_arg, 'o' },
+ { "ou", optional_arg, 'o' },
{ "soft-link", require_arg, 'l' },
{ "soft-lin", require_arg, 'l' },
{ "soft-li", require_arg, 'l' },
@@ -187,6 +187,7 @@ static struct long_options l_opts[] = {
{ "enable-error-stack", no_arg, 'E' },
{ "packed-bits", require_arg, 'M' },
{ "no-compact-subset", no_arg, 'C' },
+ { "ddl", optional_arg, 'O' },
{ NULL, 0, '\0' }
};
@@ -230,39 +231,39 @@ leave(int ret)
static void
usage(const char *prog)
{
- HDfflush(rawoutstream);
- HDfprintf(rawoutstream, "usage: %s [OPTIONS] files\n", prog);
- HDfprintf(rawoutstream, " OPTIONS\n");
- HDfprintf(rawoutstream, " -h, --help Print a usage message and exit\n");
- HDfprintf(rawoutstream, " -n, --contents Print a list of the file contents and exit\n");
- HDfprintf(rawoutstream, " Optional value 1 also prints attributes.\n");
- HDfprintf(rawoutstream, " -B, --superblock Print the content of the super block\n");
- HDfprintf(rawoutstream, " -H, --header Print the header only; no data is displayed\n");
- HDfprintf(rawoutstream, " -A, --onlyattr Print the header and value of attributes\n");
- HDfprintf(rawoutstream, " -i, --object-ids Print the object ids\n");
- HDfprintf(rawoutstream, " -r, --string Print 1-byte integer datasets as ASCII\n");
- HDfprintf(rawoutstream, " -e, --escape Escape non printing characters\n");
- HDfprintf(rawoutstream, " -V, --version Print version number and exit\n");
- HDfprintf(rawoutstream, " -a P, --attribute=P Print the specified attribute\n");
- HDfprintf(rawoutstream, " If an attribute name contains a slash (/), escape the\n");
- HDfprintf(rawoutstream, " slash with a preceding backslash (\\).\n");
- HDfprintf(rawoutstream, " (See example section below.)\n");
- HDfprintf(rawoutstream, " -d P, --dataset=P Print the specified dataset\n");
- HDfprintf(rawoutstream, " -y, --noindex Do not print array indices with the data\n");
- HDfprintf(rawoutstream, " -p, --properties Print dataset filters, storage layout and fill value\n");
- HDfprintf(rawoutstream, " -f D, --filedriver=D Specify which driver to open the file with\n");
- HDfprintf(rawoutstream, " -g P, --group=P Print the specified group and all members\n");
- HDfprintf(rawoutstream, " -l P, --soft-link=P Print the value(s) of the specified soft link\n");
- HDfprintf(rawoutstream, " -o F, --output=F Output raw data into file F\n");
- HDfprintf(rawoutstream, " -b B, --binary=B Binary file output, of form B\n");
- HDfprintf(rawoutstream, " -t P, --datatype=P Print the specified named datatype\n");
- HDfprintf(rawoutstream, " -w N, --width=N Set the number of columns of output. A value of 0 (zero)\n");
- HDfprintf(rawoutstream, " sets the number of columns to the maximum (65535).\n");
- HDfprintf(rawoutstream, " Default width is 80 columns.\n");
- HDfprintf(rawoutstream, " -m T, --format=T Set the floating point output format\n");
- HDfprintf(rawoutstream, " -q Q, --sort_by=Q Sort groups and attributes by index Q\n");
- HDfprintf(rawoutstream, " -z Z, --sort_order=Z Sort groups and attributes by order Z\n");
- HDfprintf(rawoutstream,
+ FLUSHSTREAM(rawoutstream);
+ PRINTSTREAM(rawoutstream, "usage: %s [OPTIONS] files\n", prog);
+ PRINTVALSTREAM(rawoutstream, " OPTIONS\n");
+ PRINTVALSTREAM(rawoutstream, " -h, --help Print a usage message and exit\n");
+ PRINTVALSTREAM(rawoutstream, " -n, --contents Print a list of the file contents and exit\n");
+ PRINTVALSTREAM(rawoutstream, " Optional value 1 also prints attributes.\n");
+ PRINTVALSTREAM(rawoutstream, " -B, --superblock Print the content of the super block\n");
+ PRINTVALSTREAM(rawoutstream, " -H, --header Print the header only; no data is displayed\n");
+ PRINTVALSTREAM(rawoutstream, " -A, --onlyattr Print the header and value of attributes\n");
+ PRINTVALSTREAM(rawoutstream, " -i, --object-ids Print the object ids\n");
+ PRINTVALSTREAM(rawoutstream, " -r, --string Print 1-byte integer datasets as ASCII\n");
+ PRINTVALSTREAM(rawoutstream, " -e, --escape Escape non printing characters\n");
+ PRINTVALSTREAM(rawoutstream, " -V, --version Print version number and exit\n");
+ PRINTVALSTREAM(rawoutstream, " -a P, --attribute=P Print the specified attribute\n");
+ PRINTVALSTREAM(rawoutstream, " If an attribute name contains a slash (/), escape the\n");
+ PRINTVALSTREAM(rawoutstream, " slash with a preceding backslash (\\).\n");
+ PRINTVALSTREAM(rawoutstream, " (See example section below.)\n");
+ PRINTVALSTREAM(rawoutstream, " -d P, --dataset=P Print the specified dataset\n");
+ PRINTVALSTREAM(rawoutstream, " -y, --noindex Do not print array indices with the data\n");
+ PRINTVALSTREAM(rawoutstream, " -p, --properties Print dataset filters, storage layout and fill value\n");
+ PRINTVALSTREAM(rawoutstream, " -f D, --filedriver=D Specify which driver to open the file with\n");
+ PRINTVALSTREAM(rawoutstream, " -g P, --group=P Print the specified group and all members\n");
+ PRINTVALSTREAM(rawoutstream, " -l P, --soft-link=P Print the value(s) of the specified soft link\n");
+ 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, " -t P, --datatype=P Print the specified named datatype\n");
+ PRINTVALSTREAM(rawoutstream, " -w N, --width=N Set the number of columns of output. A value of 0 (zero)\n");
+ PRINTVALSTREAM(rawoutstream, " sets the number of columns to the maximum (65535).\n");
+ PRINTVALSTREAM(rawoutstream, " Default width is 80 columns.\n");
+ PRINTVALSTREAM(rawoutstream, " -m T, --format=T Set the floating point output format\n");
+ PRINTVALSTREAM(rawoutstream, " -q Q, --sort_by=Q Sort groups and attributes by index Q\n");
+ PRINTVALSTREAM(rawoutstream, " -z Z, --sort_order=Z Sort groups and attributes by order Z\n");
+ PRINTVALSTREAM(rawoutstream,
" -M L, --packedbits=L Print packed bits as unsigned integers, using mask\n"
" format L for an integer dataset specified with\n"
" option -d. L is a list of offset,length values,\n"
@@ -270,92 +271,94 @@ usage(const char *prog)
" the data value and length is the number of bits of\n"
" the mask.\n"
);
- HDfprintf(rawoutstream, " -R, --region Print dataset pointed by region references\n");
- HDfprintf(rawoutstream, " -x, --xml Output in XML using Schema\n");
- HDfprintf(rawoutstream, " -u, --use-dtd Output in XML using DTD\n");
- HDfprintf(rawoutstream, " -D U, --xml-dtd=U Use the DTD or schema at U\n");
- HDfprintf(rawoutstream, " -X S, --xml-ns=S (XML Schema) Use qualified names n the XML\n");
- HDfprintf(rawoutstream, " \":\": no namespace, default: \"hdf5:\"\n");
- HDfprintf(rawoutstream, " E.g., to dump a file called `-f', use h5dump -- -f\n");
- HDfprintf(rawoutstream, " --enable-error-stack Prints messages from the HDF5 error stack as they\n");
- HDfprintf(rawoutstream, " occur.\n");
- HDfprintf(rawoutstream, " --no-compact-subset Disable compact form of subsetting and allow the use\n");
- HDfprintf(rawoutstream, " of \"[\" in dataset names.\n");
- HDfprintf(rawoutstream, "\n");
- HDfprintf(rawoutstream, " Subsetting is available by using the following options with a dataset\n");
- HDfprintf(rawoutstream, " attribute. Subsetting is done by selecting a hyperslab from the data.\n");
- HDfprintf(rawoutstream, " Thus, the options mirror those for performing a hyperslab selection.\n");
- HDfprintf(rawoutstream, " One of the START, COUNT, STRIDE, or BLOCK parameters are mandatory if you do subsetting.\n");
- HDfprintf(rawoutstream, " The STRIDE, COUNT, and BLOCK parameters are optional and will default to 1 in\n");
- HDfprintf(rawoutstream, " each dimension. START is optional and will default to 0 in each dimension.\n");
- HDfprintf(rawoutstream, "\n");
- HDfprintf(rawoutstream, " -s START, --start=START Offset of start of subsetting selection\n");
- HDfprintf(rawoutstream, " -S STRIDE, --stride=STRIDE Hyperslab stride\n");
- HDfprintf(rawoutstream, " -c COUNT, --count=COUNT Number of blocks to include in selection\n");
- HDfprintf(rawoutstream, " -k BLOCK, --block=BLOCK Size of block in hyperslab\n");
- HDfprintf(rawoutstream, " START, COUNT, STRIDE, and BLOCK - is a list of integers the number of which are equal to the\n");
- HDfprintf(rawoutstream, " number of dimensions in the dataspace being queried\n");
- HDfprintf(rawoutstream, " (Alternate compact form of subsetting is described in the Reference Manual)\n");
- HDfprintf(rawoutstream, "\n");
- HDfprintf(rawoutstream, " D - is the file driver to use in opening the file. Acceptable values\n");
- HDfprintf(rawoutstream, " are \"sec2\", \"family\", \"split\", \"multi\", \"direct\", and \"stream\". Without\n");
- HDfprintf(rawoutstream, " the file driver flag, the file will be opened with each driver in\n");
- HDfprintf(rawoutstream, " turn and in the order specified above until one driver succeeds\n");
- HDfprintf(rawoutstream, " in opening the file.\n");
- HDfprintf(rawoutstream, " These are the letters that are appended to the file name(without .h5) when opening\n");
- HDfprintf(rawoutstream, " names for the split(m,r) and multi(s,b,r,g,l,o) drivers. They are:\n");
- HDfprintf(rawoutstream, " m: All meta data when using the split driver.\n");
- HDfprintf(rawoutstream, " s: The userblock, superblock, and driver info block\n");
- HDfprintf(rawoutstream, " b: B-tree nodes\n");
- HDfprintf(rawoutstream, " r: Dataset raw data\n");
- HDfprintf(rawoutstream, " g: Global heap\n");
- HDfprintf(rawoutstream, " l: local heap (object names)\n");
- HDfprintf(rawoutstream, " o: object headers\n");
- HDfprintf(rawoutstream, "\n");
- HDfprintf(rawoutstream, " F - is a filename.\n");
- HDfprintf(rawoutstream, " P - is the full path from the root group to the object.\n");
- HDfprintf(rawoutstream, " N - is an integer greater than 1.\n");
- HDfprintf(rawoutstream, " T - is a string containing the floating point format, e.g '%%.3f'\n");
- HDfprintf(rawoutstream, " U - is a URI reference (as defined in [IETF RFC 2396],\n");
- HDfprintf(rawoutstream, " updated by [IETF RFC 2732])\n");
- HDfprintf(rawoutstream, " B - is the form of binary output: NATIVE for a memory type, FILE for the\n");
- HDfprintf(rawoutstream, " file type, LE or BE for pre-existing little or big endian types.\n");
- HDfprintf(rawoutstream, " Must be used with -o (output file) and it is recommended that\n");
- HDfprintf(rawoutstream, " -d (dataset) is used. B is an optional argument, defaults to NATIVE\n");
- HDfprintf(rawoutstream, " Q - is the sort index type. It can be \"creation_order\" or \"name\" (default)\n");
- HDfprintf(rawoutstream, " Z - is the sort order type. It can be \"descending\" or \"ascending\" (default)\n");
- HDfprintf(rawoutstream, "\n");
- HDfprintf(rawoutstream, " Examples:\n");
- HDfprintf(rawoutstream, "\n");
- HDfprintf(rawoutstream, " 1) Attribute foo of the group /bar_none in file quux.h5\n");
- HDfprintf(rawoutstream, "\n");
- HDfprintf(rawoutstream, " h5dump -a /bar_none/foo quux.h5\n");
- HDfprintf(rawoutstream, "\n");
- HDfprintf(rawoutstream, " Attribute \"high/low\" of the group /bar_none in the file quux.h5\n");
- HDfprintf(rawoutstream, "\n");
- HDfprintf(rawoutstream, " h5dump -a \"/bar_none/high\\/low\" quux.h5\n");
- HDfprintf(rawoutstream, "\n");
- HDfprintf(rawoutstream, " 2) Selecting a subset from dataset /foo in file quux.h5\n");
- HDfprintf(rawoutstream, "\n");
- HDfprintf(rawoutstream, " h5dump -d /foo -s \"0,1\" -S \"1,1\" -c \"2,3\" -k \"2,2\" quux.h5\n");
- HDfprintf(rawoutstream, "\n");
- HDfprintf(rawoutstream, " 3) Saving dataset 'dset' in file quux.h5 to binary file 'out.bin'\n");
- HDfprintf(rawoutstream, " using a little-endian type\n");
- HDfprintf(rawoutstream, "\n");
- HDfprintf(rawoutstream, " h5dump -d /dset -b LE -o out.bin quux.h5\n");
- HDfprintf(rawoutstream, "\n");
- HDfprintf(rawoutstream, " 4) Display two packed bits (bits 0-1 and bits 4-6) in the dataset /dset\n");
- HDfprintf(rawoutstream, "\n");
- HDfprintf(rawoutstream, " h5dump -d /dset -M 0,1,4,3 quux.h5\n");
- HDfprintf(rawoutstream, "\n");
- HDfprintf(rawoutstream, " 5) Dataset foo in files file1.h5 file2.h5 file3.h5\n");
- HDfprintf(rawoutstream, "\n");
- HDfprintf(rawoutstream, " h5dump -d /foo file1.h5 file2.h5 file3.h5\n");
- HDfprintf(rawoutstream, "\n");
- HDfprintf(rawoutstream, " 6) Dataset foo in split files splitfile-m.h5 splitfile-r.h5\n");
- HDfprintf(rawoutstream, "\n");
- HDfprintf(rawoutstream, " h5dump -d /foo -f split splitfile\n");
- HDfprintf(rawoutstream, "\n");
+ PRINTVALSTREAM(rawoutstream, " -R, --region Print dataset pointed by region references\n");
+ PRINTVALSTREAM(rawoutstream, " -x, --xml Output in XML using Schema\n");
+ PRINTVALSTREAM(rawoutstream, " -u, --use-dtd Output in XML using DTD\n");
+ PRINTVALSTREAM(rawoutstream, " -D U, --xml-dtd=U Use the DTD or schema at U\n");
+ PRINTVALSTREAM(rawoutstream, " -X S, --xml-ns=S (XML Schema) Use qualified names n the XML\n");
+ PRINTVALSTREAM(rawoutstream, " \":\": no namespace, default: \"hdf5:\"\n");
+ PRINTVALSTREAM(rawoutstream, " E.g., to dump a file called `-f', use h5dump -- -f\n");
+ PRINTVALSTREAM(rawoutstream, " --enable-error-stack Prints messages from the HDF5 error stack as they\n");
+ PRINTVALSTREAM(rawoutstream, " occur.\n");
+ PRINTVALSTREAM(rawoutstream, " --no-compact-subset Disable compact form of subsetting and allow the use\n");
+ PRINTVALSTREAM(rawoutstream, " of \"[\" in dataset names.\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, "\n");
+ PRINTVALSTREAM(rawoutstream, " Subsetting is available by using the following options with a dataset\n");
+ PRINTVALSTREAM(rawoutstream, " attribute. Subsetting is done by selecting a hyperslab from the data.\n");
+ PRINTVALSTREAM(rawoutstream, " Thus, the options mirror those for performing a hyperslab selection.\n");
+ PRINTVALSTREAM(rawoutstream, " One of the START, COUNT, STRIDE, or BLOCK parameters are mandatory if you do subsetting.\n");
+ PRINTVALSTREAM(rawoutstream, " The STRIDE, COUNT, and BLOCK parameters are optional and will default to 1 in\n");
+ PRINTVALSTREAM(rawoutstream, " each dimension. START is optional and will default to 0 in each dimension.\n");
+ PRINTVALSTREAM(rawoutstream, "\n");
+ PRINTVALSTREAM(rawoutstream, " -s START, --start=START Offset of start of subsetting selection\n");
+ PRINTVALSTREAM(rawoutstream, " -S STRIDE, --stride=STRIDE Hyperslab stride\n");
+ PRINTVALSTREAM(rawoutstream, " -c COUNT, --count=COUNT Number of blocks to include in selection\n");
+ PRINTVALSTREAM(rawoutstream, " -k BLOCK, --block=BLOCK Size of block in hyperslab\n");
+ PRINTVALSTREAM(rawoutstream, " START, COUNT, STRIDE, and BLOCK - is a list of integers the number of which are equal to the\n");
+ PRINTVALSTREAM(rawoutstream, " number of dimensions in the dataspace being queried\n");
+ PRINTVALSTREAM(rawoutstream, " (Alternate compact form of subsetting is described in the Reference Manual)\n");
+ PRINTVALSTREAM(rawoutstream, "\n");
+ PRINTVALSTREAM(rawoutstream, " D - is the file driver to use in opening the file. Acceptable values\n");
+ PRINTVALSTREAM(rawoutstream, " are \"sec2\", \"family\", \"split\", \"multi\", \"direct\", and \"stream\". Without\n");
+ PRINTVALSTREAM(rawoutstream, " the file driver flag, the file will be opened with each driver in\n");
+ PRINTVALSTREAM(rawoutstream, " turn and in the order specified above until one driver succeeds\n");
+ PRINTVALSTREAM(rawoutstream, " in opening the file.\n");
+ PRINTVALSTREAM(rawoutstream, " These are the letters that are appended to the file name(without .h5) when opening\n");
+ PRINTVALSTREAM(rawoutstream, " names for the split(m,r) and multi(s,b,r,g,l,o) drivers. They are:\n");
+ PRINTVALSTREAM(rawoutstream, " m: All meta data when using the split driver.\n");
+ PRINTVALSTREAM(rawoutstream, " s: The userblock, superblock, and driver info block\n");
+ PRINTVALSTREAM(rawoutstream, " b: B-tree nodes\n");
+ PRINTVALSTREAM(rawoutstream, " r: Dataset raw data\n");
+ PRINTVALSTREAM(rawoutstream, " g: Global heap\n");
+ PRINTVALSTREAM(rawoutstream, " l: local heap (object names)\n");
+ PRINTVALSTREAM(rawoutstream, " o: object headers\n");
+ PRINTVALSTREAM(rawoutstream, "\n");
+ PRINTVALSTREAM(rawoutstream, " F - is a filename.\n");
+ PRINTVALSTREAM(rawoutstream, " P - is the full path from the root group to the object.\n");
+ PRINTVALSTREAM(rawoutstream, " N - is an integer greater than 1.\n");
+ PRINTVALSTREAM(rawoutstream, " T - is a string containing the floating point format, e.g '%%.3f'\n");
+ PRINTVALSTREAM(rawoutstream, " U - is a URI reference (as defined in [IETF RFC 2396],\n");
+ PRINTVALSTREAM(rawoutstream, " updated by [IETF RFC 2732])\n");
+ PRINTVALSTREAM(rawoutstream, " B - is the form of binary output: NATIVE for a memory type, FILE for the\n");
+ PRINTVALSTREAM(rawoutstream, " file type, LE or BE for pre-existing little or big endian types.\n");
+ PRINTVALSTREAM(rawoutstream, " Must be used with -o (output file) and it is recommended that\n");
+ PRINTVALSTREAM(rawoutstream, " -d (dataset) is used. B is an optional argument, defaults to NATIVE\n");
+ PRINTVALSTREAM(rawoutstream, " Q - is the sort index type. It can be \"creation_order\" or \"name\" (default)\n");
+ PRINTVALSTREAM(rawoutstream, " Z - is the sort order type. It can be \"descending\" or \"ascending\" (default)\n");
+ PRINTVALSTREAM(rawoutstream, "\n");
+ PRINTVALSTREAM(rawoutstream, " Examples:\n");
+ PRINTVALSTREAM(rawoutstream, "\n");
+ PRINTVALSTREAM(rawoutstream, " 1) Attribute foo of the group /bar_none in file quux.h5\n");
+ PRINTVALSTREAM(rawoutstream, "\n");
+ PRINTVALSTREAM(rawoutstream, " h5dump -a /bar_none/foo quux.h5\n");
+ PRINTVALSTREAM(rawoutstream, "\n");
+ PRINTVALSTREAM(rawoutstream, " Attribute \"high/low\" of the group /bar_none in the file quux.h5\n");
+ PRINTVALSTREAM(rawoutstream, "\n");
+ PRINTVALSTREAM(rawoutstream, " h5dump -a \"/bar_none/high\\/low\" quux.h5\n");
+ PRINTVALSTREAM(rawoutstream, "\n");
+ PRINTVALSTREAM(rawoutstream, " 2) Selecting a subset from dataset /foo in file quux.h5\n");
+ PRINTVALSTREAM(rawoutstream, "\n");
+ PRINTVALSTREAM(rawoutstream, " h5dump -d /foo -s \"0,1\" -S \"1,1\" -c \"2,3\" -k \"2,2\" quux.h5\n");
+ PRINTVALSTREAM(rawoutstream, "\n");
+ PRINTVALSTREAM(rawoutstream, " 3) Saving dataset 'dset' in file quux.h5 to binary file 'out.bin'\n");
+ PRINTVALSTREAM(rawoutstream, " using a little-endian type\n");
+ PRINTVALSTREAM(rawoutstream, "\n");
+ PRINTVALSTREAM(rawoutstream, " h5dump -d /dset -b LE -o out.bin quux.h5\n");
+ PRINTVALSTREAM(rawoutstream, "\n");
+ PRINTVALSTREAM(rawoutstream, " 4) Display two packed bits (bits 0-1 and bits 4-6) in the dataset /dset\n");
+ PRINTVALSTREAM(rawoutstream, "\n");
+ PRINTVALSTREAM(rawoutstream, " h5dump -d /dset -M 0,1,4,3 quux.h5\n");
+ PRINTVALSTREAM(rawoutstream, "\n");
+ PRINTVALSTREAM(rawoutstream, " 5) Dataset foo in files file1.h5 file2.h5 file3.h5\n");
+ PRINTVALSTREAM(rawoutstream, "\n");
+ PRINTVALSTREAM(rawoutstream, " h5dump -d /foo file1.h5 file2.h5 file3.h5\n");
+ PRINTVALSTREAM(rawoutstream, "\n");
+ PRINTVALSTREAM(rawoutstream, " 6) Dataset foo in split files splitfile-m.h5 splitfile-r.h5\n");
+ PRINTVALSTREAM(rawoutstream, "\n");
+ PRINTVALSTREAM(rawoutstream, " h5dump -d /foo -f split splitfile\n");
+ PRINTVALSTREAM(rawoutstream, "\n");
}
@@ -500,6 +503,7 @@ table_list_free(void)
static int
set_data_output_file(const char *fname, int is_bin)
{
+ int retvalue = FAIL;
FILE *f; /* temporary holding place for the stream pointer
* so that rawdatastream is changed only when succeeded */
@@ -510,21 +514,68 @@ set_data_output_file(const char *fname, int is_bin)
rawdatastream = NULL;
}
- /* binary output */
- if (is_bin) {
- if ((f = HDfopen(fname, "wb")) != NULL) {
- rawdatastream = f;
- return 0;
+ /* First check if filename is string "NULL" */
+ if (fname != NULL) {
+ /* binary output */
+ if (is_bin) {
+ if ((f = HDfopen(fname, "wb")) != NULL) {
+ rawdatastream = f;
+ retvalue = SUCCEED;
+ }
+ }
+ else {
+ if ((f = HDfopen(fname, "w")) != NULL) {
+ rawdatastream = f;
+ retvalue = SUCCEED;
+ }
}
}
else {
+ rawdatastream = NULL;
+ retvalue = SUCCEED;
+ }
+
+ return retvalue;
+}
+
+/*-------------------------------------------------------------------------
+ * Function: set_attr_output_file
+ *
+ * Purpose: Open fname as the output file for attribute raw data.
+ * Set rawattrstream as its file stream.
+ *
+ * Return: 0 -- succeeded
+ * negative -- failed
+ *
+ *-------------------------------------------------------------------------
+ */
+static int
+set_attr_output_file(const char *fname, int is_bin)
+{
+ int retvalue = FAIL;
+ FILE *f; /* temporary holding place for the stream pointer
+ * so that rawattrstream is changed only when succeeded */
+
+ if (rawattrstream && rawattrstream != stdout) {
+ if (HDfclose(rawattrstream))
+ HDperror("closing rawattrstream");
+ else
+ rawattrstream = NULL;
+ }
+
+ /* First check if filename is string "NULL" */
+ if (fname != NULL) {
if ((f = HDfopen(fname, "w")) != NULL) {
- rawdatastream = f;
- return 0;
+ rawattrstream = f;
+ retvalue = SUCCEED;
}
}
+ else {
+ rawattrstream = NULL;
+ retvalue = SUCCEED;
+ }
- return -1;
+ return retvalue;
}
/*-------------------------------------------------------------------------
@@ -541,6 +592,7 @@ set_data_output_file(const char *fname, int is_bin)
static int
set_output_file(const char *fname)
{
+ int retvalue = FAIL;
FILE *f; /* temporary holding place for the stream pointer
* so that rawoutstream is changed only when succeeded */
@@ -550,13 +602,19 @@ set_output_file(const char *fname)
else
rawoutstream = NULL;
}
-
- if ((f = HDfopen(fname, "w")) != NULL) {
- rawoutstream = f;
- return 0;
+ /* First check if filename is string "NULL" */
+ if (fname != NULL) {
+ if ((f = HDfopen(fname, "w")) != NULL) {
+ rawoutstream = f;
+ retvalue = SUCCEED;
+ }
+ }
+ else {
+ rawoutstream = NULL;
+ retvalue = SUCCEED;
}
- return -1;
+ return retvalue;
}
/*-------------------------------------------------------------------------
@@ -573,6 +631,7 @@ set_output_file(const char *fname)
static int
set_error_file(const char *fname)
{
+ int retvalue = FAIL;
FILE *f; /* temporary holding place for the stream pointer
* so that rawerrorstream is changed only when succeeded */
@@ -585,10 +644,10 @@ set_error_file(const char *fname)
if ((f = HDfopen(fname, "w")) != NULL) {
rawerrorstream = f;
- return 0;
+ retvalue = SUCCEED;
}
- return -1;
+ return retvalue;
}
/*-------------------------------------------------------------------------
@@ -1125,6 +1184,13 @@ parse_start:
last_was_dset = FALSE;
break;
+ case 'O':
+ if (set_output_file(opt_arg) < 0) {
+ usage(h5tools_getprogname());
+ goto error;
+ }
+ break;
+
case 'o':
if ( bin_output ) {
if (set_data_output_file(opt_arg, 1) < 0) {
@@ -1133,9 +1199,17 @@ parse_start:
}
}
else {
- if (set_data_output_file(opt_arg, 0) < 0) {
- usage(h5tools_getprogname());
- goto error;
+ if(display_attr_data && !display_data) {
+ if (set_attr_output_file(opt_arg, 0) < 0) {
+ usage(h5tools_getprogname());
+ goto error;
+ }
+ }
+ if(display_data || display_all) {
+ if (set_data_output_file(opt_arg, 0) < 0) {
+ usage(h5tools_getprogname());
+ goto error;
+ }
}
}
@@ -1558,12 +1632,12 @@ main(int argc, const char *argv[])
begin_obj(h5tools_dump_header_format->filebegin, fname, h5tools_dump_header_format->fileblockbegin);
}
else {
- HDfprintf(rawoutstream, "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
+ PRINTVALSTREAM(rawoutstream, "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
/* alternative first element, depending on schema or DTD. */
if (useschema) {
if (HDstrcmp(xmlnsprefix,"") == 0) {
- HDfprintf(rawoutstream, "<HDF5-File xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:noNamespaceSchemaLocation=\"%s\">\n",
+ PRINTSTREAM(rawoutstream, "<HDF5-File xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:noNamespaceSchemaLocation=\"%s\">\n",
xml_dtd_uri);
}
else {
@@ -1575,7 +1649,7 @@ main(int argc, const char *argv[])
indx = HDstrrchr(ns,(int)':');
if (indx) *indx = '\0';
- HDfprintf(rawoutstream, "<%sHDF5-File xmlns:%s=\"http://hdfgroup.org/HDF5/XML/schema/HDF5-File\" "
+ PRINTSTREAM(rawoutstream, "<%sHDF5-File xmlns:%s=\"http://hdfgroup.org/HDF5/XML/schema/HDF5-File\" "
"xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" "
"xsi:schemaLocation=\"http://hdfgroup.org/HDF5/XML/schema/HDF5-File "
"http://www.hdfgroup.org/HDF5/XML/schema/HDF5-File.xsd\">\n",xmlnsprefix,ns);
@@ -1583,17 +1657,17 @@ main(int argc, const char *argv[])
}
}
else {
- HDfprintf(rawoutstream, "<!DOCTYPE HDF5-File PUBLIC \"HDF5-File.dtd\" \"%s\">\n", xml_dtd_uri);
- HDfprintf(rawoutstream, "<HDF5-File>\n");
+ PRINTSTREAM(rawoutstream, "<!DOCTYPE HDF5-File PUBLIC \"HDF5-File.dtd\" \"%s\">\n", xml_dtd_uri);
+ PRINTVALSTREAM(rawoutstream, "<HDF5-File>\n");
}
}
if (!doxml) {
if (display_fi) {
- HDfprintf(rawoutstream, "\n");
+ PRINTVALSTREAM(rawoutstream, "\n");
dump_fcontents(fid);
end_obj(h5tools_dump_header_format->fileend,h5tools_dump_header_format->fileblockend);
- HDfprintf(rawoutstream, "\n");
+ PRINTVALSTREAM(rawoutstream, "\n");
goto done;
}
@@ -1612,7 +1686,7 @@ main(int argc, const char *argv[])
dump_function_table->dump_group_function(gid, "/" );
if (!doxml)
dump_indent -= COL;
- HDfprintf(rawoutstream, "\n");
+ PRINTVALSTREAM(rawoutstream, "\n");
}
if(H5Gclose(gid) < 0) {
@@ -1634,15 +1708,15 @@ main(int argc, const char *argv[])
hand[i].func(fid, hand[i].obj, hand[i].subset_info, 1, NULL);
}
}
- HDfprintf(rawoutstream, "\n");
+ PRINTVALSTREAM(rawoutstream, "\n");
}
if (!doxml) {
end_obj(h5tools_dump_header_format->fileend, h5tools_dump_header_format->fileblockend);
- HDfprintf(rawoutstream, "\n");
+ PRINTVALSTREAM(rawoutstream, "\n");
}
else {
- HDfprintf(rawoutstream, "</%sHDF5-File>\n", xmlnsprefix);
+ PRINTSTREAM(rawoutstream, "</%sHDF5-File>\n", xmlnsprefix);
}
/* Free tables for objects */
table_list_free();
diff --git a/tools/h5dump/h5dump_ddl.c b/tools/h5dump/h5dump_ddl.c
index ee6de5e..a9851f4 100644
--- a/tools/h5dump/h5dump_ddl.c
+++ b/tools/h5dump/h5dump_ddl.c
@@ -1168,23 +1168,23 @@ dump_fcpl(hid_t fid)
* SUPER_BLOCK
*-------------------------------------------------------------------------
*/
- HDfprintf(rawoutstream, "\n%s %s\n",SUPER_BLOCK, BEGIN);
+ PRINTSTREAM(rawoutstream, "\n%s %s\n",SUPER_BLOCK, BEGIN);
indentation(dump_indent + COL);
- HDfprintf(rawoutstream, "%s %u\n","SUPERBLOCK_VERSION", super);
+ PRINTSTREAM(rawoutstream, "%s %u\n","SUPERBLOCK_VERSION", super);
indentation(dump_indent + COL);
- HDfprintf(rawoutstream, "%s %u\n","FREELIST_VERSION", freelist);
+ PRINTSTREAM(rawoutstream, "%s %u\n","FREELIST_VERSION", freelist);
indentation(dump_indent + COL);
- HDfprintf(rawoutstream, "%s %u\n","SYMBOLTABLE_VERSION", stab);
+ PRINTSTREAM(rawoutstream, "%s %u\n","SYMBOLTABLE_VERSION", stab);
indentation(dump_indent + COL);
- HDfprintf(rawoutstream, "%s %u\n","OBJECTHEADER_VERSION", shhdr);
+ PRINTSTREAM(rawoutstream, "%s %u\n","OBJECTHEADER_VERSION", shhdr);
indentation(dump_indent + COL);
- HDfprintf(rawoutstream,"%s %Hd\n","OFFSET_SIZE", (long long)off_size);
+ PRINTSTREAM(rawoutstream,"%s %Hd\n","OFFSET_SIZE", (long long)off_size);
indentation(dump_indent + COL);
- HDfprintf(rawoutstream,"%s %Hd\n","LENGTH_SIZE", (long long)len_size);
+ PRINTSTREAM(rawoutstream,"%s %Hd\n","LENGTH_SIZE", (long long)len_size);
indentation(dump_indent + COL);
- HDfprintf(rawoutstream, "%s %u\n","BTREE_RANK", sym_ik);
+ PRINTSTREAM(rawoutstream, "%s %u\n","BTREE_RANK", sym_ik);
indentation(dump_indent + COL);
- HDfprintf(rawoutstream, "%s %d\n","BTREE_LEAF", sym_lk);
+ PRINTSTREAM(rawoutstream, "%s %d\n","BTREE_LEAF", sym_lk);
#ifdef SHOW_FILE_DRIVER
if (H5FD_CORE==fdriver)
@@ -1215,23 +1215,23 @@ dump_fcpl(hid_t fid)
/* Take out this because the driver used can be different from the
* standard output. */
/*indentation(dump_indent + COL);
- HDfprintf(rawoutstream, "%s %s\n","FILE_DRIVER", dname);*/
+ PRINTSTREAM(rawoutstream, "%s %s\n","FILE_DRIVER", dname);*/
#endif
indentation(dump_indent + COL);
- HDfprintf(rawoutstream, "%s %u\n","ISTORE_K", istore_ik);
+ PRINTSTREAM(rawoutstream, "%s %u\n","ISTORE_K", istore_ik);
/*-------------------------------------------------------------------------
* USER_BLOCK
*-------------------------------------------------------------------------
*/
indentation(dump_indent + COL);
- HDfprintf(rawoutstream, "USER_BLOCK %s\n",BEGIN);
+ PRINTSTREAM(rawoutstream, "USER_BLOCK %s\n",BEGIN);
indentation(dump_indent + COL + COL);
- HDfprintf(rawoutstream,"%s %Hu\n","USERBLOCK_SIZE", userblock);
+ PRINTSTREAM(rawoutstream,"%s %Hu\n","USERBLOCK_SIZE", userblock);
indentation(dump_indent + COL);
- HDfprintf(rawoutstream, "%s\n",END);
+ PRINTSTREAM(rawoutstream, "%s\n",END);
- HDfprintf(rawoutstream, "%s",END);
+ PRINTSTREAM(rawoutstream, "%s",END);
}
/*-------------------------------------------------------------------------
@@ -1250,7 +1250,7 @@ dump_fcpl(hid_t fid)
void
dump_fcontents(hid_t fid)
{
- HDfprintf(rawoutstream, "%s %s\n",FILE_CONTENTS, BEGIN);
+ PRINTSTREAM(rawoutstream, "%s %s\n",FILE_CONTENTS, BEGIN);
/* special case of unamed types in root group */
if (unamedtype) {
@@ -1258,14 +1258,14 @@ dump_fcontents(hid_t fid)
for (u = 0; u < type_table->nobjs; u++) {
if (!type_table->objs[u].recorded)
- HDfprintf(rawoutstream, " %-10s /#"H5_PRINTF_HADDR_FMT"\n", "datatype", type_table->objs[u].objno);
+ PRINTSTREAM(rawoutstream, " %-10s /#"H5_PRINTF_HADDR_FMT"\n", "datatype", type_table->objs[u].objno);
}
}
/* print objects in the files */
h5trav_print(fid);
- HDfprintf(rawoutstream, " %s\n",END);
+ PRINTSTREAM(rawoutstream, " %s\n",END);
}
/*-------------------------------------------------------------------------
@@ -1550,12 +1550,12 @@ handle_datasets(hid_t fid, const char *dset, void *data, int pe, const char *dis
if(found_obj) {
if (found_obj->displayed) {
- HDfprintf(rawoutstream, "\n");
+ PRINTVALSTREAM(rawoutstream, "\n");
indentation(dump_indent);
begin_obj(h5tools_dump_header_format->datasetbegin, real_name, h5tools_dump_header_format->datasetblockbegin);
- HDfprintf(rawoutstream, "\n");
+ PRINTVALSTREAM(rawoutstream, "\n");
indentation(dump_indent + COL);
- HDfprintf(rawoutstream, "%s \"%s\"\n", HARDLINK, found_obj->objname);
+ PRINTSTREAM(rawoutstream, "%s \"%s\"\n", HARDLINK, found_obj->objname);
indentation(dump_indent);
end_obj(h5tools_dump_header_format->datasetend, h5tools_dump_header_format->datasetblockend);
}
@@ -1607,9 +1607,9 @@ handle_groups(hid_t fid, const char *group, void UNUSED *data, int pe, const cha
if((gid = H5Gopen2(fid, group, H5P_DEFAULT)) < 0) {
if (pe) {
- HDfprintf(rawoutstream, "\n");
+ PRINTVALSTREAM(rawoutstream, "\n");
begin_obj(h5tools_dump_header_format->groupbegin, real_name, h5tools_dump_header_format->groupblockbegin);
- HDfprintf(rawoutstream, "\n");
+ PRINTVALSTREAM(rawoutstream, "\n");
indentation(COL);
error_msg("unable to open group \"%s\"\n", real_name);
end_obj(h5tools_dump_header_format->groupend, h5tools_dump_header_format->groupblockend);
@@ -1664,15 +1664,15 @@ handle_links(hid_t fid, const char *links, void UNUSED * data, int UNUSED pe, co
}
else {
char *buf = (char *)HDmalloc(linfo.u.val_size);
- HDfprintf(rawoutstream, "\n");
+ PRINTVALSTREAM(rawoutstream, "\n");
switch(linfo.type) {
case H5L_TYPE_SOFT: /* Soft link */
begin_obj(h5tools_dump_header_format->softlinkbegin, links, h5tools_dump_header_format->softlinkblockbegin);
- HDfprintf(rawoutstream, "\n");
+ PRINTVALSTREAM(rawoutstream, "\n");
indentation(COL);
if(H5Lget_val(fid, links, buf, linfo.u.val_size, H5P_DEFAULT) >= 0)
- HDfprintf(rawoutstream, "LINKTARGET \"%s\"\n", buf);
+ PRINTSTREAM(rawoutstream, "LINKTARGET \"%s\"\n", buf);
else {
error_msg("h5dump error: unable to get link value for \"%s\"\n", links);
h5tools_setstatus(EXIT_FAILURE);
@@ -1682,21 +1682,21 @@ handle_links(hid_t fid, const char *links, void UNUSED * data, int UNUSED pe, co
case H5L_TYPE_EXTERNAL:
begin_obj(h5tools_dump_header_format->udlinkbegin, links, h5tools_dump_header_format->udlinkblockbegin);
- HDfprintf(rawoutstream, "\n");
+ PRINTVALSTREAM(rawoutstream, "\n");
indentation(COL);
begin_obj(h5tools_dump_header_format->extlinkbegin, links, h5tools_dump_header_format->extlinkblockbegin);
- HDfprintf(rawoutstream, "\n");
+ PRINTVALSTREAM(rawoutstream, "\n");
if(H5Lget_val(fid, links, buf, linfo.u.val_size, H5P_DEFAULT) >= 0) {
const char *elink_file;
const char *elink_path;
if(H5Lunpack_elink_val(buf, linfo.u.val_size, NULL, &elink_file, &elink_path)>=0) {
indentation(COL);
- HDfprintf(rawoutstream, "LINKCLASS %d\n", linfo.type);
+ PRINTSTREAM(rawoutstream, "LINKCLASS %d\n", linfo.type);
indentation(COL);
- HDfprintf(rawoutstream, "TARGETFILE \"%s\"\n", elink_file);
+ PRINTSTREAM(rawoutstream, "TARGETFILE \"%s\"\n", elink_file);
indentation(COL);
- HDfprintf(rawoutstream, "TARGETPATH \"%s\"\n", elink_path);
+ PRINTSTREAM(rawoutstream, "TARGETPATH \"%s\"\n", elink_path);
}
else {
error_msg("h5dump error: unable to unpack external link value for \"%s\"\n", links);
@@ -1712,12 +1712,12 @@ handle_links(hid_t fid, const char *links, void UNUSED * data, int UNUSED pe, co
default:
begin_obj(h5tools_dump_header_format->udlinkbegin, links, h5tools_dump_header_format->udlinkblockbegin);
- HDfprintf(rawoutstream, "\n");
+ PRINTVALSTREAM(rawoutstream, "\n");
indentation(COL);
begin_obj(h5tools_dump_header_format->udlinkbegin, links, h5tools_dump_header_format->udlinkblockbegin);
- HDfprintf(rawoutstream, "\n");
+ PRINTVALSTREAM(rawoutstream, "\n");
indentation(COL);
- HDfprintf(rawoutstream, "LINKCLASS %d\n", linfo.type);
+ PRINTSTREAM(rawoutstream, "LINKCLASS %d\n", linfo.type);
end_obj(h5tools_dump_header_format->udlinkend, h5tools_dump_header_format->udlinkblockend);
break;
} /* end switch */
@@ -1771,9 +1771,9 @@ handle_datatypes(hid_t fid, const char *type, void UNUSED * data, int pe, const
if(idx == type_table->nobjs) {
if (pe) {
/* unknown type */
- HDfprintf(rawoutstream, "\n");
+ PRINTVALSTREAM(rawoutstream, "\n");
begin_obj(h5tools_dump_header_format->datatypebegin, real_name, h5tools_dump_header_format->datatypeblockbegin);
- HDfprintf(rawoutstream, "\n");
+ PRINTVALSTREAM(rawoutstream, "\n");
indentation(COL);
error_msg("unable to open datatype \"%s\"\n", real_name);
end_obj(h5tools_dump_header_format->datatypeend, h5tools_dump_header_format->datatypeblockend);
diff --git a/tools/h5dump/h5dump_defines.h b/tools/h5dump/h5dump_defines.h
index 4af5360..66d73e3 100644
--- a/tools/h5dump/h5dump_defines.h
+++ b/tools/h5dump/h5dump_defines.h
@@ -26,20 +26,20 @@
#define begin_obj(obj,name,begin) \
do { \
if (name) \
- HDfprintf(rawoutstream, "%s \"%s\" %s", (obj), (name), (begin)); \
+ PRINTSTREAM(rawoutstream, "%s \"%s\" %s", (obj), (name), (begin)); \
else \
- HDfprintf(rawoutstream, "%s %s", (obj), (begin)); \
+ PRINTSTREAM(rawoutstream, "%s %s", (obj), (begin)); \
} while(0);
#define end_obj(obj,end) \
do { \
if(HDstrlen(end)) { \
- HDfprintf(rawoutstream, "%s", end); \
+ PRINTSTREAM(rawoutstream, "%s", end); \
if(HDstrlen(obj)) \
- HDfprintf(rawoutstream, " "); \
+ PRINTVALSTREAM(rawoutstream, " "); \
} \
if(HDstrlen(obj)) \
- HDfprintf(rawoutstream, "%s", obj); \
+ PRINTSTREAM(rawoutstream, "%s", obj); \
} while(0);
diff --git a/tools/h5dump/h5dumpgentest.c b/tools/h5dump/h5dumpgentest.c
index 27b648a..e738fd3 100644
--- a/tools/h5dump/h5dumpgentest.c
+++ b/tools/h5dump/h5dumpgentest.c
@@ -102,6 +102,9 @@
#define FILE70 "tcmpdintsize.h5"
#define FILE71 "tcmpdattrintsize.h5"
#define FILE72 "tnestedcmpddt.h5"
+#define FILE73 "tscalarintsize.h5"
+#define FILE74 "tscalarattrintsize.h5"
+#define FILE75 "tscalarstring.h5"
/*-------------------------------------------------------------------------
* prototypes
@@ -292,6 +295,23 @@ typedef struct s1_t {
/* Name of dataset to create in datafile */
#define F71_DATASETNAME "CompoundAttrIntSize"
+/* "FILE73" macros and for FILE69 */
+#define F73_ARRAY_RANK 2
+#define F73_XDIM 8
+#define F73_DATASETU08 "DU08BITS"
+#define F73_DATASETS08 "DS08BITS"
+#define F73_YDIM8 8
+#define F73_DATASETU16 "DU16BITS"
+#define F73_DATASETS16 "DS16BITS"
+#define F73_YDIM16 16
+#define F73_DATASETU32 "DU32BITS"
+#define F73_DATASETS32 "DS32BITS"
+#define F73_YDIM32 32
+#define F73_DATASETU64 "DU64BITS"
+#define F73_DATASETS64 "DS64BITS"
+#define F73_YDIM64 64
+#define F73_DUMMYDBL "DummyDBL"
+
static void
gent_group(void)
{
@@ -7342,10 +7362,12 @@ gent_charsets(void)
fid = H5Fcreate( FILE68, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT );
status = H5Tset_cset( ascii_dtid, H5T_CSET_ASCII );
H5Tinsert( charset_dtid, "ascii", HOFFSET(CharSetInfo, ascii_p_ ), ascii_dtid );
+
status = H5Tset_cset( utf8_dtid, H5T_CSET_UTF8 );
H5Tinsert( charset_dtid, "utf8", HOFFSET( CharSetInfo, utf8_p_ ), utf8_dtid );
did = H5Dcreate2( fid, "CharSets", charset_dtid, sid, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT );
+
status = H5Dwrite( did, charset_dtid, H5S_ALL, H5S_ALL, H5P_DEFAULT, writeData );
H5Tclose( charset_dtid );
@@ -8059,6 +8081,456 @@ static void gent_nested_compound_dt(void) { /* test nested data type */
}
/*-------------------------------------------------------------------------
+ * Function: gent_intscalars
+ *
+ * Purpose: Generate a file to be used in the h5dump scalar tests.
+ * Four datasets of 1, 2, 4 and 8 bytes of unsigned int types are created.
+ * Four more datasets of 1, 2, 4 and 8 bytes of signed int types are created.
+ * Fill them with raw data such that no bit will be all zero in a dataset.
+ * A dummy dataset of double type is created for failure test.
+ *-------------------------------------------------------------------------
+ */
+static void
+gent_intscalars(void)
+{
+ hid_t fid, dataset, space, tid;
+ hsize_t dims[2];
+ uint8_t dsetu8[F73_XDIM][F73_YDIM8], valu8bits;
+ uint16_t dsetu16[F73_XDIM][F73_YDIM16], valu16bits;
+ uint32_t dsetu32[F73_XDIM][F73_YDIM32], valu32bits;
+ uint64_t dsetu64[F73_XDIM][F73_YDIM64], valu64bits;
+ int8_t dset8[F73_XDIM][F73_YDIM8], val8bits;
+ int16_t dset16[F73_XDIM][F73_YDIM16], val16bits;
+ int32_t dset32[F73_XDIM][F73_YDIM32], val32bits;
+ int64_t dset64[F73_XDIM][F73_YDIM64], val64bits;
+ double dsetdbl[F73_XDIM][F73_YDIM8];
+ unsigned int i, j;
+
+ fid = H5Fcreate(FILE73, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
+
+ /* Dataset of 8 bits unsigned int */
+ dims[0] = F73_XDIM; dims[1] = F73_YDIM8;
+ space = H5Screate(H5S_SCALAR);
+ tid = H5Tarray_create2(H5T_STD_U8LE, F73_ARRAY_RANK, dims);
+ dataset = H5Dcreate2(fid, F73_DATASETU08, tid, space, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
+
+ valu8bits = (uint8_t) ~0u; /* all 1s */
+ for(i = 0; i < dims[0]; i++){
+ dsetu8[i][0] = valu8bits;
+ for(j = 1; j < dims[1]; j++) {
+ dsetu8[i][j] = dsetu8[i][j-1] << 1;
+ }
+ valu8bits <<= 1;
+ }
+
+ H5Dwrite(dataset, tid, H5S_ALL, H5S_ALL, H5P_DEFAULT, dsetu8);
+ H5Sclose(space);
+ H5Dclose(dataset);
+
+ /* Dataset of 16 bits unsigned int */
+ dims[0] = F73_XDIM; dims[1] = F73_YDIM16;
+ space = H5Screate(H5S_SCALAR);
+ tid = H5Tarray_create2(H5T_STD_U16LE, F73_ARRAY_RANK, dims);
+ dataset = H5Dcreate2(fid, F73_DATASETU16, tid, space, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
+
+ valu16bits = (uint16_t) ~0u; /* all 1s */
+ for(i = 0; i < dims[0]; i++){
+ dsetu16[i][0] = valu16bits;
+ for(j = 1; j < dims[1]; j++) {
+ dsetu16[i][j] = dsetu16[i][j-1] << 1;
+ }
+ valu16bits <<= 1;
+ }
+
+ H5Dwrite(dataset, tid, H5S_ALL, H5S_ALL, H5P_DEFAULT, dsetu16);
+ H5Sclose(space);
+ H5Dclose(dataset);
+
+ /* Dataset of 32 bits unsigned int */
+ dims[0] = F73_XDIM; dims[1] = F73_YDIM32;
+ space = H5Screate(H5S_SCALAR);
+ tid = H5Tarray_create2(H5T_STD_U32LE, F73_ARRAY_RANK, dims);
+ dataset = H5Dcreate2(fid, F73_DATASETU32, tid, space, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
+
+ valu32bits = (uint32_t) ~0u; /* all 1s */
+ for(i = 0; i < dims[0]; i++){
+ dsetu32[i][0] = valu32bits;
+ for(j = 1; j < dims[1]; j++) {
+ dsetu32[i][j] = dsetu32[i][j-1] << 1;
+ }
+ valu32bits <<= 1;
+ }
+
+ H5Dwrite(dataset, tid, H5S_ALL, H5S_ALL, H5P_DEFAULT, dsetu32);
+ H5Sclose(space);
+ H5Dclose(dataset);
+
+ /* Dataset of 64 bits unsigned int */
+ dims[0] = F73_XDIM; dims[1] = F73_YDIM64;
+ space = H5Screate(H5S_SCALAR);
+ tid = H5Tarray_create2(H5T_STD_U64LE, F73_ARRAY_RANK, dims);
+ dataset = H5Dcreate2(fid, F73_DATASETU64, tid, space, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
+
+ valu64bits = (uint64_t) ~0Lu; /* all 1s */
+ for(i = 0; i < dims[0]; i++){
+ dsetu64[i][0] = valu64bits;
+ for(j = 1; j < dims[1]; j++) {
+ dsetu64[i][j] = dsetu64[i][j-1] << 1;
+ }
+ valu64bits <<= 1;
+ }
+
+ H5Dwrite(dataset, tid, H5S_ALL, H5S_ALL, H5P_DEFAULT, dsetu64);
+ H5Sclose(space);
+ H5Dclose(dataset);
+
+ /* Dataset of 8 bits signed int */
+ dims[0] = F73_XDIM; dims[1] = F73_YDIM8;
+ space = H5Screate(H5S_SCALAR);
+ tid = H5Tarray_create2(H5T_STD_I8LE, F73_ARRAY_RANK, dims);
+ dataset = H5Dcreate2(fid, F73_DATASETS08, tid, space, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
+
+ val8bits = (int8_t) ~0; /* all 1s */
+ for(i = 0; i < dims[0]; i++){
+ dset8[i][0] = val8bits;
+ for(j = 1; j < dims[1]; j++) {
+ dset8[i][j] = dset8[i][j-1] << 1;
+ }
+ val8bits <<= 1;
+ }
+
+ H5Dwrite(dataset, tid, H5S_ALL, H5S_ALL, H5P_DEFAULT, dset8);
+ H5Sclose(space);
+ H5Dclose(dataset);
+
+ /* Dataset of 16 bits signed int */
+ dims[0] = F73_XDIM; dims[1] = F73_YDIM16;
+ space = H5Screate(H5S_SCALAR);
+ tid = H5Tarray_create2(H5T_STD_I16LE, F73_ARRAY_RANK, dims);
+ dataset = H5Dcreate2(fid, F73_DATASETS16, tid, space, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
+
+ val16bits = (int16_t) ~0; /* all 1s */
+ for(i = 0; i < dims[0]; i++){
+ dset16[i][0] = val16bits;
+ for(j = 1; j < dims[1]; j++) {
+ dset16[i][j] = dset16[i][j-1] << 1;
+ }
+ val16bits <<= 1;
+ }
+
+ H5Dwrite(dataset, tid, H5S_ALL, H5S_ALL, H5P_DEFAULT, dset16);
+ H5Sclose(space);
+ H5Dclose(dataset);
+
+ /* Dataset of 32 bits signed int */
+ dims[0] = F73_XDIM; dims[1] = F73_YDIM32;
+ space = H5Screate(H5S_SCALAR);
+ tid = H5Tarray_create2(H5T_STD_I32LE, F73_ARRAY_RANK, dims);
+ dataset = H5Dcreate2(fid, F73_DATASETS32, tid, space, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
+
+ val32bits = (int32_t) ~0; /* all 1s */
+ for(i = 0; i < dims[0]; i++){
+ dset32[i][0] = val32bits;
+ for(j = 1; j < dims[1]; j++) {
+ dset32[i][j] = dset32[i][j-1] << 1;
+ }
+ val32bits <<= 1;
+ }
+
+ H5Dwrite(dataset, tid, H5S_ALL, H5S_ALL, H5P_DEFAULT, dset32);
+ H5Sclose(space);
+ H5Dclose(dataset);
+
+ /* Dataset of 64 bits signed int */
+ dims[0] = F73_XDIM; dims[1] = F73_YDIM64;
+ space = H5Screate(H5S_SCALAR);
+ tid = H5Tarray_create2(H5T_STD_I64LE, F73_ARRAY_RANK, dims);
+ dataset = H5Dcreate2(fid, F73_DATASETS64, tid, space, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
+
+ val64bits = (int64_t) ~0L; /* all 1s */
+ for(i = 0; i < dims[0]; i++){
+ dset64[i][0] = val64bits;
+ for(j = 1; j < dims[1]; j++) {
+ dset64[i][j] = dset64[i][j-1] << 1;
+ }
+ val64bits <<= 1;
+ }
+
+ H5Dwrite(dataset, tid, H5S_ALL, H5S_ALL, H5P_DEFAULT, dset64);
+ H5Sclose(space);
+ H5Dclose(dataset);
+
+ /* Double Dummy set for failure tests */
+ dims[0] = F73_XDIM; dims[1] = F73_YDIM8;
+ space = H5Screate(H5S_SCALAR);
+ tid = H5Tarray_create2(H5T_NATIVE_DOUBLE, F73_ARRAY_RANK, dims);
+ dataset = H5Dcreate2(fid, F73_DUMMYDBL, tid, space, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
+
+ for(i = 0; i < dims[0]; i++)
+ for(j = 0; j < dims[1]; j++)
+ dsetdbl[i][j] = 0.0001 * j + i;
+
+ H5Dwrite(dataset, tid, H5S_ALL, H5S_ALL, H5P_DEFAULT, dsetdbl);
+
+ H5Sclose(space);
+ H5Dclose(dataset);
+ H5Fclose(fid);
+}
+
+/*-------------------------------------------------------------------------
+ * Function: gent_attr_intscalars
+ *
+ * Purpose: Generate a file to be used in the h5dump attribute scalar tests.
+ * Four attributes of 1, 2, 4 and 8 bytes of unsigned int types are created.
+ * Four more datasets of 1, 2, 4 and 8 bytes of signed int types are created.
+ * Fill them with raw data such that no bit will be all zero in a dataset.
+ * A dummy dataset of double type is created for failure test.
+ * Use file to test Signed/Unsigned datatypes and keep in sync with gent_packedbits()
+ *-------------------------------------------------------------------------
+ */
+static void
+gent_attr_intscalars(void)
+{
+ hid_t fid, attr, space, root, tid;
+ hsize_t dims[2];
+ uint8_t dsetu8[F73_XDIM][F73_YDIM8], valu8bits;
+ uint16_t dsetu16[F73_XDIM][F73_YDIM16], valu16bits;
+ uint32_t dsetu32[F73_XDIM][F73_YDIM32], valu32bits;
+ uint64_t dsetu64[F73_XDIM][F73_YDIM64], valu64bits;
+ int8_t dset8[F73_XDIM][F73_YDIM8], val8bits;
+ int16_t dset16[F73_XDIM][F73_YDIM16], val16bits;
+ int32_t dset32[F73_XDIM][F73_YDIM32], val32bits;
+ int64_t dset64[F73_XDIM][F73_YDIM64], val64bits;
+ double dsetdbl[F73_XDIM][F73_YDIM8];
+ unsigned int i, j;
+
+ fid = H5Fcreate(FILE74, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
+ root = H5Gopen2(fid, "/", H5P_DEFAULT);
+
+ /* Attribute of 8 bits unsigned int */
+ dims[0] = F73_XDIM; dims[1] = F73_YDIM8;
+ space = H5Screate(H5S_SCALAR);
+ tid = H5Tarray_create2(H5T_STD_U8LE, F73_ARRAY_RANK, dims);
+ attr = H5Acreate2(root, F73_DATASETU08, tid, space, H5P_DEFAULT, H5P_DEFAULT);
+
+ valu8bits = (uint8_t) ~0u; /* all 1s */
+ for(i = 0; i < dims[0]; i++){
+ dsetu8[i][0] = valu8bits;
+ for(j = 1; j < dims[1]; j++) {
+ dsetu8[i][j] = dsetu8[i][j-1] << 1;
+ }
+ valu8bits <<= 1;
+ }
+
+ H5Awrite(attr, tid, dsetu8);
+ H5Sclose(space);
+ H5Aclose(attr);
+
+ /* Attribute of 16 bits unsigned int */
+ dims[0] = F73_XDIM; dims[1] = F73_YDIM16;
+ space = H5Screate(H5S_SCALAR);
+ tid = H5Tarray_create2(H5T_STD_U16LE, F73_ARRAY_RANK, dims);
+ attr = H5Acreate2(root, F73_DATASETU16, tid, space, H5P_DEFAULT, H5P_DEFAULT);
+
+ valu16bits = (uint16_t) ~0u; /* all 1s */
+ for(i = 0; i < dims[0]; i++){
+ dsetu16[i][0] = valu16bits;
+ for(j = 1; j < dims[1]; j++) {
+ dsetu16[i][j] = dsetu16[i][j-1] << 1;
+ }
+ valu16bits <<= 1;
+ }
+
+ H5Awrite(attr, tid, dsetu16);
+ H5Sclose(space);
+ H5Aclose(attr);
+
+ /* Attribute of 32 bits unsigned int */
+ dims[0] = F73_XDIM; dims[1] = F73_YDIM32;
+ space = H5Screate(H5S_SCALAR);
+ tid = H5Tarray_create2(H5T_STD_U32LE, F73_ARRAY_RANK, dims);
+ attr = H5Acreate2(root, F73_DATASETU32, tid, space, H5P_DEFAULT, H5P_DEFAULT);
+
+ valu32bits = (uint32_t) ~0u; /* all 1s */
+ for(i = 0; i < dims[0]; i++){
+ dsetu32[i][0] = valu32bits;
+ for(j = 1; j < dims[1]; j++) {
+ dsetu32[i][j] = dsetu32[i][j-1] << 1;
+ }
+ valu32bits <<= 1;
+ }
+
+ H5Awrite(attr, tid, dsetu32);
+ H5Sclose(space);
+ H5Aclose(attr);
+
+ /* Attribute of 64 bits unsigned int */
+ dims[0] = F73_XDIM; dims[1] = F73_YDIM64;
+ space = H5Screate(H5S_SCALAR);
+ tid = H5Tarray_create2(H5T_STD_U64LE, F73_ARRAY_RANK, dims);
+ attr = H5Acreate2(root, F73_DATASETU64, tid, space, H5P_DEFAULT, H5P_DEFAULT);
+
+ valu64bits = (uint64_t) ~0Lu; /* all 1s */
+ for(i = 0; i < dims[0]; i++){
+ dsetu64[i][0] = valu64bits;
+ for(j = 1; j < dims[1]; j++) {
+ dsetu64[i][j] = dsetu64[i][j-1] << 1;
+ }
+ valu64bits <<= 1;
+ }
+
+ H5Awrite(attr, tid, dsetu64);
+ H5Sclose(space);
+ H5Aclose(attr);
+
+ /* Attribute of 8 bits signed int */
+ dims[0] = F73_XDIM; dims[1] = F73_YDIM8;
+ space = H5Screate(H5S_SCALAR);
+ tid = H5Tarray_create2(H5T_STD_I8LE, F73_ARRAY_RANK, dims);
+ attr = H5Acreate2(root, F73_DATASETS08, tid, space, H5P_DEFAULT, H5P_DEFAULT);
+
+ val8bits = (int8_t) ~0; /* all 1s */
+ for(i = 0; i < dims[0]; i++){
+ dset8[i][0] = val8bits;
+ for(j = 1; j < dims[1]; j++) {
+ dset8[i][j] = dset8[i][j-1] << 1;
+ }
+ val8bits <<= 1;
+ }
+
+ H5Awrite(attr, tid, dset8);
+ H5Sclose(space);
+ H5Aclose(attr);
+
+ /* Attribute of 16 bits signed int */
+ dims[0] = F73_XDIM; dims[1] = F73_YDIM16;
+ space = H5Screate(H5S_SCALAR);
+ tid = H5Tarray_create2(H5T_STD_I16LE, F73_ARRAY_RANK, dims);
+ attr = H5Acreate2(root, F73_DATASETS16, tid, space, H5P_DEFAULT, H5P_DEFAULT);
+
+ val16bits = (int16_t) ~0; /* all 1s */
+ for(i = 0; i < dims[0]; i++){
+ dset16[i][0] = val16bits;
+ for(j = 1; j < dims[1]; j++) {
+ dset16[i][j] = dset16[i][j-1] << 1;
+ }
+ val16bits <<= 1;
+ }
+
+ H5Awrite(attr, tid, dset16);
+ H5Sclose(space);
+ H5Aclose(attr);
+
+ /* Attribute of 32 bits signed int */
+ dims[0] = F73_XDIM; dims[1] = F73_YDIM32;
+ space = H5Screate(H5S_SCALAR);
+ tid = H5Tarray_create2(H5T_STD_I32LE, F73_ARRAY_RANK, dims);
+ attr = H5Acreate2(root, F73_DATASETS32, tid, space, H5P_DEFAULT, H5P_DEFAULT);
+
+ val32bits = (int32_t) ~0; /* all 1s */
+ for(i = 0; i < dims[0]; i++){
+ dset32[i][0] = val32bits;
+ for(j = 1; j < dims[1]; j++) {
+ dset32[i][j] = dset32[i][j-1] << 1;
+ }
+ val32bits <<= 1;
+ }
+
+ H5Awrite(attr, tid, dset32);
+ H5Sclose(space);
+ H5Aclose(attr);
+
+ /* Attribute of 64 bits signed int */
+ dims[0] = F73_XDIM; dims[1] = F73_YDIM64;
+ space = H5Screate(H5S_SCALAR);
+ tid = H5Tarray_create2(H5T_STD_I64LE, F73_ARRAY_RANK, dims);
+ attr = H5Acreate2(root, F73_DATASETS64, tid, space, H5P_DEFAULT, H5P_DEFAULT);
+
+ val64bits = (int64_t) ~0L; /* all 1s */
+ for(i = 0; i < dims[0]; i++){
+ dset64[i][0] = val64bits;
+ for(j = 1; j < dims[1]; j++) {
+ dset64[i][j] = dset64[i][j-1] << 1;
+ }
+ val64bits <<= 1;
+ }
+
+ H5Awrite(attr, tid, dset64);
+ H5Sclose(space);
+ H5Aclose(attr);
+
+ /* Double Dummy set for failure tests */
+ dims[0] = F73_XDIM; dims[1] = F73_YDIM8;
+ space = H5Screate(H5S_SCALAR);
+ tid = H5Tarray_create2(H5T_NATIVE_DOUBLE, F73_ARRAY_RANK, dims);
+ attr = H5Acreate2(root, F73_DUMMYDBL, tid, space, H5P_DEFAULT, H5P_DEFAULT);
+
+ for(i = 0; i < dims[0]; i++)
+ for(j = 0; j < dims[1]; j++)
+ dsetdbl[i][j] = 0.0001 * j + i;
+
+ H5Awrite(attr, tid, dsetdbl);
+
+ H5Sclose(space);
+ H5Aclose(attr);
+
+ H5Gclose(root);
+ H5Fclose(fid);
+}
+
+/*-------------------------------------------------------------------------
+ * Function: gent_string_scalars
+ *
+ * Purpose: Generate a file to be used in the h5dump string scalar tests.
+ * A dataset of string types are created.
+ * An attribute of string types are created.
+ * Fill them with raw data such that no bit will be all zero in a dataset.
+ *-------------------------------------------------------------------------
+ */
+static void
+gent_string_scalars(void)
+{
+ hid_t fid, attr, dataset, space, tid, root;
+ hsize_t dims[2];
+ char string[F73_XDIM][F73_YDIM8];
+ unsigned int i, j;
+
+ fid = H5Fcreate(FILE75, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
+ root = H5Gopen2(fid, "/", H5P_DEFAULT);
+
+ /* string scalar */
+ dims[0] = F73_XDIM; dims[1] = F73_YDIM8;
+ space = H5Screate(H5S_SCALAR);
+ tid = H5Tcopy(H5T_C_S1);
+ H5Tset_size(tid, F73_XDIM * F73_YDIM8);
+
+ memset(string, ' ', F73_XDIM * F73_YDIM8);
+ for(i = 0; i < dims[0]; i++) {
+ string[i][0] = 'A' + i;
+ for(j = 1; j < dims[1]; j++) {
+ string[i][j] = string[i][j-1] + 1;
+ }
+ }
+ string[dims[0]-1][dims[1]-1] = 0;
+
+ /* Dataset of string scalar */
+ dataset = H5Dcreate2(fid, "the_str", tid, space, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
+
+ H5Dwrite(dataset, tid, H5S_ALL, H5S_ALL, H5P_DEFAULT, string);
+ H5Dclose(dataset);
+
+ /* attribute of string scalar */
+ attr = H5Acreate2(root, "attr_str", tid, space, H5P_DEFAULT, H5P_DEFAULT);
+ H5Awrite(attr, tid, string);
+
+ H5Sclose(space);
+ H5Aclose(attr);
+
+ H5Gclose(root);
+ H5Fclose(fid);
+}
+
+/*-------------------------------------------------------------------------
* Function: main
*
*-------------------------------------------------------------------------
@@ -8139,6 +8611,9 @@ int main(void)
gent_compound_attr_intsizes();
gent_nested_compound_dt();
+ gent_intscalars();
+ gent_attr_intscalars();
+ gent_string_scalars();
return 0;
}
diff --git a/tools/h5dump/testh5dump.sh.in b/tools/h5dump/testh5dump.sh.in
index 18ed854..0456827 100644
--- a/tools/h5dump/testh5dump.sh.in
+++ b/tools/h5dump/testh5dump.sh.in
@@ -31,7 +31,7 @@ H5IMPORT=../h5import/h5import # The h5import tool name
H5IMPORT_BIN=`pwd`/$H5IMPORT # The path of the h5import tool binary
-CMP='cmp -s'
+CMP='cmp'
DIFF='diff -c'
CP='cp'
DIRNAME='dirname'
@@ -56,8 +56,8 @@ SRC_H5JAM_TESTFILES="$SRC_TOOLS/h5jam/testfiles"
SRC_H5STAT_TESTFILES="$SRC_TOOLS/h5stat/testfiles"
SRC_H5IMPORT_TESTFILES="$SRC_TOOLS/h5import/testfiles"
-TESTDIR=./testfiles
-test -d $TESTDIR || mkdir $TESTDIR
+TESTDIR=./testfiles/std
+test -d $TESTDIR || mkdir -p $TESTDIR
######################################################################
# test files
@@ -142,6 +142,9 @@ $SRC_H5DUMP_TESTFILES/zerodim.h5
$SRC_H5DUMP_TESTFILES/torderattr.h5
$SRC_H5DUMP_TESTFILES/tordergr.h5
$SRC_H5DUMP_TESTFILES/tsaf.h5
+$SRC_H5DUMP_TESTFILES/tscalarintsize.h5
+$SRC_H5DUMP_TESTFILES/tscalarattrintsize.h5
+$SRC_H5DUMP_TESTFILES/tscalarstring.h5
$SRC_H5DUMP_TESTFILES/tslink.h5
$SRC_H5DUMP_TESTFILES/tsplit_file-m.h5
$SRC_H5DUMP_TESTFILES/tsplit_file-r.h5
@@ -156,7 +159,6 @@ $SRC_H5DUMP_TESTFILES/tvldtypes4.h5
$SRC_H5DUMP_TESTFILES/tvldtypes5.h5
$SRC_H5DUMP_TESTFILES/tvlstr.h5
$SRC_H5DUMP_TESTFILES/tvms.h5
-$SRC_H5DUMP_TESTFILES/twidedisplay.ddl
"
LIST_OTHER_TEST_FILES="
@@ -171,6 +173,7 @@ $SRC_H5DUMP_TESTFILES/tall-3.ddl
$SRC_H5DUMP_TESTFILES/tall-4s.ddl
$SRC_H5DUMP_TESTFILES/tall-5s.ddl
$SRC_H5DUMP_TESTFILES/tall-6.ddl
+$SRC_H5DUMP_TESTFILES/tall-6.exp
$SRC_H5DUMP_TESTFILES/tallfilters.ddl
$SRC_H5DUMP_TESTFILES/tarray1.ddl
$SRC_H5DUMP_TESTFILES/tarray1_big.ddl
@@ -256,8 +259,16 @@ $SRC_H5DUMP_TESTFILES/tnamed_dtype_attr.ddl
$SRC_H5DUMP_TESTFILES/tnestcomp-1.ddl
$SRC_H5DUMP_TESTFILES/tnestedcmpddt.ddl
$SRC_H5DUMP_TESTFILES/tnbit.ddl
+$SRC_H5DUMP_TESTFILES/tnoattrdata.ddl
+$SRC_H5DUMP_TESTFILES/tnoattrddl.ddl
+$SRC_H5DUMP_TESTFILES/tnodata.ddl
+$SRC_H5DUMP_TESTFILES/tnoddl.ddl
+$SRC_H5DUMP_TESTFILES/tnoddlfile.ddl
+$SRC_H5DUMP_TESTFILES/tnoddlfile.exp
$SRC_H5DUMP_TESTFILES/tno-subset.ddl
$SRC_H5DUMP_TESTFILES/tnullspace.ddl
+$SRC_H5DUMP_TESTFILES/trawdatafile.ddl
+$SRC_H5DUMP_TESTFILES/trawdatafile.exp
$SRC_H5DUMP_TESTFILES/zerodim.ddl
$SRC_H5DUMP_TESTFILES/tordergr1.ddl
$SRC_H5DUMP_TESTFILES/tordergr2.ddl
@@ -275,6 +286,9 @@ $SRC_H5DUMP_TESTFILES/torderlinks2.ddl
$SRC_H5DUMP_TESTFILES/tperror.ddl
$SRC_H5DUMP_TESTFILES/treference.ddl
$SRC_H5DUMP_TESTFILES/tsaf.ddl
+$SRC_H5DUMP_TESTFILES/tscalarintsize.ddl
+$SRC_H5DUMP_TESTFILES/tscalarattrintsize.ddl
+$SRC_H5DUMP_TESTFILES/tscalarstring.ddl
$SRC_H5DUMP_TESTFILES/tscaleoffset.ddl
$SRC_H5DUMP_TESTFILES/tshuffle.ddl
$SRC_H5DUMP_TESTFILES/tslink-1.ddl
@@ -299,6 +313,10 @@ $SRC_H5DUMP_TESTFILES/tvldtypes4.ddl
$SRC_H5DUMP_TESTFILES/tvldtypes5.ddl
$SRC_H5DUMP_TESTFILES/tvlstr.ddl
$SRC_H5DUMP_TESTFILES/tvms.ddl
+$SRC_H5DUMP_TESTFILES/twidedisplay.ddl
+$SRC_H5DUMP_TESTFILES/twithddl.exp
+$SRC_H5DUMP_TESTFILES/twithddlfile.ddl
+$SRC_H5DUMP_TESTFILES/twithddlfile.exp
$SRC_H5DUMP_TESTFILES/h5dump-help.txt
$SRC_H5DUMP_TESTFILES/out3.h5import
$SRC_H5DUMP_TESTFILES/tbinregR.exp
@@ -413,13 +431,13 @@ TOOLTEST() {
else
echo "*FAILED*"
echo " Expected result (*.ddl) differs from actual result (*.out)"
- nerrors="`expr $nerrors + 1`"
- test yes = "$verbose" && $DIFF $expect $actual |sed 's/^/ /'
+ 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 $actual_err $actual_sav $actual_err_sav $actual_ext
+ rm -f $actual $actual_err $actual_sav $actual_err_sav $actual_ext
fi
}
@@ -490,7 +508,7 @@ TOOLTEST2A() {
actual_err="$TESTDIR/`basename $1 .exp`.err"
shift
expectmeta="$TESTDIR/$1"
- actualmeta="$TESTDIR/`basename $1 .ddl`.txt"
+ actualmeta="$TESTDIR/`basename $1 .exp`.txt"
shift
# Run test.
@@ -510,7 +528,7 @@ TOOLTEST2A() {
# Create the expect data file if it doesn't yet exist.
echo " CREATED"
cp $actualdata $expectdata
- elif $CMP $expectdata $actualdata; then
+ elif $DIFF $expectdata $actualdata; then
if [ ! -f $expectmeta ]; then
# Create the expect meta file if it doesn't yet exist.
echo " CREATED"
@@ -778,6 +796,15 @@ COPY_TESTFILES_TO_TESTDIR
#TOOLTEST h5dump-help.txt -h
+# test data output redirection
+TOOLTEST tnoddl.ddl --enable-error-stack --ddl -y packedbits.h5
+TOOLTEST tnodata.ddl --enable-error-stack --output packedbits.h5
+TOOLTEST tnoattrddl.ddl --enable-error-stack -O -y tattr.h5
+TOOLTEST tnoattrdata.ddl --enable-error-stack -A -o tattr.h5
+TOOLTEST2 trawdatafile.exp --enable-error-stack -y -o trawdatafile.txt packedbits.h5
+TOOLTEST2 tnoddlfile.exp --enable-error-stack -O -y -o tnoddlfile.txt packedbits.h5
+TOOLTEST2A twithddlfile.exp twithddl.exp --enable-error-stack --ddl=twithddl.txt -y -o twithddlfile.txt packedbits.h5
+
# test for maximum display datasets
TOOLTEST twidedisplay.ddl --enable-error-stack -w0 packedbits.h5
@@ -785,10 +812,16 @@ TOOLTEST twidedisplay.ddl --enable-error-stack -w0 packedbits.h5
TOOLTEST packedbits.ddl --enable-error-stack packedbits.h5
# test for compound signed/unsigned datasets
TOOLTEST tcmpdintsize.ddl --enable-error-stack tcmpdintsize.h5
+# test for signed/unsigned scalar datasets
+TOOLTEST tscalarintsize.ddl --enable-error-stack tscalarintsize.h5
# test for signed/unsigned attributes
TOOLTEST tattrintsize.ddl --enable-error-stack tattrintsize.h5
# test for compound signed/unsigned attributes
TOOLTEST tcmpdattrintsize.ddl --enable-error-stack tcmpdattrintsize.h5
+# test for signed/unsigned scalar attributes
+TOOLTEST tscalarattrintsize.ddl --enable-error-stack tscalarattrintsize.h5
+# test for string scalar dataset attribute
+TOOLTEST tscalarstring.ddl --enable-error-stack tscalarstring.h5
# test for displaying groups
TOOLTEST tgroup-1.ddl --enable-error-stack tgroup.h5
# test for displaying the selected groups
@@ -1095,7 +1128,7 @@ TOOLTEST4 textlink.ddl --enable-error-stack textlink.h5
TOOLTEST4 filter_fail.ddl --enable-error-stack filter_fail.h5
# test for -o -y for dataset with attributes
-TOOLTEST tall-6.ddl --enable-error-stack -y -o data -d /g1/g1.1/dset1.1.1 tall.h5
+TOOLTEST2 tall-6.exp --enable-error-stack -y -o tall-6.txt -d /g1/g1.1/dset1.1.1 tall.h5
# Report test results and exit
diff --git a/tools/h5dump/testh5dumppbits.sh.in b/tools/h5dump/testh5dumppbits.sh.in
index a390766..8e8e0c0 100644
--- a/tools/h5dump/testh5dumppbits.sh.in
+++ b/tools/h5dump/testh5dumppbits.sh.in
@@ -64,8 +64,8 @@ SRC_H5JAM_TESTFILES="$SRC_TOOLS/h5jam/testfiles"
SRC_H5STAT_TESTFILES="$SRC_TOOLS/h5stat/testfiles"
SRC_H5IMPORT_TESTFILES="$SRC_TOOLS/h5import/testfiles"
-TESTDIR=./testfiles
-test -d $TESTDIR || mkdir $TESTDIR
+TESTDIR=./testfiles/pbits
+test -d $TESTDIR || mkdir -p $TESTDIR
######################################################################
# test files
diff --git a/tools/h5dump/testh5dumpxml.sh.in b/tools/h5dump/testh5dumpxml.sh.in
index 374f504..a70d31c 100644
--- a/tools/h5dump/testh5dumpxml.sh.in
+++ b/tools/h5dump/testh5dumpxml.sh.in
@@ -50,8 +50,8 @@ SRC_H5JAM_TESTFILES="$SRC_TOOLS/h5jam/testfiles"
SRC_H5STAT_TESTFILES="$SRC_TOOLS/h5stat/testfiles"
SRC_H5IMPORT_TESTFILES="$SRC_TOOLS/h5import/testfiles"
-TESTDIR=./testfiles
-test -d $TESTDIR || mkdir $TESTDIR
+TESTDIR=./testfiles/xml
+test -d $TESTDIR || mkdir -p $TESTDIR
######################################################################
# test files
@@ -223,6 +223,9 @@ TESTING() {
echo "Testing $* $SPACES" | cut -c1-70 | tr -d '\012'
}
+# Source in the output filter function definitions.
+. $srcdir/../../bin/output_filter.sh
+
# Run a test and print PASS or *FAIL*. If a test fails then increment
# the `nerrors' global variable and (if $verbose is set) display the
# difference between the actual output and the expected output. The
@@ -232,18 +235,17 @@ TESTING() {
# non-zero value.
#
TOOLTEST() {
- expect="$srcdir/../testfiles/$1"
- actual="../testfiles/`basename $1 .ddl`.out"
- actual_err="../testfiles/`basename $1 .ddl`.err"
+ expect="$TESTDIR/$1"
+ actual="$TESTDIR/`basename $1 .xml`.out"
+ actual_err="$TESTDIR/`basename $1 .xml`.err"
shift
- # Run test.
- TESTING $DUMPER $@
- (
- cd $srcdir/../testfiles
- $RUNSERIAL $DUMPER_BIN $@
- ) >$actual 2>$actual_err
- cat $actual_err >> $actual
+ # Run test.
+ TESTING $DUMPER $@
+ (
+ cd $TESTDIR
+ $RUNSERIAL $DUMPER_BIN "$@"
+ ) >$actual 2>$actual_err
if [ ! -f $expect ]; then
@@ -254,7 +256,7 @@ TOOLTEST() {
echo " PASSED"
else
echo "*FAILED*"
- echo " Expected result (*.ddl) differs from actual result (*.out)"
+ echo " Expected result (*.xml) differs from actual result (*.out)"
nerrors="`expr $nerrors + 1`"
test yes = "$verbose" && $DIFF $expect $actual |sed 's/^/ /'
fi
@@ -277,6 +279,8 @@ SKIP() {
### T H E T E S T S ###
##############################################################################
##############################################################################
+# prepare for test
+COPY_TESTFILES_TO_TESTDIR
# test XML
TOOLTEST tall.h5.xml --xml tall.h5
diff --git a/tools/h5import/CMakeLists.txt b/tools/h5import/CMakeLists.txt
index 96119b7..97f7be9 100644
--- a/tools/h5import/CMakeLists.txt
+++ b/tools/h5import/CMakeLists.txt
@@ -12,6 +12,7 @@ INCLUDE_DIRECTORIES (${HDF5_TOOLS_SRC_DIR}/lib)
ADD_EXECUTABLE (h5import ${HDF5_TOOLS_H5IMPORT_SOURCE_DIR}/h5import.c)
TARGET_NAMING (h5import ${LIB_TYPE})
TARGET_LINK_LIBRARIES (h5import ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET})
+#SET_TARGET_PROPERTIES (h5import PROPERTIES COMPILE_DEFINITIONS H5DEBUGIMPORT)
SET_TARGET_PROPERTIES (h5import PROPERTIES FOLDER tools)
SET (H5_DEP_EXECUTABLES h5import)
@@ -127,31 +128,29 @@ IF (BUILD_TESTING)
##############################################################################
##############################################################################
MACRO (ADD_H5_TEST testname importfile conffile testfile)
- ADD_TEST (
- NAME H5IMPORT-${testname}-clear-objects
- COMMAND ${CMAKE_COMMAND}
- -E remove
- ${testfile}
- ${testfile}.new
- ${testfile}.new.err
- ${testfile}.out
- ${testfile}.out.err
- )
- IF (NOT "${last_test}" STREQUAL "")
- SET_TESTS_PROPERTIES (H5IMPORT-${testname}-clear-objects PROPERTIES DEPENDS ${last_test})
- ENDIF (NOT "${last_test}" STREQUAL "")
- SET (last_test "H5IMPORT-${testname}-clear-objects")
-
- ADD_TEST (NAME H5IMPORT-${testname} COMMAND $<TARGET_FILE:h5import> ${importfile} -c ${conffile} -o ${testfile})
- IF (NOT "${last_test}" STREQUAL "")
- SET_TESTS_PROPERTIES (H5IMPORT-${testname} PROPERTIES DEPENDS ${last_test})
- ENDIF (NOT "${last_test}" STREQUAL "")
- SET (last_test "H5IMPORT-${testname}")
-
- # If using memchecker add tests without using scripts
- IF (NOT HDF5_ENABLE_USING_MEMCHECKER)
+ # If using memchecker skip macro based tests
+ IF (HDF5_ENABLE_USING_MEMCHECKER)
+ ADD_TEST (NAME H5IMPORT-${testname} COMMAND $<TARGET_FILE:h5import> ${importfile} -c ${conffile} -o ${testfile})
+ IF (NOT "${last_test}" STREQUAL "")
+ SET_TESTS_PROPERTIES (H5IMPORT-${testname} PROPERTIES DEPENDS ${last_test})
+ ENDIF (NOT "${last_test}" STREQUAL "")
+ ELSE (HDF5_ENABLE_USING_MEMCHECKER)
ADD_TEST (
- NAME H5IMPORT-H5DMP-${testname}
+ NAME H5IMPORT-${testname}-clear-objects
+ COMMAND ${CMAKE_COMMAND}
+ -E remove
+ ${testfile}
+ ${testfile}.new
+ ${testfile}.new.err
+ ${testfile}.out
+ ${testfile}.out.err
+ )
+
+ ADD_TEST (NAME H5IMPORT-${testname} COMMAND $<TARGET_FILE:h5import> ${importfile} -c ${conffile} -o ${testfile})
+ SET_TESTS_PROPERTIES (H5IMPORT-${testname} PROPERTIES DEPENDS H5IMPORT-${testname}-clear-objects)
+
+ ADD_TEST (
+ NAME H5IMPORT-${testname}-H5DMP
COMMAND "${CMAKE_COMMAND}"
-D "TEST_PROGRAM=$<TARGET_FILE:h5dump>"
-D "TEST_ARGS:STRING=${testfile}"
@@ -162,9 +161,9 @@ IF (BUILD_TESTING)
-D "TEST_SKIP_COMPARE=TRUE"
-P "${HDF5_RESOURCES_DIR}/runTest.cmake"
)
- SET_TESTS_PROPERTIES (H5IMPORT-H5DMP-${testname} PROPERTIES DEPENDS H5IMPORT-${testname})
+ SET_TESTS_PROPERTIES (H5IMPORT-${testname}-H5DMP PROPERTIES DEPENDS H5IMPORT-${testname})
ADD_TEST (
- NAME H5IMPORT-H5DMP_CMP-${testname}
+ NAME H5IMPORT-${testname}-H5DMP_CMP
COMMAND "${CMAKE_COMMAND}"
-D "TEST_PROGRAM=$<TARGET_FILE:h5dump>"
-D "TEST_ARGS:STRING=testfiles/${testfile}"
@@ -175,13 +174,12 @@ IF (BUILD_TESTING)
-D "TEST_REFERENCE=${testfile}.new"
-P "${HDF5_RESOURCES_DIR}/runTest.cmake"
)
- SET_TESTS_PROPERTIES (H5IMPORT-H5DMP_CMP-${testname} PROPERTIES DEPENDS H5IMPORT-H5DMP-${testname})
- SET (last_test "H5IMPORT-H5DMP_CMP-${testname}")
- ENDIF (NOT HDF5_ENABLE_USING_MEMCHECKER)
+ SET_TESTS_PROPERTIES (H5IMPORT-${testname}-H5DMP_CMP PROPERTIES DEPENDS H5IMPORT-${testname}-H5DMP)
+ ENDIF (HDF5_ENABLE_USING_MEMCHECKER)
ENDMACRO (ADD_H5_TEST testname importfile conffile testfile)
MACRO (ADD_H5_DUMPTEST testname datasetname testfile)
- # If using memchecker add tests without using scripts
+ # If using memchecker skip tests
IF (NOT HDF5_ENABLE_USING_MEMCHECKER)
ADD_TEST (
NAME H5IMPORT-DUMP-${testname}-clear-objects
@@ -196,13 +194,10 @@ IF (BUILD_TESTING)
d${testfile}.dff
d${testfile}.dff.err
)
- IF (NOT "${last_test}" STREQUAL "")
- SET_TESTS_PROPERTIES (H5IMPORT-DUMP-${testname}-clear-objects PROPERTIES DEPENDS ${last_test})
- ENDIF (NOT "${last_test}" STREQUAL "")
IF ("${ARGN}" STREQUAL "BINARY")
ADD_TEST (
- NAME H5IMPORT-DUMP-${testname}-H5DUMP
+ NAME H5IMPORT-DUMP-${testname}-H5DMP
COMMAND "${CMAKE_COMMAND}"
-D "TEST_PROGRAM=$<TARGET_FILE:h5dump>"
-D "TEST_ARGS:STRING=-p;-d;${datasetname};-o;d${testfile}.bin;-b;testfiles/${testfile}"
@@ -214,7 +209,7 @@ IF (BUILD_TESTING)
)
ELSE ("${ARGN}" STREQUAL "BINARY")
ADD_TEST (
- NAME H5IMPORT-DUMP-${testname}-H5DUMP
+ NAME H5IMPORT-DUMP-${testname}-H5DMP
COMMAND "${CMAKE_COMMAND}"
-D "TEST_PROGRAM=$<TARGET_FILE:h5dump>"
-D "TEST_ARGS:STRING=-p;-d;${datasetname};-o;d${testfile}.bin;-y;--width=1;testfiles/${testfile}"
@@ -225,7 +220,7 @@ IF (BUILD_TESTING)
-P "${HDF5_RESOURCES_DIR}/runTest.cmake"
)
ENDIF ("${ARGN}" STREQUAL "BINARY")
- SET_TESTS_PROPERTIES (H5IMPORT-DUMP-${testname}-H5DUMP PROPERTIES DEPENDS "H5IMPORT-DUMP-${testname}-clear-objects")
+ SET_TESTS_PROPERTIES (H5IMPORT-DUMP-${testname}-H5DMP PROPERTIES DEPENDS "H5IMPORT-DUMP-${testname}-clear-objects")
ADD_TEST (
NAME H5IMPORT-DUMP-${testname}
@@ -238,10 +233,10 @@ IF (BUILD_TESTING)
-D "TEST_SKIP_COMPARE=TRUE"
-P "${HDF5_RESOURCES_DIR}/runTest.cmake"
)
- SET_TESTS_PROPERTIES (H5IMPORT-DUMP-${testname} PROPERTIES DEPENDS "H5IMPORT-DUMP-${testname}-H5DUMP")
+ SET_TESTS_PROPERTIES (H5IMPORT-DUMP-${testname} PROPERTIES DEPENDS "H5IMPORT-DUMP-${testname}-H5DMP")
ADD_TEST (
- NAME H5IMPORT-DUMP-${testname}-H5DIFF
+ NAME H5IMPORT-DUMP-${testname}-H5DFF
COMMAND "${CMAKE_COMMAND}"
-D "TEST_PROGRAM=$<TARGET_FILE:h5diff>"
-D "TEST_ARGS:STRING=-v;d${testfile};testfiles/${testfile};${datasetname};${datasetname}"
@@ -252,21 +247,17 @@ IF (BUILD_TESTING)
-D "TEST_REFERENCE=testfiles/d${testfile}.txt"
-P "${HDF5_RESOURCES_DIR}/runTest.cmake"
)
- SET_TESTS_PROPERTIES (H5IMPORT-DUMP-${testname}-H5DIFF PROPERTIES DEPENDS "H5IMPORT-DUMP-${testname}")
- SET (last_test "H5IMPORT-DUMP-${testname}-H5DIFF")
- ELSE (NOT HDF5_ENABLE_USING_MEMCHECKER)
- ADD_TEST (
- NAME H5IMPORT-DUMP-${testname}-SKIPPED
- COMMAND ${CMAKE_COMMAND} -E echo "SKIP ${testname} ${datasetname} ${testfile}"
- )
+ SET_TESTS_PROPERTIES (H5IMPORT-DUMP-${testname}-H5DFF PROPERTIES DEPENDS "H5IMPORT-DUMP-${testname}")
ENDIF (NOT HDF5_ENABLE_USING_MEMCHECKER)
ENDMACRO (ADD_H5_DUMPTEST testname datasetname testfile)
MACRO (ADD_H5_SKIP_DUMPTEST testname datasetname testfile)
- ADD_TEST (
- NAME H5IMPORT-DUMP-${testname}-SKIPPED
- COMMAND ${CMAKE_COMMAND} -E echo "SKIP ${testname} ${datasetname} ${testfile} --- DEFLATE filter not available"
- )
+ IF (NOT HDF5_ENABLE_USING_MEMCHECKER)
+ ADD_TEST (
+ NAME H5IMPORT-DUMP-${testname}-SKIPPED
+ COMMAND ${CMAKE_COMMAND} -E echo "SKIP ${testname} ${datasetname} ${testfile} --- DEFLATE filter not available"
+ )
+ ENDIF (NOT HDF5_ENABLE_USING_MEMCHECKER)
ENDMACRO (ADD_H5_SKIP_DUMPTEST testname datasetname testfile)
# --------------------------------------------------------------------
@@ -282,27 +273,171 @@ IF (BUILD_TESTING)
##############################################################################
##############################################################################
- # Remove any output file left over from previous test run
- ADD_TEST (
- NAME H5IMPORT-clear-objects
- COMMAND ${CMAKE_COMMAND}
- -E remove
- binfp64.bin
- binin8.bin
- binin8w.bin
- binin16.bin
- binin32.bin
- binuin16.bin
- binuin32.bin
- ${HDF5_REFERENCE_TEST_FILES}
- )
- SET (last_test "H5IMPORT-clear-objects")
+ IF (HDF5_ENABLE_USING_MEMCHECKER)
+ # Remove any output file left over from previous test run
+ ADD_TEST (
+ NAME H5IMPORT-clear-objects
+ COMMAND ${CMAKE_COMMAND}
+ -E remove
+ binfp64.bin
+ binin8.bin
+ binin8w.bin
+ binin16.bin
+ binin32.bin
+ binuin16.bin
+ binuin32.bin
+ txtin32.h5
+ txtin32.h5.new
+ txtin32.h5.new.err
+ txtin32.h5.out
+ txtin32.h5.out.err
+ txtin16.h5
+ txtin16.h5.new
+ txtin16.h5.new.err
+ txtin16.h5.out
+ txtin16.h5.out.err
+ txtin8.h5
+ txtin8.h5.new
+ txtin8.h5.new.err
+ txtin8.h5.out
+ txtin8.h5.out.err
+ txtuin16.h5
+ txtuin16.h5.new
+ txtuin16.h5.new.err
+ txtuin16.h5.out
+ txtuin16.h5.out.err
+ txtuin32.h5
+ txtuin32.h5.new
+ txtuin32.h5.new.err
+ txtuin32.h5.out
+ txtuin32.h5.out.err
+ txtfp32.h5
+ txtfp32.h5.new
+ txtfp32.h5.new.err
+ txtfp32.h5.out
+ txtfp32.h5.out.err
+ txtfp64.h5
+ txtfp64.h5.new
+ txtfp64.h5.new.err
+ txtfp64.h5.out
+ txtfp64.h5.out.err
+ binfp64.h5
+ binfp64.h5.new
+ binfp64.h5.new.err
+ binfp64.h5.out
+ binfp64.h5.out.err
+ binin8.h5
+ binin8.h5.new
+ binin8.h5.new.err
+ binin8.h5.out
+ binin8.h5.out.err
+ binin8w.h5
+ binin8w.h5.new
+ binin8w.h5.new.err
+ binin8w.h5.out
+ binin8w.h5.out.err
+ binin16.h5
+ binin16.h5.new
+ binin16.h5.new.err
+ binin16.h5.out
+ binin16.h5.out.err
+ binin32.h5
+ binin32.h5.new
+ binin32.h5.new.err
+ binin32.h5.out
+ binin32.h5.out.err
+ binuin16.h5
+ binuin16.h5.new
+ binuin16.h5.new.err
+ binuin16.h5.out
+ binuin16.h5.out.err
+ binuin32.h5
+ binuin32.h5.new
+ binuin32.h5.new.err
+ binuin32.h5.out
+ binuin32.h5.out.err
+ txtstr.h5
+ txtstr.h5.new
+ txtstr.h5.new.err
+ txtstr.h5.out
+ txtstr.h5.out.err
+ textpfe.h5
+ textpfe.h5.new
+ textpfe.h5.new.err
+ textpfe.h5.out
+ textpfe.h5.out.err
+ dbinfp64.h5
+ dbinfp64.h5.bin
+ dbinfp64.h5.imp
+ dbinfp64.h5.imp.err
+ dbinfp64.h5.dmp
+ dbinfp64.h5.dmp.err
+ dbinfp64.h5.dff
+ dbinfp64.h5.dff.err
+ dbinin8.h5
+ dbinin8.h5.bin
+ dbinin8.h5.imp
+ dbinin8.h5.imp.err
+ dbinin8.h5.dmp
+ dbinin8.h5.dmp.err
+ dbinin8.h5.dff
+ dbinin8.h5.dff.err
+ dbinin8w.h5
+ dbinin8w.h5.bin
+ dbinin8w.h5.imp
+ dbinin8w.h5.imp.err
+ dbinin8w.h5.dmp
+ dbinin8w.h5.dmp.err
+ dbinin8w.h5.dff
+ dbinin8w.h5.dff.err
+ dbinin16.h5
+ dbinin16.h5.bin
+ dbinin16.h5.imp
+ dbinin16.h5.imp.err
+ dbinin16.h5.dmp
+ dbinin16.h5.dmp.err
+ dbinin16.h5.dff
+ dbinin16.h5.dff.err
+ dbinin32.h5
+ dbinin32.h5.bin
+ dbinin32.h5.imp
+ dbinin32.h5.imp.err
+ dbinin32.h5.dmp
+ dbinin32.h5.dmp.err
+ dbinin32.h5.dff
+ dbinin32.h5.dff.err
+ dbinuin16.h5
+ dbinuin16.h5.bin
+ dbinuin16.h5.imp
+ dbinuin16.h5.imp.err
+ dbinuin16.h5.dmp
+ dbinuin16.h5.dmp.err
+ dbinuin16.h5.dff
+ dbinuin16.h5.dff.err
+ dbinuin32.h5
+ dbinuin32.h5.bin
+ dbinuin32.h5.imp
+ dbinuin32.h5.imp.err
+ dbinuin32.h5.dmp
+ dbinuin32.h5.dmp.err
+ dbinuin32.h5.dff
+ dbinuin32.h5.dff.err
+ dtxtstr.h5
+ dtxtstr.h5.bin
+ dtxtstr.h5.imp
+ dtxtstr.h5.imp.err
+ dtxtstr.h5.dmp
+ dtxtstr.h5.dmp.err
+ dtxtstr.h5.dff
+ dtxtstr.h5.dff.err
+ )
+ SET (last_test "H5IMPORT-clear-objects")
+ ENDIF (HDF5_ENABLE_USING_MEMCHECKER)
ADD_TEST (NAME H5IMPORT-h5importtest COMMAND $<TARGET_FILE:h5importtest>)
IF (NOT "${last_test}" STREQUAL "")
SET_TESTS_PROPERTIES (H5IMPORT-h5importtest PROPERTIES DEPENDS ${last_test})
ENDIF (NOT "${last_test}" STREQUAL "")
- SET (last_test "H5IMPORT-h5importtest")
# ----- TESTING "ASCII I32 rank 3 - Output BE " ;
ADD_H5_TEST (ASCII_I32 testfiles/txtin32.txt testfiles/txtin32.conf txtin32.h5)
diff --git a/tools/h5ls/CMakeLists.txt b/tools/h5ls/CMakeLists.txt
index 5cce6cb..70943b5 100644
--- a/tools/h5ls/CMakeLists.txt
+++ b/tools/h5ls/CMakeLists.txt
@@ -145,10 +145,9 @@ IF (BUILD_TESTING)
IF (NOT "${last_test}" STREQUAL "")
SET_TESTS_PROPERTIES (H5LS-${resultfile} PROPERTIES DEPENDS ${last_test})
ENDIF (NOT "${last_test}" STREQUAL "")
- SET (last_test "H5LS-${resultfile}")
ELSE (HDF5_ENABLE_USING_MEMCHECKER)
ADD_TEST (
- NAME H5LS-clear-${resultfile}-objects
+ NAME H5LS-${resultfile}-clear-objects
COMMAND ${CMAKE_COMMAND}
-E remove ./testfiles/${resultfile}.out ./testfiles/${resultfile}.out.err
)
@@ -163,7 +162,7 @@ IF (BUILD_TESTING)
-D "TEST_REFERENCE=${resultfile}.ls"
-P "${HDF5_RESOURCES_DIR}/runTest.cmake"
)
- SET_TESTS_PROPERTIES (H5LS-${resultfile} PROPERTIES DEPENDS "H5LS-clear-${resultfile}-objects")
+ SET_TESTS_PROPERTIES (H5LS-${resultfile} PROPERTIES DEPENDS "H5LS-${resultfile}-clear-objects")
ENDIF (HDF5_ENABLE_USING_MEMCHECKER)
ENDMACRO (ADD_H5_TEST file)
diff --git a/tools/h5ls/h5ls.c b/tools/h5ls/h5ls.c
index 0fc0531..7135e4e 100644
--- a/tools/h5ls/h5ls.c
+++ b/tools/h5ls/h5ls.c
@@ -177,7 +177,7 @@ static void
usage (void)
{
HDfprintf(rawerrorstream, "\
-usage: %s [OPTIONS] [OBJECTS...]\n\
+usage: %s [OPTIONS] file[/OBJECT] [file[/[OBJECT]...]\n\
OPTIONS\n\
-h, -?, --help Print a usage message and exit\n\
-a, --address Print raw data address. If dataset is contiguous, address\n\
@@ -217,7 +217,7 @@ usage: %s [OPTIONS] [OBJECTS...]\n\
--vfd=DRIVER Use the specified virtual file driver\n\
-x, --hexdump Show raw data in hexadecimal format\n\
\n\
- OBJECTS\n\
+ file/OBJECT\n\
Each object consists of an HDF5 file name optionally followed by a\n\
slash and an object name within the file (if no object is specified\n\
within the file then the contents of the root group are displayed).\n\
@@ -1453,7 +1453,7 @@ dump_dataset_values(hid_t dset)
h5tools_str_close(&buffer);
- HDfprintf(rawoutstream, "\n");
+ PRINTVALSTREAM(rawoutstream, "\n");
}
@@ -1637,7 +1637,7 @@ list_attr(hid_t obj, const char *attr_name, const H5A_info_t UNUSED *ainfo,
}
h5tools_str_close(&buffer);
- HDfprintf(rawoutstream, "\n");
+ PRINTVALSTREAM(rawoutstream, "\n");
return 0;
}
@@ -2263,7 +2263,7 @@ list_lnk(const char *name, const H5L_info_t *linfo, void *_iter)
grp_literal_g = orig_grp_literal;
}
else
- HDfprintf(rawoutstream, "\n");
+ PRINTVALSTREAM(rawoutstream, "\n");
}
break;
@@ -2749,7 +2749,7 @@ main(int argc, const char *argv[])
if(file >= 0) {
if(verbose_g)
- HDfprintf(rawoutstream, "Opened \"%s\" with %s driver.\n", fname, drivername);
+ PRINTSTREAM(rawoutstream, "Opened \"%s\" with %s driver.\n", fname, drivername);
break; /*success*/
} /* end if */
diff --git a/tools/h5repack/CMakeLists.txt b/tools/h5repack/CMakeLists.txt
index 7166357..156f6d8 100644
--- a/tools/h5repack/CMakeLists.txt
+++ b/tools/h5repack/CMakeLists.txt
@@ -150,24 +150,23 @@ IF (BUILD_TESTING)
IF (${testtype} STREQUAL "SKIP")
IF (NOT HDF5_ENABLE_USING_MEMCHECKER)
ADD_TEST (
- NAME H5REPACK-${testname}-SKIPPED
- COMMAND ${CMAKE_COMMAND} -E echo "SKIP ${ARGN} -i ${PROJECT_BINARY_DIR}/testfiles/${testfile} -o ${PROJECT_BINARY_DIR}/testfiles/out.${testfile}"
+ NAME H5REPACK_OLD-${testname}-SKIPPED
+ COMMAND ${CMAKE_COMMAND} -E echo "SKIP ${ARGN} -i ${PROJECT_BINARY_DIR}/testfiles/${testfile} -o ${PROJECT_BINARY_DIR}/testfiles/out-${testname}.${testfile}"
)
ENDIF (NOT HDF5_ENABLE_USING_MEMCHECKER)
ELSE (${testtype} STREQUAL "SKIP")
ADD_TEST (
- NAME H5REPACK-${testname}
- COMMAND $<TARGET_FILE:h5repack> ${ARGN} -i ${PROJECT_BINARY_DIR}/testfiles/${testfile} -o ${PROJECT_BINARY_DIR}/testfiles/out.${testfile}
+ NAME H5REPACK_OLD-${testname}
+ COMMAND $<TARGET_FILE:h5repack> ${ARGN} -i ${PROJECT_BINARY_DIR}/testfiles/${testfile} -o ${PROJECT_BINARY_DIR}/testfiles/out-${testname}.${testfile}
)
IF (NOT "${last_test}" STREQUAL "")
- SET_TESTS_PROPERTIES (H5REPACK-${testname} PROPERTIES DEPENDS ${last_test})
+ SET_TESTS_PROPERTIES (H5REPACK_OLD-${testname} PROPERTIES DEPENDS ${last_test})
ENDIF (NOT "${last_test}" STREQUAL "")
ADD_TEST (
- NAME H5REPACK-DIFF_${testname}
- COMMAND $<TARGET_FILE:h5diff> ${PROJECT_BINARY_DIR}/testfiles/${testfile} ${PROJECT_BINARY_DIR}/testfiles/out.${testfile}
+ NAME H5REPACK_OLD-${testname}_DFF
+ COMMAND $<TARGET_FILE:h5diff> ${PROJECT_BINARY_DIR}/testfiles/${testfile} ${PROJECT_BINARY_DIR}/testfiles/out-${testname}.${testfile}
)
- SET_TESTS_PROPERTIES (H5REPACK-DIFF_${testname} PROPERTIES DEPENDS H5REPACK-${testname})
- SET (last_test "H5REPACK-DIFF_${testname}")
+ SET_TESTS_PROPERTIES (H5REPACK_OLD-${testname}_DFF PROPERTIES DEPENDS H5REPACK_OLD-${testname})
ENDIF (${testtype} STREQUAL "SKIP")
ENDMACRO (ADD_H5_TEST_OLD)
@@ -176,23 +175,22 @@ IF (BUILD_TESTING)
IF (NOT HDF5_ENABLE_USING_MEMCHECKER)
ADD_TEST (
NAME H5REPACK-${testname}-SKIPPED
- COMMAND ${CMAKE_COMMAND} -E echo "SKIP ${ARGN} ${PROJECT_BINARY_DIR}/testfiles/${testfile} ${PROJECT_BINARY_DIR}/testfiles/out.${testfile}"
+ COMMAND ${CMAKE_COMMAND} -E echo "SKIP ${ARGN} ${PROJECT_BINARY_DIR}/testfiles/${testfile} ${PROJECT_BINARY_DIR}/testfiles/out-${testname}.${testfile}"
)
ENDIF (NOT HDF5_ENABLE_USING_MEMCHECKER)
ELSE (${testtype} STREQUAL "SKIP")
ADD_TEST (
NAME H5REPACK-${testname}
- COMMAND $<TARGET_FILE:h5repack> ${ARGN} ${PROJECT_BINARY_DIR}/testfiles/${testfile} ${PROJECT_BINARY_DIR}/testfiles/out.${testfile}
+ COMMAND $<TARGET_FILE:h5repack> ${ARGN} ${PROJECT_BINARY_DIR}/testfiles/${testfile} ${PROJECT_BINARY_DIR}/testfiles/out-${testname}.${testfile}
)
IF (NOT "${last_test}" STREQUAL "")
SET_TESTS_PROPERTIES (H5REPACK-${testname} PROPERTIES DEPENDS ${last_test})
ENDIF (NOT "${last_test}" STREQUAL "")
ADD_TEST (
- NAME H5REPACK-DIFF_${testname}
- COMMAND $<TARGET_FILE:h5diff> ${PROJECT_BINARY_DIR}/testfiles/${testfile} ${PROJECT_BINARY_DIR}/testfiles/out.${testfile}
+ NAME H5REPACK-${testname}_DFF
+ COMMAND $<TARGET_FILE:h5diff> ${PROJECT_BINARY_DIR}/testfiles/${testfile} ${PROJECT_BINARY_DIR}/testfiles/out-${testname}.${testfile}
)
- SET_TESTS_PROPERTIES (H5REPACK-DIFF_${testname} PROPERTIES DEPENDS H5REPACK-${testname})
- SET (last_test "H5REPACK-DIFF_${testname}")
+ SET_TESTS_PROPERTIES (H5REPACK-${testname}_DFF PROPERTIES DEPENDS H5REPACK-${testname})
ENDIF (${testtype} STREQUAL "SKIP")
ENDMACRO (ADD_H5_TEST)
@@ -200,22 +198,22 @@ IF (BUILD_TESTING)
IF (${testtype} STREQUAL "SKIP")
IF (NOT HDF5_ENABLE_USING_MEMCHECKER)
ADD_TEST (
- NAME H5REPACK-${testname}-SKIPPED
- COMMAND ${CMAKE_COMMAND} -E echo "SKIP ${ARGN} ${PROJECT_BINARY_DIR}/testfiles/${resultfile} ${PROJECT_BINARY_DIR}/testfiles/out.${resultfile}"
+ NAME H5REPACK_CMP-${testname}-SKIPPED
+ COMMAND ${CMAKE_COMMAND} -E echo "SKIP ${ARGN} ${PROJECT_BINARY_DIR}/testfiles/${resultfile} ${PROJECT_BINARY_DIR}/testfiles/out-${testname}.${resultfile}"
)
ENDIF (NOT HDF5_ENABLE_USING_MEMCHECKER)
ELSE (${testtype} STREQUAL "SKIP")
# If using memchecker add tests without using scripts
IF (HDF5_ENABLE_USING_MEMCHECKER)
- ADD_TEST (NAME H5REPACK-${testname} COMMAND $<TARGET_FILE:h5repack> ${ARGN} testfiles/${resultfile} testfiles/out.${resultfile})
+ ADD_TEST (NAME H5REPACK_CMP-${testname} COMMAND $<TARGET_FILE:h5repack> ${ARGN} testfiles/${resultfile} testfiles/out-${testname}.${resultfile})
ELSE (HDF5_ENABLE_USING_MEMCHECKER)
ADD_TEST (
- NAME H5REPACK-${testname}
+ NAME H5REPACK_CMP-${testname}
COMMAND "${CMAKE_COMMAND}"
-D "TEST_PROGRAM=$<TARGET_FILE:h5repack>"
- -D "TEST_ARGS:STRING=${ARGN};testfiles/${resultfile};testfiles/out.${resultfile}"
+ -D "TEST_ARGS:STRING=${ARGN};testfiles/${resultfile};testfiles/out-${testname}.${resultfile}"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
- -D "TEST_OUTPUT=./testfiles/${resultfile}.out"
+ -D "TEST_OUTPUT=./testfiles/${resultfile}-${testname}.out"
-D "TEST_EXPECT=${resultcode}"
-D "TEST_FILTER:STRING=${testfilter}"
-D "TEST_REFERENCE=testfiles/${resultfile}.ddl"
@@ -223,9 +221,8 @@ IF (BUILD_TESTING)
)
ENDIF (HDF5_ENABLE_USING_MEMCHECKER)
IF (NOT "${last_test}" STREQUAL "")
- SET_TESTS_PROPERTIES (H5REPACK-${testname} PROPERTIES DEPENDS ${last_test})
+ SET_TESTS_PROPERTIES (H5REPACK_CMP-${testname} PROPERTIES DEPENDS ${last_test})
ENDIF (NOT "${last_test}" STREQUAL "")
- SET (last_test "H5REPACK-${testname}")
ENDIF (${testtype} STREQUAL "SKIP")
ENDMACRO (ADD_H5_CMP_TEST)
@@ -234,28 +231,37 @@ IF (BUILD_TESTING)
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.${resultfile}"
+ 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}
+ )
+ 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}_DFF
+ COMMAND $<TARGET_FILE:h5diff> ${PROJECT_BINARY_DIR}/testfiles/${testfile} ${PROJECT_BINARY_DIR}/testfiles/out-${testname}.${testfile}
+ )
+ SET_TESTS_PROPERTIES (H5REPACK_VERIFY_LAYOUT-${testname}_DFF PROPERTIES DEPENDS H5REPACK_VERIFY_LAYOUT-${testname})
IF (${resultcode} STREQUAL "0")
ADD_TEST (
- NAME H5REPACK_VERIFY_LAYOUT-${testname}
+ NAME H5REPACK_VERIFY_LAYOUT-${testname}_DMP
COMMAND "${CMAKE_COMMAND}"
-D "TEST_PROGRAM=$<TARGET_FILE:h5dump>"
- -D "TEST_ARGS:STRING=-d;${testdset};-pH;testfiles/out.${testfile}"
+ -D "TEST_ARGS:STRING=-d;${testdset};-pH;testfiles/out-${testname}.${testfile}"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
- -D "TEST_OUTPUT=./testfiles/${testfile}-v.out"
+ -D "TEST_OUTPUT=./testfiles/${testfile}-${testname}-v.out"
-D "TEST_EXPECT=${resultcode}"
-D "TEST_FILTER:STRING=${testfilter}"
-D "TEST_REFERENCE=${testfilter}"
-P "${HDF5_RESOURCES_DIR}/grepTest.cmake"
)
- IF (NOT "${last_test}" STREQUAL "")
- SET_TESTS_PROPERTIES (H5REPACK_VERIFY_LAYOUT-${testname} PROPERTIES DEPENDS ${last_test})
- ENDIF (NOT "${last_test}" STREQUAL "")
- SET (last_test "H5REPACK_VERIFY_LAYOUT-${testname}")
+ SET_TESTS_PROPERTIES (H5REPACK_VERIFY_LAYOUT-${testname}_DMP PROPERTIES DEPENDS H5REPACK_VERIFY_LAYOUT-${testname}_DFF)
ELSE (${resultcode} STREQUAL "0")
IF (${testfilter} STREQUAL "CHUNKED")
SET (nottestfilter "(CONTIGUOUS|COMPACT)")
@@ -267,21 +273,18 @@ IF (BUILD_TESTING)
SET (nottestfilter "(CONTIGUOUS|CHUNK)")
ENDIF (${testfilter} STREQUAL "COMPACT")
ADD_TEST (
- NAME H5REPACK_VERIFY_LAYOUT_ALL-${testname}
+ NAME H5REPACK_VERIFY_LAYOUT-${testname}_DMP
COMMAND "${CMAKE_COMMAND}"
-D "TEST_PROGRAM=$<TARGET_FILE:h5dump>"
- -D "TEST_ARGS:STRING=-pH;testfiles/out.${testfile}"
+ -D "TEST_ARGS:STRING=-pH;testfiles/out-${testname}.${testfile}"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
- -D "TEST_OUTPUT=./testfiles/${testfile}-v.out"
+ -D "TEST_OUTPUT=./testfiles/${testfile}-${testname}-v.out"
-D "TEST_EXPECT=${resultcode}"
-D "TEST_FILTER:STRING=${nottestfilter}"
-D "TEST_REFERENCE=${testfilter}"
-P "${HDF5_RESOURCES_DIR}/grepTest.cmake"
)
- IF (NOT "${last_test}" STREQUAL "")
- SET_TESTS_PROPERTIES (H5REPACK_VERIFY_LAYOUT_ALL-${testname} PROPERTIES DEPENDS ${last_test})
- ENDIF (NOT "${last_test}" STREQUAL "")
- SET (last_test "H5REPACK_VERIFY_LAYOUT_ALL-${testname}")
+ SET_TESTS_PROPERTIES (H5REPACK_VERIFY_LAYOUT-${testname}_DMP PROPERTIES DEPENDS H5REPACK_VERIFY_LAYOUT-${testname}_DFF)
ENDIF (${resultcode} STREQUAL "0")
ENDIF (NOT HDF5_ENABLE_USING_MEMCHECKER)
ENDIF (${testtype} STREQUAL "SKIP")
@@ -289,25 +292,21 @@ IF (BUILD_TESTING)
MACRO (ADD_H5_TEST_META testname testfile)
ADD_TEST (
- NAME H5REPACK-${testname}_N
- COMMAND $<TARGET_FILE:h5repack> ${PROJECT_BINARY_DIR}/testfiles/${testfile} ${PROJECT_BINARY_DIR}/testfiles/out_N.${testname}.h5
+ NAME H5REPACK_META-${testname}_N
+ COMMAND $<TARGET_FILE:h5repack> ${PROJECT_BINARY_DIR}/testfiles/${testfile} ${PROJECT_BINARY_DIR}/testfiles/out-${testname}_N.${testname}.h5
)
IF (NOT "${last_test}" STREQUAL "")
- SET_TESTS_PROPERTIES (H5REPACK-${testname}_N PROPERTIES DEPENDS ${last_test})
+ SET_TESTS_PROPERTIES (H5REPACK_META-${testname}_N PROPERTIES DEPENDS ${last_test})
ENDIF (NOT "${last_test}" STREQUAL "")
ADD_TEST (
- NAME H5REPACK-${testname}_M
- COMMAND $<TARGET_FILE:h5repack> ${ARGN} ${PROJECT_BINARY_DIR}/testfiles/${testfile} ${PROJECT_BINARY_DIR}/testfiles/out_M.${testname}.h5
+ NAME H5REPACK_META-${testname}_M
+ COMMAND $<TARGET_FILE:h5repack> ${ARGN} ${PROJECT_BINARY_DIR}/testfiles/${testfile} ${PROJECT_BINARY_DIR}/testfiles/out-${testname}_M.${testname}.h5
)
- IF (NOT "${last_test}" STREQUAL "")
- SET_TESTS_PROPERTIES (H5REPACK-${testname}_M PROPERTIES DEPENDS ${last_test})
- ENDIF (NOT "${last_test}" STREQUAL "")
- ADD_TEST (NAME H5REPACK-${testname} COMMAND ${CMAKE_COMMAND} -E compare_files ${PROJECT_BINARY_DIR}/testfiles/out_N.${testname}.h5 ${PROJECT_BINARY_DIR}/testfiles/out_M.${testname}.h5)
- SET_TESTS_PROPERTIES (H5REPACK-${testname} PROPERTIES WILL_FAIL "true")
- IF (NOT "${last_test}" STREQUAL "")
- SET_TESTS_PROPERTIES (H5REPACK-${testname} PROPERTIES DEPENDS ${last_test})
- ENDIF (NOT "${last_test}" STREQUAL "")
- SET (last_test "H5REPACK-${testname}")
+ SET_TESTS_PROPERTIES (H5REPACK_META-${testname}_M PROPERTIES DEPENDS H5REPACK_META-${testname}_N)
+
+ ADD_TEST (NAME H5REPACK_META-${testname} COMMAND ${CMAKE_COMMAND} -E compare_files ${PROJECT_BINARY_DIR}/testfiles/out-${testname}_N.${testname}.h5 ${PROJECT_BINARY_DIR}/testfiles/out-${testname}_M.${testname}.h5)
+ SET_TESTS_PROPERTIES (H5REPACK_META-${testname} PROPERTIES WILL_FAIL "true")
+ SET_TESTS_PROPERTIES (H5REPACK_META-${testname} PROPERTIES DEPENDS H5REPACK_META-${testname}_M)
ENDMACRO (ADD_H5_TEST_META)
##############################################################################
@@ -316,43 +315,158 @@ IF (BUILD_TESTING)
##############################################################################
##############################################################################
+ # --------------------------------------------------------------------
+ # test file names
+ # --------------------------------------------------------------------
+ SET (INFO_FILE testfiles/h5repack.info)
+
+ SET (FILE0 h5repack_fill.h5)
+ SET (FILE1 h5repack_objs.h5)
+ SET (FILE2 h5repack_attr.h5)
+ SET (FILE3 h5repack_hlink.h5)
+ SET (FILE4 h5repack_layout.h5)
+ SET (FILE5 h5repack_early.h5)
+ SET (FILE7 h5repack_szip.h5)
+ SET (FILE8 h5repack_deflate.h5)
+ SET (FILE9 h5repack_shuffle.h5)
+ SET (FILE10 h5repack_fletcher.h5)
+ SET (FILE11 h5repack_filters.h5)
+ SET (FILE12 h5repack_nbit.h5)
+ SET (FILE13 h5repack_soffset.h5)
+ SET (FILE14 h5repack_layouto.h5 ) # A file with an older version of the layout message (copy of test/tlayouto.h5)
+ SET (FILE15 h5repack_named_dtypes.h5)
+ SET (FILE16 tfamily%05d.h5) # located in common testfiles folder
+ SET (FILE18 h5repack_layout2.h5)
+ SET (FILE_REF h5repack_refs.h5)
+ SET (FILE_ATTR_REF h5repack_attr_refs.h5)
+
# Remove any output file left over from previous test run
ADD_TEST (
NAME H5REPACK-clearall-objects
COMMAND ${CMAKE_COMMAND}
-E remove
- ./testfiles/h5repack_filters.h5.out
- ./testfiles/h5repack_filters.h5.out.err
- ./testfiles/h5repack_layout.h5-v.out
- ./testfiles/h5repack_layout.h5-v.out.err
- ./testfiles/h5repack_layout2.h5-v.out
- ./testfiles/h5repack_layout2.h5-v.out.err
- ./testfiles/h5repack_layout3.h5-v.out
- ./testfiles/h5repack_layout3.h5-v.out.err
- ./testfiles/out.tfamily%05d.h5
- ./testfiles/out.h5diff_attr1.h5
- ./testfiles/out.h5repack_attr.h5
- ./testfiles/out.h5repack_attr_refs.h5
- ./testfiles/out.h5repack_deflate.h5
- ./testfiles/out.h5repack_early.h5
- ./testfiles/out.h5repack_fill.h5
- ./testfiles/out.h5repack_filters.h5
- ./testfiles/out.h5repack_fletcher.h5
- ./testfiles/out.h5repack_hlink.h5
- ./testfiles/out.h5repack_layout.h5
- ./testfiles/out.h5repack_layouto.h5
- ./testfiles/out.h5repack_layout2.h5
- ./testfiles/out.h5repack_layout3.h5
- ./testfiles/out.h5repack_named_dtypes.h5
- ./testfiles/out.h5repack_nbit.h5
- ./testfiles/out.h5repack_objs.h5
- ./testfiles/out.h5repack_refs.h5
- ./testfiles/out.h5repack_shuffle.h5
- ./testfiles/out.h5repack_soffset.h5
- ./testfiles/out_M.meta_short.h5
- ./testfiles/out_N.meta_short.h5
- ./testfiles/out_M.meta_long.h5
- ./testfiles/out_N.meta_long.h5
+ ./testfiles/h5repack_filters.h5-gzip_verbose_filters.out
+ ./testfiles/h5repack_filters.h5-gzip_verbose_filters.out.err
+ ./testfiles/h5repack_layout.h5-chunk_18x13-v.out
+ ./testfiles/h5repack_layout.h5-chunk_18x13-v.out.err
+ ./testfiles/h5repack_layout.h5-chunk_20x10-v.out
+ ./testfiles/h5repack_layout.h5-chunk_20x10-v.out.err
+ ./testfiles/h5repack_layout.h5-chunk_compa-v.out
+ ./testfiles/h5repack_layout.h5-chunk_compa-v.out.err
+ ./testfiles/h5repack_layout.h5-chunk_conti-v.out
+ ./testfiles/h5repack_layout.h5-chunk_conti-v.out.err
+ ./testfiles/h5repack_layout.h5-compa-v.out
+ ./testfiles/h5repack_layout.h5-compa-v.out.err
+ ./testfiles/h5repack_layout.h5-conti-v.out
+ ./testfiles/h5repack_layout.h5-conti-v.out.err
+ ./testfiles/h5repack_layout.h5-dset2_chunk_20x10-v.out
+ ./testfiles/h5repack_layout.h5-dset2_chunk_20x10-v.out.err
+ ./testfiles/h5repack_layout.h5-dset2_compa-v.out
+ ./testfiles/h5repack_layout.h5-dset2_compa-v.out.err
+ ./testfiles/h5repack_layout.h5-dset2_conti-v.out
+ ./testfiles/h5repack_layout.h5-dset2_conti-v.out.err
+ ./testfiles/h5repack_layout.h5-dset_compa_chunk-v.out
+ ./testfiles/h5repack_layout.h5-dset_compa_chunk-v.out.err
+ ./testfiles/h5repack_layout.h5-dset_compa_compa-v.out
+ ./testfiles/h5repack_layout.h5-dset_compa_compa-v.out.err
+ ./testfiles/h5repack_layout.h5-dset_compa_conti-v.out
+ ./testfiles/h5repack_layout.h5-dset_compa_conti-v.out.err
+ ./testfiles/h5repack_layout.h5-dset_conti_chunk-v.out
+ ./testfiles/h5repack_layout.h5-dset_conti_chunk-v.out.err
+ ./testfiles/h5repack_layout.h5-dset_conti_compa-v.out
+ ./testfiles/h5repack_layout.h5-dset_conti_compa-v.out.err
+ ./testfiles/h5repack_layout.h5-dset_conti_conti-v.out
+ ./testfiles/h5repack_layout.h5-dset_conti_conti-v.out.err
+ ./testfiles/h5repack_layout.h5-layout_long_switches-v.out
+ ./testfiles/h5repack_layout.h5-layout_long_switches-v.out.err
+ ./testfiles/h5repack_layout.h5-layout_short_switches-v.out
+ ./testfiles/h5repack_layout.h5-layout_short_switches-v.out.err
+ ./testfiles/h5repack_layout2.h5-contig_small_compa-v.out
+ ./testfiles/h5repack_layout2.h5-contig_small_compa-v.out.err
+ ./testfiles/h5repack_layout2.h5-contig_small_fixed_compa-v.out
+ ./testfiles/h5repack_layout2.h5-contig_small_fixed_compa-v.out.err
+ ./testfiles/h5repack_layout3.h5-chunk2chunk-v.out
+ ./testfiles/h5repack_layout3.h5-chunk2chunk-v.out.err
+ ./testfiles/h5repack_layout3.h5-chunk2compa-v.out
+ ./testfiles/h5repack_layout3.h5-chunk2compa-v.out.err
+ ./testfiles/h5repack_layout3.h5-chunk2conti-v.out
+ ./testfiles/h5repack_layout3.h5-chunk2conti-v.out.err
+ ./testfiles/h5repack_layout3.h5-error1-v.out
+ ./testfiles/h5repack_layout3.h5-error1-v.out.err
+ ./testfiles/h5repack_layout3.h5-error2-v.out
+ ./testfiles/h5repack_layout3.h5-error2-v.out.err
+ ./testfiles/h5repack_layout3.h5-error3-v.out
+ ./testfiles/h5repack_layout3.h5-error3-v.out.err
+ ./testfiles/out-family.tfamily%05d.h5
+ ./testfiles/out-HDFFV-7840.h5diff_attr1.h5
+ ./testfiles/out-attr.h5repack_attr.h5
+ ./testfiles/out-native_attr.h5repack_attr.h5
+ ./testfiles/out-HDFFV-5932.h5repack_attr_refs.h5
+ ./testfiles/out-deflate_copy.h5repack_deflate.h5
+ ./testfiles/out-deflate_remove.h5repack_deflate.h5
+ ./testfiles/out-early.h5repack_early.h5
+ ./testfiles/out-fill.h5repack_fill.h5
+ ./testfiles/out-native_fill.h5repack_fill.h5
+ ./testfiles/out-gzip_verbose_filters.h5repack_filters.h5
+ ./testfiles/out-fletcher_copy.h5repack_fletcher.h5
+ ./testfiles/out-fletcher_remove.h5repack_fletcher.h5
+ ./testfiles/out-hlink.h5repack_hlink.h5
+ ./testfiles/out-chunk_18x13.h5repack_layout.h5
+ ./testfiles/out-chunk_20x10.h5repack_layout.h5
+ ./testfiles/out-chunk_compa.h5repack_layout.h5
+ ./testfiles/out-chunk_conti.h5repack_layout.h5
+ ./testfiles/out-compa.h5repack_layout.h5
+ ./testfiles/out-conti.h5repack_layout.h5
+ ./testfiles/out-deflate_file.h5repack_layout.h5
+ ./testfiles/out-deflate_limit.h5repack_layout.h5
+ ./testfiles/out-dset2_chunk_20x10.h5repack_layout.h5
+ ./testfiles/out-dset2_compa.h5repack_layout.h5
+ ./testfiles/out-dset2_conti.h5repack_layout.h5
+ ./testfiles/out-dset_compa_chunk.h5repack_layout.h5
+ ./testfiles/out-dset_compa_compa.h5repack_layout.h5
+ ./testfiles/out-dset_compa_conti.h5repack_layout.h5
+ ./testfiles/out-dset_conti_chunk.h5repack_layout.h5
+ ./testfiles/out-dset_conti_compa.h5repack_layout.h5
+ ./testfiles/out-dset_conti_conti.h5repack_layout.h5
+ ./testfiles/out-fletcher_all.h5repack_layout.h5
+ ./testfiles/out-fletcher_individual.h5repack_layout.h5
+ ./testfiles/out-global_filters.h5repack_layout.h5
+ ./testfiles/out-gzip_all.h5repack_layout.h5
+ ./testfiles/out-gzip_individual.h5repack_layout.h5
+ ./testfiles/out-layout.h5repack_layout.h5
+ ./testfiles/out-layout_long_switches.h5repack_layout.h5
+ ./testfiles/out-layout_short_switches.h5repack_layout.h5
+ ./testfiles/out-old_style_layout_short_switches.h5repack_layout.h5
+ ./testfiles/out-shuffle_all.h5repack_layout.h5
+ ./testfiles/out-shuffle_individual.h5repack_layout.h5
+ ./testfiles/out-upgrade_layout.h5repack_layouto.h5
+ ./testfiles/out-contig_small_compa.h5repack_layout2.h5
+ ./testfiles/out-contig_small_fixed_compa.h5repack_layout2.h5
+ ./testfiles/out-chunk2chunk.h5repack_layout3.h5
+ ./testfiles/out-chunk2compa.h5repack_layout3.h5
+ ./testfiles/out-chunk2conti.h5repack_layout3.h5
+ ./testfiles/out-error1.h5repack_layout3.h5
+ ./testfiles/out-error2.h5repack_layout3.h5
+ ./testfiles/out-error3.h5repack_layout3.h5
+ ./testfiles/out-error4.h5repack_layout3.h5
+ ./testfiles/out-committed_dt.h5repack_named_dtypes.h5
+ ./testfiles/out-nbit_add.h5repack_nbit.h5
+ ./testfiles/out-nbit_copy.h5repack_nbit.h5
+ ./testfiles/out-nbit_remove.h5repack_nbit.h5
+ ./testfiles/out-add_alignment.h5repack_objs.h5
+ ./testfiles/out-add_userblock.h5repack_objs.h5
+ ./testfiles/out-objs.h5repack_objs.h5
+ ./testfiles/out-gt_mallocsize.h5repack_objs.h5
+ ./testfiles/out-bug1814.h5repack_refs.h5
+ ./testfiles/out-shuffle_copy.h5repack_shuffle.h5
+ ./testfiles/out-shuffle_remove.h5repack_shuffle.h5
+ ./testfiles/out-scale_add.h5repack_soffset.h5
+ ./testfiles/out-scale_copy.h5repack_soffset.h5
+ ./testfiles/out-scale_remove.h5repack_soffset.h5
+ ./testfiles/out-meta_short_M.meta_short.h5
+ ./testfiles/out-meta_short_N.meta_short.h5
+ ./testfiles/out-meta_long_M.meta_long.h5
+ ./testfiles/out-meta_long_N.meta_long.h5
# from the h5repacktst
h5repack_attr.h5
h5repack_attr_out.h5
@@ -398,32 +512,6 @@ IF (BUILD_TESTING)
IF (NOT "${last_test}" STREQUAL "")
SET_TESTS_PROPERTIES (H5REPACK-clearall-objects PROPERTIES DEPENDS ${last_test})
ENDIF (NOT "${last_test}" STREQUAL "")
- SET (last_test "H5REPACK-clearall-objects")
-
- # --------------------------------------------------------------------
- # test file names
- # --------------------------------------------------------------------
- SET (INFO_FILE testfiles/h5repack.info)
-
- SET (FILE0 h5repack_fill.h5)
- SET (FILE1 h5repack_objs.h5)
- SET (FILE2 h5repack_attr.h5)
- SET (FILE3 h5repack_hlink.h5)
- SET (FILE4 h5repack_layout.h5)
- SET (FILE5 h5repack_early.h5)
- SET (FILE7 h5repack_szip.h5)
- SET (FILE8 h5repack_deflate.h5)
- SET (FILE9 h5repack_shuffle.h5)
- SET (FILE10 h5repack_fletcher.h5)
- SET (FILE11 h5repack_filters.h5)
- SET (FILE12 h5repack_nbit.h5)
- SET (FILE13 h5repack_soffset.h5)
- SET (FILE14 h5repack_layouto.h5 ) # A file with an older version of the layout message (copy of test/tlayouto.h5)
- SET (FILE15 h5repack_named_dtypes.h5)
- SET (FILE16 tfamily%05d.h5) # located in common testfiles folder
- SET (FILE18 h5repack_layout2.h5)
- SET (FILE_REF h5repack_refs.h5)
- SET (FILE_ATTR_REF h5repack_attr_refs.h5)
ADD_TEST (NAME H5REPACK-testh5repack_detect_szip COMMAND $<TARGET_FILE:testh5repack_detect_szip>)
IF (HDF5_ENABLE_SZIP_SUPPORT)
@@ -438,15 +526,10 @@ IF (BUILD_TESTING)
SET (passRegex "no")
SET_TESTS_PROPERTIES (H5REPACK-testh5repack_detect_szip PROPERTIES PASS_REGULAR_EXPRESSION "no")
ENDIF (HDF5_ENABLE_SZIP_SUPPORT)
- IF (NOT "${last_test}" STREQUAL "")
- SET_TESTS_PROPERTIES (H5REPACK-testh5repack_detect_szip PROPERTIES DEPENDS ${last_test})
- ENDIF (NOT "${last_test}" STREQUAL "")
- SET (last_test "H5REPACK-testh5repack_detect_szip")
+ SET_TESTS_PROPERTIES (H5REPACK-testh5repack_detect_szip PROPERTIES DEPENDS H5REPACK-clearall-objects)
ADD_TEST (NAME H5REPACK-h5repacktest COMMAND $<TARGET_FILE:h5repacktest>)
- IF (NOT "${last_test}" STREQUAL "")
- SET_TESTS_PROPERTIES (H5REPACK-h5repacktest PROPERTIES DEPENDS ${last_test})
- ENDIF (NOT "${last_test}" STREQUAL "")
+ SET_TESTS_PROPERTIES (H5REPACK-h5repacktest PROPERTIES DEPENDS H5REPACK-testh5repack_detect_szip)
SET (last_test "H5REPACK-h5repacktest")
#
@@ -740,47 +823,29 @@ IF (BUILD_TESTING)
#########################################################
# layout options (these files have no filters)
#########################################################
- ADD_H5_TEST (dset2_chunk_20x10 "TEST" ${FILE4} --layout=dset2:CHUNK=20x10)
- ADD_H5_VERIFY_TEST (dset2_chunk_20x10 "TEST" 0 ${FILE4} dset2 CHUNKED)
- ADD_H5_TEST (chunk_20x10 "TEST" ${FILE4} -l CHUNK=20x10)
- ADD_H5_VERIFY_TEST (chunk_20x10 "TEST" 1 ${FILE4} null CHUNKED)
- ADD_H5_TEST (dset2_conti "TEST" ${FILE4} -l dset2:CONTI)
- ADD_H5_VERIFY_TEST (dset2_conti "TEST" 0 ${FILE4} dset2 CONTIGUOUS)
- ADD_H5_TEST (conti "TEST" ${FILE4} -l CONTI)
- ADD_H5_VERIFY_TEST (conti "TEST" 1 ${FILE4} null CONTIGUOUS)
- ADD_H5_TEST (dset2_compa "TEST" ${FILE4} -l dset2:COMPA)
- ADD_H5_VERIFY_TEST (dset2_compa "TEST" 0 ${FILE4} dset2 COMPACT)
- ADD_H5_TEST (compa "TEST" ${FILE4} -l COMPA)
- ADD_H5_VERIFY_TEST (compa "TEST" 1 ${FILE4} null COMPACT)
+ ADD_H5_VERIFY_TEST (dset2_chunk_20x10 "TEST" 0 ${FILE4} dset2 CHUNKED --layout=dset2:CHUNK=20x10)
+ ADD_H5_VERIFY_TEST (chunk_20x10 "TEST" 1 ${FILE4} null CHUNKED -l CHUNK=20x10)
+ ADD_H5_VERIFY_TEST (dset2_conti "TEST" 0 ${FILE4} dset2 CONTIGUOUS -l dset2:CONTI)
+ ADD_H5_VERIFY_TEST (conti "TEST" 1 ${FILE4} null CONTIGUOUS -l CONTI)
+ ADD_H5_VERIFY_TEST (dset2_compa "TEST" 0 ${FILE4} dset2 COMPACT -l dset2:COMPA)
+ ADD_H5_VERIFY_TEST (compa "TEST" 1 ${FILE4} null COMPACT -l COMPA)
################################################################
# layout conversions (file has no filters)
###############################################################
- ADD_H5_TEST (dset_compa_conti "TEST" ${FILE4} -l dset_compact:CONTI)
- ADD_H5_VERIFY_TEST (dset_compa_conti "TEST" 0 ${FILE4} dset_compact CONTIGUOUS)
- ADD_H5_TEST (dset_compa_chunk "TEST" ${FILE4} -l dset_compact:CHUNK=2x5)
- ADD_H5_VERIFY_TEST (dset_compa_chunk "TEST" 0 ${FILE4} dset_compact CHUNKED)
- ADD_H5_TEST (dset_compa_compa "TEST" ${FILE4} -l dset_compact:COMPA)
- ADD_H5_VERIFY_TEST (dset_compa_compa "TEST" 0 ${FILE4} dset_compact COMPACT)
- ADD_H5_TEST (dset_conti_compa "TEST" ${FILE4} -l dset_contiguous:COMPA)
- ADD_H5_VERIFY_TEST (dset_conti_compa "TEST" 0 ${FILE4} dset_contiguous COMPACT)
- ADD_H5_TEST (dset_conti_chunk "TEST" ${FILE4} -l dset_contiguous:CHUNK=3x6)
- ADD_H5_VERIFY_TEST (dset_conti_chunk "TEST" 0 ${FILE4} dset_contiguous CHUNKED)
- ADD_H5_TEST (dset_conti_conti "TEST" ${FILE4} -l dset_contiguous:CONTI)
- ADD_H5_VERIFY_TEST (dset_conti_conti "TEST" 0 ${FILE4} dset_contiguous CONTIGUOUS)
- ADD_H5_TEST (chunk_compa "TEST" ${FILE4} -l dset_chunk:COMPA)
- ADD_H5_VERIFY_TEST (chunk_compa "TEST" 0 ${FILE4} dset_chunk COMPACT)
- ADD_H5_TEST (chunk_conti "TEST" ${FILE4} -l dset_chunk:CONTI)
- ADD_H5_VERIFY_TEST (chunk_conti "TEST" 0 ${FILE4} dset_chunk CONTIGUOUS)
- ADD_H5_TEST (chunk_18x13 "TEST" ${FILE4} -l dset_chunk:CHUNK=18x13)
- ADD_H5_VERIFY_TEST (chunk_18x13 "TEST" 0 ${FILE4} dset_chunk CHUNKED)
+ ADD_H5_VERIFY_TEST (dset_compa_conti "TEST" 0 ${FILE4} dset_compact CONTIGUOUS -l dset_compact:CONTI)
+ ADD_H5_VERIFY_TEST (dset_compa_chunk "TEST" 0 ${FILE4} dset_compact CHUNKED -l dset_compact:CHUNK=2x5)
+ ADD_H5_VERIFY_TEST (dset_compa_compa "TEST" 0 ${FILE4} dset_compact COMPACT -l dset_compact:COMPA)
+ ADD_H5_VERIFY_TEST (dset_conti_compa "TEST" 0 ${FILE4} dset_contiguous COMPACT -l dset_contiguous:COMPA)
+ ADD_H5_VERIFY_TEST (dset_conti_chunk "TEST" 0 ${FILE4} dset_contiguous CHUNKED -l dset_contiguous:CHUNK=3x6)
+ ADD_H5_VERIFY_TEST (dset_conti_conti "TEST" 0 ${FILE4} dset_contiguous CONTIGUOUS -l dset_contiguous:CONTI)
+ ADD_H5_VERIFY_TEST (chunk_compa "TEST" 0 ${FILE4} dset_chunk COMPACT -l dset_chunk:COMPA)
+ ADD_H5_VERIFY_TEST (chunk_conti "TEST" 0 ${FILE4} dset_chunk CONTIGUOUS -l dset_chunk:CONTI)
+ ADD_H5_VERIFY_TEST (chunk_18x13 "TEST" 0 ${FILE4} dset_chunk CHUNKED -l dset_chunk:CHUNK=18x13)
# test convert small size dataset ( < 1k) to compact layout without -m
- ADD_H5_TEST (contig_small_compa "TEST" ${FILE18} -l contig_small:COMPA)
- ADD_H5_VERIFY_TEST (contig_small_compa "TEST" 0 ${FILE18} contig_small COMPACT)
-
- ADD_H5_TEST (contig_small_fixed_compa "TEST" ${FILE18} -l chunked_small_fixed:COMPA)
- ADD_H5_VERIFY_TEST (contig_small_fixed_compa "TEST" 0 ${FILE18} chunked_small_fixed COMPACT)
+ ADD_H5_VERIFY_TEST (contig_small_compa "TEST" 0 ${FILE18} contig_small COMPACT -l contig_small:COMPA)
+ ADD_H5_VERIFY_TEST (contig_small_fixed_compa "TEST" 0 ${FILE18} chunked_small_fixed COMPACT -l chunked_small_fixed:COMPA)
#---------------------------------------------------------------------------
# Test file contains chunked datasets (need multiple dsets) with
@@ -788,17 +853,14 @@ IF (BUILD_TESTING)
# Use first dset to test.
#---------------------------------------------------------------------------
# chunk to chunk - specify chunk dim bigger than any current dim
-ADD_H5_TEST (chunk2chunk "TEST" h5repack_layout3.h5 -l chunk_unlimit1:CHUNK=100x300)
-ADD_H5_VERIFY_TEST (chunk2chunk "TEST" 0 h5repack_layout3.h5 chunk_unlimit1 CHUNK)
+ADD_H5_VERIFY_TEST (chunk2chunk "TEST" 0 h5repack_layout3.h5 chunk_unlimit1 CHUNK -l chunk_unlimit1:CHUNK=100x300)
# chunk to contiguous
-ADD_H5_TEST (chunk2conti "TEST" h5repack_layout3.h5 -l chunk_unlimit1:CONTI)
-ADD_H5_VERIFY_TEST (chunk2conti "TEST" 0 h5repack_layout3.h5 chunk_unlimit1 CONTI)
+ADD_H5_VERIFY_TEST (chunk2conti "TEST" 0 h5repack_layout3.h5 chunk_unlimit1 CONTI -l chunk_unlimit1:CONTI)
# chunk to compact - convert big dataset (should be > 64k) for this purpose,
# should remain as original layout (chunk)
-ADD_H5_TEST (chunk2compa "TEST" h5repack_layout3.h5 -l chunk_unlimit1:COMPA)
-ADD_H5_VERIFY_TEST (chunk2compa "TEST" 0 h5repack_layout3.h5 chunk_unlimit1 CHUNK)
+ADD_H5_VERIFY_TEST (chunk2compa "TEST" 0 h5repack_layout3.h5 chunk_unlimit1 CHUNK -l chunk_unlimit1:COMPA)
#--------------------------------------------------------------------------
# Test -f for some specific cases. Chunked dataset with unlimited max dims.
@@ -808,16 +870,13 @@ ADD_H5_VERIFY_TEST (chunk2compa "TEST" 0 h5repack_layout3.h5 chunk_unlimit1 CHUN
# - should not change max dims from unlimit
# chunk dim is bigger than dataset dim. ( dset size < 64k )
-ADD_H5_TEST (error1 "TEST" h5repack_layout3.h5 -f chunk_unlimit1:NONE)
-ADD_H5_VERIFY_TEST (error1 "TEST" 0 h5repack_layout3.h5 chunk_unlimit1 H5S_UNLIMITED)
+ADD_H5_VERIFY_TEST (error1 "TEST" 0 h5repack_layout3.h5 chunk_unlimit1 H5S_UNLIMITED -f chunk_unlimit1:NONE)
# chunk dim is bigger than dataset dim. ( dset size > 64k )
-ADD_H5_TEST (error2 "TEST" h5repack_layout3.h5 -f chunk_unlimit2:NONE)
-ADD_H5_VERIFY_TEST (error2 "TEST" 0 h5repack_layout3.h5 chunk_unlimit2 H5S_UNLIMITED)
+ADD_H5_VERIFY_TEST (error2 "TEST" 0 h5repack_layout3.h5 chunk_unlimit2 H5S_UNLIMITED -f chunk_unlimit2:NONE)
# chunk dims are smaller than dataset dims. ( dset size < 64k )
-ADD_H5_TEST (error3 "TEST" h5repack_layout3.h5 -f chunk_unlimit3:NONE)
-ADD_H5_VERIFY_TEST (error3 "TEST" 0 h5repack_layout3.h5 chunk_unlimit3 H5S_UNLIMITED)
+ADD_H5_VERIFY_TEST (error3 "TEST" 0 h5repack_layout3.h5 chunk_unlimit3 H5S_UNLIMITED -f chunk_unlimit3:NONE)
# file input - should not fail
ADD_H5_TEST (error4 "TEST" h5repack_layout3.h5 -f NONE)
@@ -829,22 +888,20 @@ ADD_H5_TEST (error4 "TEST" h5repack_layout3.h5 -f NONE)
ADD_H5_TEST (native_attr "TEST" ${FILE2} -n)
# latest file format with long switches. use FILE4=h5repack_layout.h5 (no filters)
- SET (arg ${FILE4} --layout CHUNK=20x10 --filter GZIP=1 --minimum=10 --native --latest --compact=8 --indexed=6 --ssize=8[:dtype])
+ SET (arg --layout CHUNK=20x10 --filter GZIP=1 --minimum=10 --native --latest --compact=8 --indexed=6 --ssize=8[:dtype])
SET (TESTTYPE "TEST")
IF (NOT USE_FILTER_DEFLATE)
SET (TESTTYPE "SKIP")
ENDIF (NOT USE_FILTER_DEFLATE)
- ADD_H5_TEST (layout_long_switches ${TESTTYPE} ${arg})
- ADD_H5_VERIFY_TEST (layout_long_switches ${TESTTYPE} 1 ${FILE4} null CHUNKED)
+ ADD_H5_VERIFY_TEST (layout_long_switches ${TESTTYPE} 1 ${FILE4} null CHUNKED ${arg})
# latest file format with short switches. use FILE4=h5repack_layout.h5 (no filters)
- SET (arg ${FILE4} -l CHUNK=20x10 -f GZIP=1 -m 10 -n -L -c 8 -d 6 -s 8[:dtype])
+ SET (arg -l CHUNK=20x10 -f GZIP=1 -m 10 -n -L -c 8 -d 6 -s 8[:dtype])
SET (TESTTYPE "TEST")
IF (NOT USE_FILTER_DEFLATE)
SET (TESTTYPE "SKIP")
ENDIF (NOT USE_FILTER_DEFLATE)
- ADD_H5_TEST (layout_short_switches ${TESTTYPE} ${arg})
- ADD_H5_VERIFY_TEST (layout_short_switches ${TESTTYPE} 1 ${FILE4} null CHUNKED)
+ ADD_H5_VERIFY_TEST (layout_short_switches ${TESTTYPE} 1 ${FILE4} null CHUNKED ${arg})
# several global filters
SET (arg ${FILE4} --filter GZIP=1 --filter SHUF)
diff --git a/tools/h5stat/CMakeLists.txt b/tools/h5stat/CMakeLists.txt
index 9afb365..447df70 100644
--- a/tools/h5stat/CMakeLists.txt
+++ b/tools/h5stat/CMakeLists.txt
@@ -99,10 +99,9 @@ IF (BUILD_TESTING)
IF (NOT "${last_test}" STREQUAL "")
SET_TESTS_PROPERTIES (H5STAT-${resultfile} PROPERTIES DEPENDS ${last_test})
ENDIF (NOT "${last_test}" STREQUAL "")
- SET (last_test "H5STAT-${resultfile}")
ELSE (HDF5_ENABLE_USING_MEMCHECKER)
ADD_TEST (
- NAME H5STAT-clear-${resultfile}-objects
+ NAME H5STAT-${resultfile}-clear-objects
COMMAND ${CMAKE_COMMAND}
-E remove ${resultfile}.out ${resultfile}.out.err
)
@@ -117,7 +116,7 @@ IF (BUILD_TESTING)
-D "TEST_REFERENCE=${resultfile}.ddl"
-P "${HDF5_RESOURCES_DIR}/runTest.cmake"
)
- SET_TESTS_PROPERTIES (H5STAT-${resultfile} PROPERTIES DEPENDS "H5STAT-clear-${resultfile}-objects")
+ SET_TESTS_PROPERTIES (H5STAT-${resultfile} PROPERTIES DEPENDS "H5STAT-${resultfile}-clear-objects")
ENDIF (HDF5_ENABLE_USING_MEMCHECKER)
ENDMACRO (ADD_H5_TEST file)
diff --git a/tools/lib/h5tools.c b/tools/lib/h5tools.c
index a0288a0..217ef06 100644
--- a/tools/lib/h5tools.c
+++ b/tools/lib/h5tools.c
@@ -36,6 +36,7 @@ hid_t H5tools_ERR_CLS_g = -1;
hid_t H5E_tools_g = -1;
hid_t H5E_tools_min_id_g = -1;
int compound_data;
+FILE *rawattrstream; /* should initialize to stdout but gcc moans about it */
FILE *rawdatastream; /* should initialize to stdout but gcc moans about it */
FILE *rawoutstream; /* should initialize to stdout but gcc moans about it */
FILE *rawerrorstream; /* should initialize to stderr but gcc moans about it */
@@ -115,6 +116,8 @@ h5tools_init(void)
H5tools_ERR_STACK_g = H5Ecreate_stack();
H5TOOLS_INIT_ERROR()
+ if (!rawattrstream)
+ rawattrstream = stdout;
if (!rawdatastream)
rawdatastream = stdout;
if (!rawoutstream)
@@ -150,9 +153,19 @@ h5tools_close(void)
H5E_auto2_t tools_func;
void *tools_edata;
if (h5tools_init_g) {
+ /* special case where only data is output to stdout */
+ if((rawoutstream == NULL) && rawdatastream && (rawdatastream == stdout))
+ HDfprintf(rawdatastream, "\n");
+
H5Eget_auto2(H5tools_ERR_STACK_g, &tools_func, &tools_edata);
if(tools_func!=NULL)
H5Eprint2(H5tools_ERR_STACK_g, rawerrorstream);
+ if (rawattrstream && rawattrstream != stdout) {
+ if (fclose(rawattrstream))
+ perror("closing rawattrstream");
+ else
+ rawattrstream = NULL;
+ }
if (rawdatastream && rawdatastream != stdout) {
if (fclose(rawdatastream))
perror("closing rawdatastream");
@@ -569,6 +582,9 @@ h5tools_simple_prefix(FILE *stream, const h5tool_format_t *info,
size_t templength = 0;
int i, indentlevel = 0;
+ if (stream == NULL)
+ return;
+
if (!ctx->need_prefix)
return;
@@ -577,9 +593,9 @@ h5tools_simple_prefix(FILE *stream, const h5tool_format_t *info,
/* Terminate previous line, if any */
if (ctx->cur_column) {
- HDfputs(OPT(info->line_suf, ""), stream);
+ PUTSTREAM(OPT(info->line_suf, ""), stream);
HDputc('\n', stream);
- HDfputs(OPT(info->line_sep, ""), stream);
+ PUTSTREAM(OPT(info->line_sep, ""), stream);
}
/* Calculate new prefix */
@@ -603,23 +619,26 @@ h5tools_simple_prefix(FILE *stream, const h5tool_format_t *info,
the prefix is printed one indentation level before */
if (info->pindex) {
for (i = 0; i < indentlevel - 1; i++) {
- HDfputs(h5tools_str_fmt(&str, 0, info->line_indent), stream);
+ PUTSTREAM(h5tools_str_fmt(&str, 0, info->line_indent), stream);
}
}
- if (elmtno == 0 && secnum == 0 && info->line_1st)
- HDfputs(h5tools_str_fmt(&prefix, 0, info->line_1st), stream);
- else if (secnum && info->line_cont)
- HDfputs(h5tools_str_fmt(&prefix, 0, info->line_cont), stream);
- else
- HDfputs(h5tools_str_fmt(&prefix, 0, info->line_pre), stream);
+ if (elmtno == 0 && secnum == 0 && info->line_1st) {
+ PUTSTREAM(h5tools_str_fmt(&prefix, 0, info->line_1st), stream);
+ }
+ else if (secnum && info->line_cont) {
+ PUTSTREAM(h5tools_str_fmt(&prefix, 0, info->line_cont), stream);
+ }
+ else {
+ PUTSTREAM(h5tools_str_fmt(&prefix, 0, info->line_pre), stream);
+ }
templength = h5tools_str_len(&prefix);
for (i = 0; i < indentlevel; i++) {
/*we already made the indent for the array indices case */
if (!info->pindex) {
- HDfputs(h5tools_str_fmt(&prefix, 0, info->line_indent), stream);
+ PUTSTREAM(h5tools_str_fmt(&prefix, 0, info->line_indent), stream);
templength += h5tools_str_len(&prefix);
}
else {
@@ -658,6 +677,9 @@ h5tools_region_simple_prefix(FILE *stream, const h5tool_format_t *info,
size_t templength = 0;
int i, indentlevel = 0;
+ if (stream == NULL)
+ return;
+
if (!ctx->need_prefix)
return;
@@ -666,9 +688,9 @@ h5tools_region_simple_prefix(FILE *stream, const h5tool_format_t *info,
/* Terminate previous line, if any */
if (ctx->cur_column) {
- HDfputs(OPT(info->line_suf, ""), stream);
+ PUTSTREAM(OPT(info->line_suf, ""), stream);
HDputc('\n', stream);
- HDfputs(OPT(info->line_sep, ""), stream);
+ PUTSTREAM(OPT(info->line_sep, ""), stream);
}
/* Calculate new prefix */
@@ -692,23 +714,26 @@ h5tools_region_simple_prefix(FILE *stream, const h5tool_format_t *info,
the prefix is printed one indentation level before */
if (info->pindex) {
for (i = 0; i < indentlevel - 1; i++) {
- HDfputs(h5tools_str_fmt(&str, 0, info->line_indent), stream);
+ PUTSTREAM(h5tools_str_fmt(&str, 0, info->line_indent), stream);
}
}
- if (elmtno == 0 && secnum == 0 && info->line_1st)
- HDfputs(h5tools_str_fmt(&prefix, 0, info->line_1st), stream);
- else if (secnum && info->line_cont)
- HDfputs(h5tools_str_fmt(&prefix, 0, info->line_cont), stream);
- else
- HDfputs(h5tools_str_fmt(&prefix, 0, info->line_pre), stream);
+ if (elmtno == 0 && secnum == 0 && info->line_1st) {
+ PUTSTREAM(h5tools_str_fmt(&prefix, 0, info->line_1st), stream);
+ }
+ else if (secnum && info->line_cont) {
+ PUTSTREAM(h5tools_str_fmt(&prefix, 0, info->line_cont), stream);
+ }
+ else {
+ PUTSTREAM(h5tools_str_fmt(&prefix, 0, info->line_pre), stream);
+ }
templength = h5tools_str_len(&prefix);
for (i = 0; i < indentlevel; i++) {
/*we already made the indent for the array indices case */
if (!info->pindex) {
- HDfputs(h5tools_str_fmt(&prefix, 0, info->line_indent), stream);
+ PUTSTREAM(h5tools_str_fmt(&prefix, 0, info->line_indent), stream);
templength += h5tools_str_len(&prefix);
}
else {
@@ -762,6 +787,9 @@ h5tools_render_element(FILE *stream, const h5tool_format_t *info,
int secnum; /*section sequence number */
int multiline; /*datum was multiline */
+ if (stream == NULL)
+ return dimension_break;
+
s = h5tools_str_fmt(buffer, 0, "%s");
/*
@@ -866,12 +894,12 @@ h5tools_render_element(FILE *stream, const h5tool_format_t *info,
h5tools_simple_prefix(stream, info, ctx, *curr_pos, secnum);
}
else if ((local_elmt_counter || ctx->continuation) && secnum == 0) {
- HDfputs(OPT(info->elmt_suf2, " "), stream);
+ PUTSTREAM(OPT(info->elmt_suf2, " "), stream);
ctx->cur_column += HDstrlen(OPT(info->elmt_suf2, " "));
}
/* Print the section */
- HDfputs(section, stream);
+ PUTSTREAM(section, stream);
ctx->cur_column += HDstrlen(section);
}
@@ -1022,12 +1050,12 @@ h5tools_render_region_element(FILE *stream, const h5tool_format_t *info,
h5tools_region_simple_prefix(stream, info, ctx, local_elmt_counter, ptdata, secnum);
}
else if ((local_elmt_counter || ctx->continuation) && secnum == 0) {
- HDfputs(OPT(info->elmt_suf2, " "), stream);
+ PUTSTREAM(OPT(info->elmt_suf2, " "), stream);
ctx->cur_column += HDstrlen(OPT(info->elmt_suf2, " "));
}
/* Print the section */
- HDfputs(section, stream);
+ PUTSTREAM(section, stream);
ctx->cur_column += HDstrlen(section);
}
@@ -1212,7 +1240,8 @@ render_bin_output(FILE *stream, hid_t container, hid_t tid, void *_mem, hsize_t
break;
case H5T_REFERENCE:
{
- if (H5Tequal(tid, H5T_STD_REF_DSETREG)) {
+ if (size == H5R_DSET_REG_REF_BUF_SIZE) {
+ /* if (H5Tequal(tid, H5T_STD_REF_DSETREG)) */
if (region_output) {
/* region data */
hid_t region_id, region_space;
@@ -1236,7 +1265,8 @@ render_bin_output(FILE *stream, hid_t container, hid_t tid, void *_mem, hsize_t
}
} /* end if (region_output... */
}
- else if (H5Tequal(tid, H5T_STD_REF_OBJ)) {
+ else if (size == H5R_OBJ_REF_BUF_SIZE) {
+ /* if (H5Tequal(tid, H5T_STD_REF_OBJ)) */
;
}
}
diff --git a/tools/lib/h5tools.h b/tools/lib/h5tools.h
index 4fbd84f..efadba4 100644
--- a/tools/lib/h5tools.h
+++ b/tools/lib/h5tools.h
@@ -36,6 +36,12 @@
#define H5TOOLS_DUMP_MAX_RANK H5S_MAX_RANK
+/* Stream macros */
+#define FLUSHSTREAM(S) if(S != NULL) HDfflush(S)
+#define PRINTSTREAM(S, F, ...) if(S != NULL) HDfprintf(S, F, __VA_ARGS__)
+#define PRINTVALSTREAM(S, V) if(S != NULL) HDfprintf(S, V)
+#define PUTSTREAM(X,S) if(S != NULL) HDfputs(X, S);
+
/*
* Strings for output - these were duplicated from the h5dump.h
* file in order to support region reference data display
@@ -524,6 +530,7 @@ H5TOOLS_DLLVAR int packed_bits_num; /* number of packed bits to display
H5TOOLS_DLLVAR int packed_data_offset; /* offset of packed bits to display */
H5TOOLS_DLLVAR int packed_data_length; /* lengtht of packed bits to display */
H5TOOLS_DLLVAR unsigned long long packed_data_mask; /* mask in which packed bits to display */
+H5TOOLS_DLLVAR FILE *rawattrstream; /* output stream for raw attribute data */
H5TOOLS_DLLVAR FILE *rawdatastream; /* output stream for raw data */
H5TOOLS_DLLVAR FILE *rawoutstream; /* output stream for raw output */
H5TOOLS_DLLVAR FILE *rawerrorstream; /* output stream for raw error */
diff --git a/tools/lib/h5tools_dump.c b/tools/lib/h5tools_dump.c
index a940d9c..e2fc387 100644
--- a/tools/lib/h5tools_dump.c
+++ b/tools/lib/h5tools_dump.c
@@ -283,9 +283,9 @@ h5tools_dump_simple_data(FILE *stream, const h5tool_format_t *info, hid_t contai
*to the ctx->size_last_dim. */
/* binary dump */
- if (bin_output) {
+ if (bin_output && (rawdatastream != NULL)) {
if (render_bin_output(rawdatastream, container, type, _mem, nelmts) < 0) {
- HDfprintf(rawoutstream,"\nError in writing binary stream\n");
+ PRINTVALSTREAM(rawoutstream, "\nError in writing binary stream\n");
}
} /* end if */
else {
@@ -302,7 +302,7 @@ h5tools_dump_simple_data(FILE *stream, const h5tool_format_t *info, hid_t contai
*/
curr_pos = ctx->sm_pos;
- if (region_output && H5Tequal(type, H5T_STD_REF_DSETREG)) {
+ if (region_output && (size == H5R_DSET_REG_REF_BUF_SIZE)) {
for (i = 0; i < nelmts; i++, ctx->cur_elmt++, elmt_counter++) {
void* memref = mem + i * size;
char ref_name[1024];
@@ -1834,7 +1834,7 @@ h5tools_dump_mem(FILE *stream, const h5tool_format_t *info, h5tools_context_t *c
if (H5Sis_simple(space) <= 0)
H5E_THROW(FAIL, H5E_tools_min_id_g, "H5Sis_simple failed")
- H5_LEAVE(h5tools_dump_simple_mem(stream, info, ctx, obj_id, type, space, mem))
+ H5_LEAVE(h5tools_dump_simple_mem(rawattrstream, info, ctx, obj_id, type, space, mem))
CATCH
return ret_value;
diff --git a/tools/lib/h5tools_str.c b/tools/lib/h5tools_str.c
index 9ce3524..d9dd74f 100644
--- a/tools/lib/h5tools_str.c
+++ b/tools/lib/h5tools_str.c
@@ -685,7 +685,8 @@ char *
h5tools_str_sprint(h5tools_str_t *str, const h5tool_format_t *info, hid_t container,
hid_t type, void *vp, h5tools_context_t *ctx)
{
- size_t n, offset, size=0, nelmts, start;
+ size_t nsize, offset, size=0, nelmts, start;
+ H5T_sign_t nsign;
char *name;
unsigned char *ucp_vp = (unsigned char *)vp;
char *cp_vp = (char *)vp;
@@ -715,15 +716,16 @@ h5tools_str_sprint(h5tools_str_t *str, const h5tool_format_t *info, hid_t contai
/* Append value depending on data type */
start = h5tools_str_len(str);
+ nsize = H5Tget_size(type);
+ nsign = H5Tget_sign(type);
if (info->raw) {
size_t i;
- n = H5Tget_size(type);
- if (1 == n) {
+ if (1 == nsize) {
h5tools_str_append(str, OPT(info->fmt_raw, "0x%02x"), ucp_vp[0]);
}
else {
- for (i = 0; i < n; i++) {
+ for (i = 0; i < nsize; i++) {
if (i)
h5tools_str_append(str, ":");
h5tools_str_append(str, OPT(info->fmt_raw, "%02x"), ucp_vp[i]);
@@ -735,20 +737,23 @@ h5tools_str_sprint(h5tools_str_t *str, const h5tool_format_t *info, hid_t contai
return NULL;
switch (type_class) {
case H5T_FLOAT:
- if (H5Tequal(type, H5T_NATIVE_FLOAT)) {
+ if (sizeof(float) == nsize) {
+ /* if (H5Tequal(type, H5T_NATIVE_FLOAT)) */
float tempfloat;
HDmemcpy(&tempfloat, vp, sizeof(float));
h5tools_str_append(str, OPT(info->fmt_float, "%g"), tempfloat);
}
- else if (H5Tequal(type, H5T_NATIVE_DOUBLE)) {
+ else if (sizeof(double) == nsize) {
+ /* if (H5Tequal(type, H5T_NATIVE_DOUBLE)) */
double tempdouble;
HDmemcpy(&tempdouble, vp, sizeof(double));
h5tools_str_append(str, OPT(info->fmt_double, "%g"), tempdouble);
#if H5_SIZEOF_LONG_DOUBLE !=0
}
- else if (H5Tequal(type, H5T_NATIVE_LDOUBLE)) {
+ else if (sizeof(long double) == nsize) {
+ /* if (H5Tequal(type, H5T_NATIVE_LDOUBLE)) */
long double templdouble;
HDmemcpy(&templdouble, vp, sizeof(long double));
@@ -833,147 +838,140 @@ h5tools_str_sprint(h5tools_str_t *str, const h5tool_format_t *info, hid_t contai
}
break;
case H5T_INTEGER:
- if (H5Tequal(type, H5T_NATIVE_INT)) {
- HDmemcpy(&tempint, vp, sizeof(int));
- if (packed_bits_num) {
- if (packed_data_offset >= 8 * sizeof(int))
- tempint = 0;
- else
- tempint = (tempint >> packed_data_offset) & packed_data_mask;
- }
- h5tools_str_append(str, OPT(info->fmt_int, "%d"), tempint);
- }
- else if (H5Tequal(type, H5T_NATIVE_UINT)) {
- HDmemcpy(&tempuint, vp, sizeof(unsigned int));
- if (packed_bits_num) {
- if (packed_data_offset >= 8 * sizeof(unsigned int))
- tempuint = 0;
- else
- tempuint = (tempuint >> packed_data_offset) & packed_data_mask;
- }
- h5tools_str_append(str, OPT(info->fmt_uint, "%u"), tempuint);
- }
- else if (info->ascii && (H5Tequal(type, H5T_NATIVE_SCHAR) || H5Tequal(type, H5T_NATIVE_UCHAR))) {
- h5tools_print_char(str, info, (char) (*ucp_vp));
- }
- else if (H5Tequal(type, H5T_NATIVE_SCHAR)) {
- signed char tempchar;
- HDmemcpy(&tempchar, cp_vp, sizeof(char));
- if (packed_bits_num) {
- if (packed_data_offset >= 8 * sizeof(char))
- tempchar = 0;
- else
- tempchar = (tempchar >> packed_data_offset) & packed_data_mask;
- }
-#ifdef H5_VMS
- h5tools_str_append(str, OPT(info->fmt_schar, "%hd"), tempchar);
-#else
- h5tools_str_append(str, OPT(info->fmt_schar, "%hhd"), tempchar);
-#endif
- }
- else if (H5Tequal(type, H5T_NATIVE_UCHAR)) {
- unsigned char tempuchar;
- HDmemcpy(&tempuchar, ucp_vp, sizeof(unsigned char));
- if (packed_bits_num) {
- if (packed_data_offset >= 8 * sizeof(unsigned char))
- tempuchar = 0;
- else
- tempuchar = (tempuchar >> packed_data_offset) & packed_data_mask;
- }
- h5tools_str_append(str, OPT(info->fmt_uchar, "%u"), tempuchar);
- }
- else if (H5Tequal(type, H5T_NATIVE_SHORT)) {
- short tempshort;
-
- HDmemcpy(&tempshort, vp, sizeof(short));
- if (packed_bits_num) {
- if (packed_data_offset >= 8 * sizeof(short))
- tempshort = 0;
- else
- tempshort = (tempshort >> packed_data_offset) & packed_data_mask;
- }
- h5tools_str_append(str, OPT(info->fmt_short, "%d"), tempshort);
- }
- else if (H5Tequal(type, H5T_NATIVE_USHORT)) {
- unsigned short tempushort;
-
- HDmemcpy(&tempushort, vp, sizeof(unsigned short));
- if (packed_bits_num) {
- if (packed_data_offset >= 8 * sizeof(unsigned short))
- tempushort = 0;
- else
- tempushort = (tempushort >> packed_data_offset) & packed_data_mask;
- }
- h5tools_str_append(str, OPT(info->fmt_ushort, "%u"), tempushort);
- }
- else if (H5Tequal(type, H5T_NATIVE_LONG)) {
- HDmemcpy(&templong, vp, sizeof(long));
- if (packed_bits_num) {
- if (packed_data_offset >= 8 * sizeof(long))
- templong = 0;
- else
- templong = (templong >> packed_data_offset) & packed_data_mask;
+ if (sizeof(char) == nsize) {
+ /* if ((H5Tequal(type, H5T_NATIVE_SCHAR) || H5Tequal(type, H5T_NATIVE_UCHAR))) */
+ if (info->ascii) {
+ h5tools_print_char(str, info, (char) (*ucp_vp));
}
- h5tools_str_append(str, OPT(info->fmt_long, "%ld"), templong);
- }
- else if (H5Tequal(type, H5T_NATIVE_ULONG)) {
- HDmemcpy(&tempulong, vp, sizeof(unsigned long));
- if (packed_bits_num) {
- if (packed_data_offset >= 8 * sizeof(unsigned long))
- tempulong = 0;
- else
- tempulong = (tempulong >> packed_data_offset) & packed_data_mask;
+ else if(H5T_SGN_NONE == nsign) {
+ /* if (H5Tequal(type, H5T_NATIVE_UCHAR)) */
+ unsigned char tempuchar;
+ HDmemcpy(&tempuchar, ucp_vp, sizeof(unsigned char));
+ if (packed_bits_num) {
+ if (packed_data_offset >= 8 * sizeof(unsigned char))
+ tempuchar = 0;
+ else
+ tempuchar = (tempuchar >> packed_data_offset) & packed_data_mask;
+ }
+ h5tools_str_append(str, OPT(info->fmt_uchar, "%u"), tempuchar);
}
- h5tools_str_append(str, OPT(info->fmt_ulong, "%lu"), tempulong);
- }
- else if (H5Tequal(type, H5T_NATIVE_LLONG)) {
- HDmemcpy(&templlong, vp, sizeof(long long));
- if (packed_bits_num) {
- if (packed_data_offset >= 8 * sizeof(long long))
- templlong = 0;
- else
- templlong = (templlong >> packed_data_offset) & packed_data_mask;
+ else {
+ /* if (H5Tequal(type, H5T_NATIVE_SCHAR)) */
+ signed char tempchar;
+ HDmemcpy(&tempchar, cp_vp, sizeof(char));
+ if (packed_bits_num) {
+ if (packed_data_offset >= 8 * sizeof(char))
+ tempchar = 0;
+ else
+ tempchar = (tempchar >> packed_data_offset) & packed_data_mask;
+ }
+ #ifdef H5_VMS
+ h5tools_str_append(str, OPT(info->fmt_schar, "%hd"), tempchar);
+ #else
+ h5tools_str_append(str, OPT(info->fmt_schar, "%hhd"), tempchar);
+ #endif
}
- h5tools_str_append(str, OPT(info->fmt_llong, fmt_llong), templlong);
- }
- else if (H5Tequal(type, H5T_NATIVE_ULLONG)) {
- HDmemcpy(&tempullong, vp, sizeof(unsigned long long));
- if (packed_bits_num) {
- if (packed_data_offset >= 8 * sizeof(unsigned long long))
- tempullong = 0;
- else
- tempullong = (tempullong >> packed_data_offset) & packed_data_mask;
+ } /* end if (sizeof(char) == nsize) */
+ else if (sizeof(int) == nsize) {
+ if(H5T_SGN_NONE == nsign) {
+ /* if (H5Tequal(type, H5T_NATIVE_UINT)) */
+ HDmemcpy(&tempuint, vp, sizeof(unsigned int));
+ if (packed_bits_num) {
+ if (packed_data_offset >= 8 * sizeof(unsigned int))
+ tempuint = 0;
+ else
+ tempuint = (tempuint >> packed_data_offset) & packed_data_mask;
+ }
+ h5tools_str_append(str, OPT(info->fmt_uint, "%u"), tempuint);
}
- h5tools_str_append(str, OPT(info->fmt_ullong, fmt_ullong), tempullong);
- }
- else if (H5Tequal(type, H5T_NATIVE_HSSIZE)) {
- if (sizeof(hssize_t) == sizeof(int)) {
+ else {
+ /* if (H5Tequal(type, H5T_NATIVE_INT)) */
HDmemcpy(&tempint, vp, sizeof(int));
+ if (packed_bits_num) {
+ if (packed_data_offset >= 8 * sizeof(int))
+ tempint = 0;
+ else
+ tempint = (tempint >> packed_data_offset) & packed_data_mask;
+ }
h5tools_str_append(str, OPT(info->fmt_int, "%d"), tempint);
}
- else if (sizeof(hssize_t) == sizeof(long)) {
- HDmemcpy(&templong, vp, sizeof(long));
- h5tools_str_append(str, OPT(info->fmt_long, "%ld"), templong);
+ } /* end if (sizeof(int) == nsize) */
+ else if (sizeof(short) == nsize) {
+ if(H5T_SGN_NONE == nsign) {
+ /* if (H5Tequal(type, H5T_NATIVE_USHORT)) */
+ unsigned short tempushort;
+
+ HDmemcpy(&tempushort, vp, sizeof(unsigned short));
+ if (packed_bits_num) {
+ if (packed_data_offset >= 8 * sizeof(unsigned short))
+ tempushort = 0;
+ else
+ tempushort = (tempushort >> packed_data_offset) & packed_data_mask;
+ }
+ h5tools_str_append(str, OPT(info->fmt_ushort, "%u"), tempushort);
}
else {
- HDmemcpy(&templlong, vp, sizeof(long long));
- h5tools_str_append(str, OPT(info->fmt_llong, fmt_llong), templlong);
- }
- }
- else if (H5Tequal(type, H5T_NATIVE_HSIZE)) {
- if (sizeof(hsize_t) == sizeof(int)) {
- HDmemcpy(&tempuint, vp, sizeof(unsigned int));
- h5tools_str_append(str, OPT(info->fmt_uint, "%u"), tempuint);
+ /* if (H5Tequal(type, H5T_NATIVE_SHORT)) */
+ short tempshort;
+
+ HDmemcpy(&tempshort, vp, sizeof(short));
+ if (packed_bits_num) {
+ if (packed_data_offset >= 8 * sizeof(short))
+ tempshort = 0;
+ else
+ tempshort = (tempshort >> packed_data_offset) & packed_data_mask;
+ }
+ h5tools_str_append(str, OPT(info->fmt_short, "%d"), tempshort);
}
- else if (sizeof(hsize_t) == sizeof(long)) {
- HDmemcpy(&tempulong, vp, sizeof(long));
+ } /* end if (sizeof(short) == nsize) */
+ else if (sizeof(long) == nsize) {
+ if(H5T_SGN_NONE == nsign) {
+ /* if (H5Tequal(type, H5T_NATIVE_ULONG)) */
+ HDmemcpy(&tempulong, vp, sizeof(unsigned long));
+ if (packed_bits_num) {
+ if (packed_data_offset >= 8 * sizeof(unsigned long))
+ tempulong = 0;
+ else
+ tempulong = (tempulong >> packed_data_offset) & packed_data_mask;
+ }
h5tools_str_append(str, OPT(info->fmt_ulong, "%lu"), tempulong);
}
else {
+ /* if (H5Tequal(type, H5T_NATIVE_LONG)) */
+ HDmemcpy(&templong, vp, sizeof(long));
+ if (packed_bits_num) {
+ if (packed_data_offset >= 8 * sizeof(long))
+ templong = 0;
+ else
+ templong = (templong >> packed_data_offset) & packed_data_mask;
+ }
+ h5tools_str_append(str, OPT(info->fmt_long, "%ld"), templong);
+ }
+ } /* end if (sizeof(long) == nsize) */
+ else if (sizeof(long long) == nsize) {
+ if(H5T_SGN_NONE == nsign) {
+ /* if (H5Tequal(type, H5T_NATIVE_ULLONG)) */
HDmemcpy(&tempullong, vp, sizeof(unsigned long long));
+ if (packed_bits_num) {
+ if (packed_data_offset >= 8 * sizeof(unsigned long long))
+ tempullong = 0;
+ else
+ tempullong = (tempullong >> packed_data_offset) & packed_data_mask;
+ }
h5tools_str_append(str, OPT(info->fmt_ullong, fmt_ullong), tempullong);
}
- }
+ else {
+ /* if (H5Tequal(type, H5T_NATIVE_LLONG)) */
+ HDmemcpy(&templlong, vp, sizeof(long long));
+ if (packed_bits_num) {
+ if (packed_data_offset >= 8 * sizeof(long long))
+ templlong = 0;
+ else
+ templlong = (templlong >> packed_data_offset) & packed_data_mask;
+ }
+ h5tools_str_append(str, OPT(info->fmt_llong, fmt_llong), templlong);
+ }
+ } /* end if (sizeof(long long) == nsize) */
break;
case H5T_COMPOUND:
{
@@ -1024,75 +1022,71 @@ h5tools_str_sprint(h5tools_str_t *str, const h5tool_format_t *info, hid_t contai
}
else {
size_t i;
- n = H5Tget_size(type);
- if (1 == n) {
+ if (1 == nsize) {
h5tools_str_append(str, "0x%02x", ucp_vp[0]);
}
else {
- for (i = 0; i < n; i++)
+ for (i = 0; i < nsize; i++)
h5tools_str_append(str, "%s%02x", i ? ":" : "", ucp_vp[i]);
}
}
}
break;
case H5T_REFERENCE:
- if (H5Tequal(type, H5T_STD_REF_DSETREG)) {
- if (h5tools_str_is_zero(vp, H5Tget_size(type))) {
- h5tools_str_append(str, "NULL");
- }
- else {
- h5tools_str_sprint_region(str, info, container, vp);
- }
+ if (h5tools_str_is_zero(vp, nsize)) {
+ h5tools_str_append(str, "NULL");
}
- else if (H5Tequal(type, H5T_STD_REF_OBJ)) {
- /*
- * Object references -- show the type and OID of the referenced
- * object.
- */
- if (h5tools_str_is_zero(vp, H5Tget_size(type))) {
- h5tools_str_append(str, "NULL");
+ else {
+ if (nsize == H5R_DSET_REG_REF_BUF_SIZE) {
+ /* if (H5Tequal(type, H5T_STD_REF_DSETREG)) */
+ h5tools_str_sprint_region(str, info, container, vp);
}
- else {
- H5O_info_t oi;
- const char *path;
+ else if (nsize == H5R_OBJ_REF_BUF_SIZE) {
+ /* if (H5Tequal(type, H5T_STD_REF_OBJ)) */
+ /*
+ * Object references -- show the type and OID of the referenced
+ * object.
+ */
+ H5O_info_t oi;
+ const char *path;
obj = H5Rdereference(container, H5R_OBJECT, vp);
- H5Oget_info(obj, &oi);
-
- /* Print object type and close object */
- switch (oi.type) {
- case H5O_TYPE_GROUP:
- h5tools_str_append(str, H5_TOOLS_GROUP);
- break;
-
- case H5O_TYPE_DATASET:
- h5tools_str_append(str, H5_TOOLS_DATASET);
- break;
-
- case H5O_TYPE_NAMED_DATATYPE:
- h5tools_str_append(str, H5_TOOLS_DATATYPE);
- break;
-
- default:
- h5tools_str_append(str, "%u-", (unsigned) oi.type);
- break;
- } /* end switch */
- H5Oclose(obj);
-
- /* Print OID */
- if (info->obj_hidefileno)
- h5tools_str_append(str, info->obj_format, oi.addr);
- else
- h5tools_str_append(str, info->obj_format, oi.fileno, oi.addr);
-
- /* Print name */
- path = lookup_ref_path(*(haddr_t *) vp);
- if (path) {
- h5tools_str_append(str, " ");
- h5tools_str_append(str, path);
- h5tools_str_append(str, " ");
- } /* end if */
- } /* end else */
+ H5Oget_info(obj, &oi);
+
+ /* Print object type and close object */
+ switch (oi.type) {
+ case H5O_TYPE_GROUP:
+ h5tools_str_append(str, H5_TOOLS_GROUP);
+ break;
+
+ case H5O_TYPE_DATASET:
+ h5tools_str_append(str, H5_TOOLS_DATASET);
+ break;
+
+ case H5O_TYPE_NAMED_DATATYPE:
+ h5tools_str_append(str, H5_TOOLS_DATATYPE);
+ break;
+
+ default:
+ h5tools_str_append(str, "%u-", (unsigned) oi.type);
+ break;
+ } /* end switch */
+ H5Oclose(obj);
+
+ /* Print OID */
+ if (info->obj_hidefileno)
+ h5tools_str_append(str, info->obj_format, oi.addr);
+ else
+ h5tools_str_append(str, info->obj_format, oi.fileno, oi.addr);
+
+ /* Print name */
+ path = lookup_ref_path(*(haddr_t *) vp);
+ if (path) {
+ h5tools_str_append(str, " ");
+ h5tools_str_append(str, path);
+ h5tools_str_append(str, " ");
+ } /* end if */
+ } /* end else if (H5Tequal(type, H5T_STD_REF_OBJ)) */
}
break;
case H5T_ARRAY:
@@ -1206,12 +1200,11 @@ h5tools_str_sprint(h5tools_str_t *str, const h5tool_format_t *info, hid_t contai
{
/* All other types get printed as hexadecimal */
size_t i;
- n = H5Tget_size(type);
- if (1 == n) {
+ if (1 == nsize) {
h5tools_str_append(str, "0x%02x", ucp_vp[0]);
}
else {
- for (i = 0; i < n; i++)
+ for (i = 0; i < nsize; i++)
h5tools_str_append(str, "%s%02x", i ? ":" : "", ucp_vp[i]);
}
}
diff --git a/tools/lib/h5tools_utils.c b/tools/lib/h5tools_utils.c
index 79322bc..d7c5adb 100644
--- a/tools/lib/h5tools_utils.c
+++ b/tools/lib/h5tools_utils.c
@@ -152,8 +152,9 @@ error_msg(const char *fmt, ...)
va_list ap;
HDva_start(ap, fmt);
- HDfflush(rawdatastream);
- HDfflush(rawoutstream);
+ FLUSHSTREAM(rawattrstream);
+ FLUSHSTREAM(rawdatastream);
+ FLUSHSTREAM(rawoutstream);
HDfprintf(rawerrorstream, "%s error: ", h5tools_getprogname());
HDvfprintf(rawerrorstream, fmt, ap);
@@ -182,8 +183,9 @@ warn_msg(const char *fmt, ...)
va_list ap;
HDva_start(ap, fmt);
- HDfflush(rawdatastream);
- HDfflush(rawoutstream);
+ FLUSHSTREAM(rawattrstream);
+ FLUSHSTREAM(rawdatastream);
+ FLUSHSTREAM(rawoutstream);
HDfprintf(rawerrorstream, "%s warning: ", h5tools_getprogname());
HDvfprintf(rawerrorstream, fmt, ap);
HDva_end(ap);
@@ -275,6 +277,8 @@ get_option(int argc, const char **argv, const char *opts, const struct long_opti
opt_opt = '?';
}
+ else
+ opt_arg = NULL;
}
else {
if (arg[len] == '=') {
@@ -388,7 +392,7 @@ indentation(int x)
{
if (x < h5tools_nCols) {
while (x-- > 0)
- HDfprintf(rawoutstream, " ");
+ PRINTVALSTREAM(rawoutstream, " ");
}
else {
HDfprintf(rawerrorstream, "error: the indentation exceeds the number of cols.\n");
@@ -414,7 +418,7 @@ indentation(int x)
void
print_version(const char *progname)
{
- HDfprintf(rawoutstream, "%s: Version %u.%u.%u%s%s\n",
+ PRINTSTREAM(rawoutstream, "%s: Version %u.%u.%u%s%s\n",
progname, H5_VERS_MAJOR, H5_VERS_MINOR, H5_VERS_RELEASE,
((char *)H5_VERS_SUBRELEASE)[0] ? "-" : "", H5_VERS_SUBRELEASE);
}
@@ -494,9 +498,9 @@ dump_table(char* tablename, table_t *table)
{
unsigned u;
- HDfprintf(rawoutstream,"%s: # of entries = %d\n", tablename,table->nobjs);
+ PRINTSTREAM(rawoutstream,"%s: # of entries = %d\n", tablename,table->nobjs);
for (u = 0; u < table->nobjs; u++)
- HDfprintf(rawoutstream,"%a %s %d %d\n", table->objs[u].objno,
+ PRINTSTREAM(rawoutstream,"%a %s %d %d\n", table->objs[u].objno,
table->objs[u].objname,
table->objs[u].displayed, table->objs[u].recorded);
}
diff --git a/tools/misc/CMakeLists.txt b/tools/misc/CMakeLists.txt
index b78cdd6..88356b0 100644
--- a/tools/misc/CMakeLists.txt
+++ b/tools/misc/CMakeLists.txt
@@ -55,7 +55,7 @@ IF (BUILD_TESTING)
SET_TARGET_PROPERTIES (h5repart_test PROPERTIES FOLDER tools)
# --------------------------------------------------------------------
- # Copy all the HDF5 files from the test directory into the source directory
+ # Copy all the HDF5 files from the source directory into the test directory
# --------------------------------------------------------------------
SET (HDF5_REFERENCE_TEST_FILES
family_file00000.h5
@@ -90,37 +90,43 @@ IF (BUILD_TESTING)
ENDFOREACH (h5_file ${HDF5_REFERENCE_TEST_FILES})
SET (HDF5_MKGRP_TEST_FILES
- #h5mkgrp_help
+ #h5mkgrp_help.txt
#h5mkgrp_version
- h5mkgrp_single
- h5mkgrp_single_latest
- h5mkgrp_several
- h5mkgrp_several_latest
- h5mkgrp_nested
- h5mkgrp_nested_latest
- h5mkgrp_nested_mult
- h5mkgrp_nested_mult_latest
+ h5mkgrp_single.ls
+ h5mkgrp_single_v.ls
+ h5mkgrp_single_p.ls
+ h5mkgrp_single_l.ls
+ h5mkgrp_several.ls
+ h5mkgrp_several_v.ls
+ h5mkgrp_several_p.ls
+ h5mkgrp_several_l.ls
+ h5mkgrp_nested_p.ls
+ h5mkgrp_nested_lp.ls
+ h5mkgrp_nested_mult_p.ls
+ h5mkgrp_nested_mult_lp.ls
)
- FILE (MAKE_DIRECTORY "${PROJECT_BINARY_DIR}/../testfiles")
+ # make test dir
+ FILE (MAKE_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles")
+
FOREACH (h5_mkgrp_file ${HDF5_MKGRP_TEST_FILES})
- SET (dest "${PROJECT_BINARY_DIR}/${h5_mkgrp_file}")
+ SET (dest "${PROJECT_BINARY_DIR}/testfiles/${h5_mkgrp_file}")
#MESSAGE (STATUS " Copying ${h5_mkgrp_file}")
ADD_CUSTOM_COMMAND (
TARGET h5mkgrp
POST_BUILD
- COMMAND ${XLATE_UTILITY}
- ARGS ${HDF5_TOOLS_SRC_DIR}/testfiles/${h5_mkgrp_file}.ls ${dest}.ls -l3
+ COMMAND ${CMAKE_COMMAND}
+ ARGS -E copy_if_different ${HDF5_TOOLS_SRC_DIR}/testfiles/${h5_mkgrp_file} ${dest}
)
ENDFOREACH (h5_mkgrp_file ${HDF5_MKGRP_TEST_FILES})
ADD_CUSTOM_COMMAND (
TARGET h5mkgrp
POST_BUILD
- COMMAND ${XLATE_UTILITY}
- ARGS ${PROJECT_SOURCE_DIR}/testfiles/h5mkgrp_help.txt ${PROJECT_BINARY_DIR}/h5mkgrp_help.txt -l0
+ COMMAND ${CMAKE_COMMAND}
+ ARGS -E copy_if_different ${PROJECT_SOURCE_DIR}/testfiles/h5mkgrp_help.txt ${PROJECT_BINARY_DIR}/testfiles/h5mkgrp_help.txt
)
- CONFIGURE_FILE (${PROJECT_SOURCE_DIR}/testfiles/h5mkgrp_version.txt.in ${PROJECT_BINARY_DIR}/h5mkgrp_version.txt @ONLY)
+ CONFIGURE_FILE (${PROJECT_SOURCE_DIR}/testfiles/h5mkgrp_version.txt.in ${PROJECT_BINARY_DIR}/testfiles/h5mkgrp_version.txt @ONLY)
##############################################################################
##############################################################################
@@ -129,102 +135,71 @@ IF (BUILD_TESTING)
##############################################################################
MACRO (ADD_H5_TEST resultfile resultcode resultoption)
- IF (NOT ${resultoption} STREQUAL " ")
- ADD_TEST (
- NAME H5MKGRP-clear-${resultfile}${resultoption}
- COMMAND ${CMAKE_COMMAND}
- -E remove
- ${PROJECT_BINARY_DIR}/../testfiles/${resultfile}.h5
- ${PROJECT_BINARY_DIR}/${resultfile}.out
- ${PROJECT_BINARY_DIR}/${resultfile}.out.err
- )
- IF (NOT "${last_test}" STREQUAL "")
- SET_TESTS_PROPERTIES (H5MKGRP-clear-${resultfile}${resultoption} PROPERTIES DEPENDS ${last_test})
- ENDIF (NOT "${last_test}" STREQUAL "")
- ADD_TEST (
- NAME H5MKGRP-${resultfile}${resultoption}
- COMMAND $<TARGET_FILE:h5mkgrp> ${resultoption} ${PROJECT_BINARY_DIR}/../testfiles/${resultfile}.h5 ${ARGN}
- )
- SET_TESTS_PROPERTIES (H5MKGRP-${resultfile}${resultoption} PROPERTIES DEPENDS H5MKGRP-clear-${resultfile}${resultoption})
- SET (last_test "H5MKGRP-${resultfile}${resultoption}")
- IF (NOT HDF5_ENABLE_USING_MEMCHECKER)
- ADD_TEST (
- NAME H5MKGRP-h5ls-${resultfile}${resultoption}
- COMMAND "${CMAKE_COMMAND}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5ls>"
- -D "TEST_ARGS:STRING=-v;-r;../testfiles/${resultfile}.h5"
- -D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
- -D "TEST_OUTPUT=${resultfile}.out"
- -D "TEST_EXPECT=${resultcode}"
- -D "TEST_MASK_MOD=true"
- -D "TEST_REFERENCE=${resultfile}.ls"
- -P "${HDF5_RESOURCES_DIR}/runTest.cmake"
- )
- SET_TESTS_PROPERTIES (H5MKGRP-h5ls-${resultfile}${resultoption} PROPERTIES DEPENDS H5MKGRP-${resultfile}${resultoption})
- SET (last_test "H5MKGRP-h5ls-${resultfile}${resultoption}")
- ENDIF (NOT HDF5_ENABLE_USING_MEMCHECKER)
- ELSE (NOT ${resultoption} STREQUAL " ")
+ IF (NOT HDF5_ENABLE_USING_MEMCHECKER)
ADD_TEST (
- NAME H5MKGRP-clear-${resultfile}
+ NAME H5MKGRP-${resultfile}-clear-objects
COMMAND ${CMAKE_COMMAND}
-E remove
- ${PROJECT_BINARY_DIR}/../testfiles/${resultfile}.h5
- ${PROJECT_BINARY_DIR}/${resultfile}.out
- ${PROJECT_BINARY_DIR}/${resultfile}.out.err
+ ${resultfile}.h5
+ ${resultfile}.out
+ ${resultfile}.out.err
)
+ SET_TESTS_PROPERTIES (H5MKGRP-${resultfile}-clear-objects PROPERTIES WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles")
+ ENDIF (NOT HDF5_ENABLE_USING_MEMCHECKER)
+
+ ADD_TEST (
+ NAME H5MKGRP-${resultfile}
+ COMMAND $<TARGET_FILE:h5mkgrp> ${resultoption} ${resultfile}.h5 ${ARGN}
+ )
+ SET_TESTS_PROPERTIES (H5MKGRP-${resultfile} PROPERTIES WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles")
+ IF (HDF5_ENABLE_USING_MEMCHECKER)
IF (NOT "${last_test}" STREQUAL "")
- SET_TESTS_PROPERTIES (H5MKGRP-clear-${resultfile} PROPERTIES DEPENDS ${last_test})
+ SET_TESTS_PROPERTIES (H5MKGRP-${resultfile} PROPERTIES DEPENDS ${last_test})
ENDIF (NOT "${last_test}" STREQUAL "")
+ ELSE (HDF5_ENABLE_USING_MEMCHECKER)
+ SET_TESTS_PROPERTIES (H5MKGRP-${resultfile} PROPERTIES DEPENDS H5MKGRP-${resultfile}-clear-objects)
ADD_TEST (
- NAME H5MKGRP-${resultfile}
- COMMAND $<TARGET_FILE:h5mkgrp> ${PROJECT_BINARY_DIR}/../testfiles/${resultfile}.h5 ${ARGN}
+ NAME H5MKGRP-${resultfile}-h5ls
+ COMMAND "${CMAKE_COMMAND}"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5ls>"
+ -D "TEST_ARGS:STRING=-v;-r;${resultfile}.h5"
+ -D "TEST_FOLDER=${PROJECT_BINARY_DIR}/testfiles"
+ -D "TEST_OUTPUT=${resultfile}.out"
+ -D "TEST_EXPECT=${resultcode}"
+ -D "TEST_MASK_MOD=true"
+ -D "TEST_REFERENCE=${resultfile}.ls"
+ -P "${HDF5_RESOURCES_DIR}/runTest.cmake"
)
- SET_TESTS_PROPERTIES (H5MKGRP-${resultfile} PROPERTIES DEPENDS H5MKGRP-clear-${resultfile})
- SET (last_test "H5MKGRP-${resultfile}")
- IF (NOT HDF5_ENABLE_USING_MEMCHECKER)
- ADD_TEST (
- NAME H5MKGRP-h5ls-${resultfile}
- COMMAND "${CMAKE_COMMAND}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5ls>"
- -D "TEST_ARGS:STRING=-v;-r;../testfiles/${resultfile}.h5"
- -D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
- -D "TEST_OUTPUT=${resultfile}.out"
- -D "TEST_EXPECT=${resultcode}"
- -D "TEST_MASK_MOD=true"
- -D "TEST_REFERENCE=${resultfile}.ls"
- -P "${HDF5_RESOURCES_DIR}/runTest.cmake"
- )
- SET_TESTS_PROPERTIES (H5MKGRP-h5ls-${resultfile} PROPERTIES DEPENDS H5MKGRP-${resultfile})
- SET (last_test "H5MKGRP-h5ls-${resultfile}")
- ENDIF (NOT HDF5_ENABLE_USING_MEMCHECKER)
- ENDIF (NOT ${resultoption} STREQUAL " ")
+ SET_TESTS_PROPERTIES (H5MKGRP-${resultfile}-h5ls PROPERTIES DEPENDS H5MKGRP-${resultfile})
+ ENDIF (HDF5_ENABLE_USING_MEMCHECKER)
ENDMACRO (ADD_H5_TEST resultfile resultcode resultoption)
MACRO (ADD_H5_CMP resultfile resultcode)
- ADD_TEST (
- NAME H5MKGRP_CMP-clear-${resultfile}
- COMMAND ${CMAKE_COMMAND}
- -E remove
- ${PROJECT_BINARY_DIR}/../testfiles/${resultfile}.h5
- ${PROJECT_BINARY_DIR}/${resultfile}.out
- ${PROJECT_BINARY_DIR}/${resultfile}.out.err
- )
IF (HDF5_ENABLE_USING_MEMCHECKER)
ADD_TEST (NAME H5MKGRP_CMP-${resultfile} COMMAND $<TARGET_FILE:h5mkgrp> ${ARGN})
ELSE (HDF5_ENABLE_USING_MEMCHECKER)
ADD_TEST (
+ NAME H5MKGRP_CMP-${resultfile}-clear-objects
+ COMMAND ${CMAKE_COMMAND}
+ -E remove
+ ${resultfile}.h5
+ ${resultfile}.out
+ ${resultfile}.out.err
+ )
+ SET_TESTS_PROPERTIES (H5MKGRP_CMP-${resultfile}-clear-objects PROPERTIES WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles")
+ ADD_TEST (
NAME H5MKGRP_CMP-${resultfile}
COMMAND "${CMAKE_COMMAND}"
-D "TEST_PROGRAM=$<TARGET_FILE:h5mkgrp>"
-D "TEST_ARGS:STRING=${ARGN}"
- -D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
+ -D "TEST_FOLDER=${PROJECT_BINARY_DIR}/testfiles"
-D "TEST_OUTPUT=${resultfile}.out"
-D "TEST_EXPECT=${resultcode}"
-D "TEST_REFERENCE=${resultfile}.txt"
-P "${HDF5_RESOURCES_DIR}/runTest.cmake"
)
+ SET_TESTS_PROPERTIES (H5MKGRP_CMP-${resultfile} PROPERTIES DEPENDS H5MKGRP_CMP-${resultfile}-clear-objects)
ENDIF (HDF5_ENABLE_USING_MEMCHECKER)
- SET_TESTS_PROPERTIES (H5MKGRP_CMP-${resultfile} PROPERTIES DEPENDS H5MKGRP_CMP-clear-${resultfile})
ENDMACRO (ADD_H5_CMP resultfile resultcode)
##############################################################################
@@ -235,71 +210,115 @@ IF (BUILD_TESTING)
# Remove any output file left over from previous test run
ADD_TEST (
- NAME h5repart_20K-clear-objects
- COMMAND ${CMAKE_COMMAND}
- -E remove
- fst_family00000.h5
+ NAME H5REPART-clearall-objects
+ COMMAND ${CMAKE_COMMAND}
+ -E remove
+ fst_family00000.h5
+ scd_family00000.h5
+ scd_family00001.h5
+ scd_family00002.h5
+ scd_family00003.h5
+ family_to_sec2.h5
)
+ IF (NOT "${last_test}" STREQUAL "")
+ SET_TESTS_PROPERTIES (H5REPART-clearall-objects PROPERTIES DEPENDS ${last_test})
+ ENDIF (NOT "${last_test}" STREQUAL "")
+ SET (last_test "H5REPART-clearall-objects")
+
# repartition family member size to 20,000 bytes.
- ADD_TEST (NAME h5repart_20K COMMAND $<TARGET_FILE:h5repart> -m 20000 family_file%05d.h5 fst_family%05d.h5)
- SET_TESTS_PROPERTIES (h5repart_20K PROPERTIES DEPENDS h5repart_20K-clear-objects)
+ ADD_TEST (NAME H5REPART-h5repart_20K COMMAND $<TARGET_FILE:h5repart> -m 20000 family_file%05d.h5 fst_family%05d.h5)
+ SET_TESTS_PROPERTIES (H5REPART-h5repart_20K PROPERTIES DEPENDS H5REPART-clearall-objects)
- # Remove any output file left over from previous test run
- ADD_TEST (
- NAME h5repart_5K-clear-objects
- COMMAND ${CMAKE_COMMAND}
- -E remove
- scd_family00000.h5
- scd_family00001.h5
- scd_family00002.h5
- scd_family00003.h5
- )
- SET_TESTS_PROPERTIES (h5repart_5K-clear-objects PROPERTIES DEPENDS h5repart_20K)
# repartition family member size to 5 KB.
- ADD_TEST (NAME h5repart_5K COMMAND $<TARGET_FILE:h5repart> -m 5k family_file%05d.h5 scd_family%05d.h5)
- SET_TESTS_PROPERTIES (h5repart_5K PROPERTIES DEPENDS h5repart_5K-clear-objects)
+ ADD_TEST (NAME H5REPART-h5repart_5K COMMAND $<TARGET_FILE:h5repart> -m 5k family_file%05d.h5 scd_family%05d.h5)
+ SET_TESTS_PROPERTIES (H5REPART-h5repart_5K PROPERTIES DEPENDS H5REPART-clearall-objects)
- # Remove any output file left over from previous test run
- ADD_TEST (
- NAME h5repart_sec2-clear-objects
- COMMAND ${CMAKE_COMMAND}
- -E remove
- family_to_sec2.h5
- )
- SET_TESTS_PROPERTIES (h5repart_sec2-clear-objects PROPERTIES DEPENDS h5repart_5K)
# convert family file to sec2 file of 20,000 bytes
- ADD_TEST (NAME h5repart_sec2 COMMAND $<TARGET_FILE:h5repart> -m 20000 -family_to_sec2 family_file%05d.h5 family_to_sec2.h5)
- SET_TESTS_PROPERTIES (h5repart_sec2 PROPERTIES DEPENDS h5repart_sec2-clear-objects)
+ ADD_TEST (NAME H5REPART-h5repart_sec2 COMMAND $<TARGET_FILE:h5repart> -m 20000 -family_to_sec2 family_file%05d.h5 family_to_sec2.h5)
+ SET_TESTS_PROPERTIES (H5REPART-h5repart_sec2 PROPERTIES DEPENDS H5REPART-clearall-objects)
# test the output files repartitioned above.
- ADD_TEST (NAME h5repart_test COMMAND $<TARGET_FILE:h5repart_test>)
- SET_TESTS_PROPERTIES (h5repart_test PROPERTIES DEPENDS h5repart_sec2)
+ ADD_TEST (NAME H5REPART-h5repart_test COMMAND $<TARGET_FILE:h5repart_test>)
+ SET_TESTS_PROPERTIES (H5REPART-h5repart_test PROPERTIES DEPENDS H5REPART-clearall-objects H5REPART-h5repart_20KH5REPART-h5repart_5K H5REPART-h5repart_sec2)
SET (H5_DEP_EXECUTABLES ${H5_DEP_EXECUTABLES}
h5repart_test
)
+
+ IF (HDF5_ENABLE_USING_MEMCHECKER)
+ ADD_TEST (
+ NAME H5MKGRP-clearall-objects
+ COMMAND ${CMAKE_COMMAND}
+ -E remove
+ h5mkgrp_help.out
+ h5mkgrp_help.out.err
+ h5mkgrp_version.out
+ h5mkgrp_version.out.err
+ h5mkgrp_single.h5
+ h5mkgrp_single.out
+ h5mkgrp_single.out.err
+ h5mkgrp_single_v.h5
+ h5mkgrp_single_v.out
+ h5mkgrp_single_v.out.err
+ h5mkgrp_single_p.h5
+ h5mkgrp_single_p.out
+ h5mkgrp_single_p.out.err
+ h5mkgrp_single_l.h5
+ h5mkgrp_single_l.out
+ h5mkgrp_single_l.out.err
+ h5mkgrp_several.h5
+ h5mkgrp_several.out
+ h5mkgrp_several.out.err
+ h5mkgrp_several_v.h5
+ h5mkgrp_several_v.out
+ h5mkgrp_several_v.out.err
+ h5mkgrp_several_p.h5
+ h5mkgrp_several_p.out
+ h5mkgrp_several_p.out.err
+ h5mkgrp_several_l.h5
+ h5mkgrp_several_l.out
+ h5mkgrp_several_l.out.err
+ h5mkgrp_nested_p.h5
+ h5mkgrp_nested_p.out
+ h5mkgrp_nested_p.out.err
+ h5mkgrp_nested_lp.h5
+ h5mkgrp_nested_lp.out
+ h5mkgrp_nested_lp.out.err
+ h5mkgrp_nested_mult_p.h5
+ h5mkgrp_nested_mult_p.out
+ h5mkgrp_nested_mult_p.out.err
+ h5mkgrp_nested_mult_lp.h5
+ h5mkgrp_nested_mult_lp.out
+ h5mkgrp_nested_mult_lp.out.err
+ )
+ SET_TESTS_PROPERTIES (H5MKGRP-clearall-objects PROPERTIES WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles")
+ IF (NOT "${last_test}" STREQUAL "")
+ SET_TESTS_PROPERTIES (H5MKGRP-clearall-objects PROPERTIES DEPENDS ${last_test})
+ ENDIF (NOT "${last_test}" STREQUAL "")
+ SET (last_test "H5MKGRP-clearall-objects")
+ ENDIF (HDF5_ENABLE_USING_MEMCHECKER)
# Check that help & version is displayed properly
ADD_H5_CMP (h5mkgrp_help 0 "-h")
ADD_H5_CMP (h5mkgrp_version 0 "-V")
# Create single group at root level
- ADD_H5_TEST (h5mkgrp_single 0 " " single)
- ADD_H5_TEST (h5mkgrp_single 0 "-v" single)
- ADD_H5_TEST (h5mkgrp_single 0 "-p" single)
- ADD_H5_TEST (h5mkgrp_single_latest 0 "-l" latest)
+ ADD_H5_TEST (h5mkgrp_single 0 "" single)
+ ADD_H5_TEST (h5mkgrp_single_v 0 "-v" single)
+ ADD_H5_TEST (h5mkgrp_single_p 0 "-p" single)
+ ADD_H5_TEST (h5mkgrp_single_l 0 "-l" latest)
# Create several groups at root level
- ADD_H5_TEST (h5mkgrp_several 0 " " one two)
- ADD_H5_TEST (h5mkgrp_several 0 "-v" one two)
- ADD_H5_TEST (h5mkgrp_several 0 "-p" one two)
- ADD_H5_TEST (h5mkgrp_several_latest 0 "-l" one two)
+ ADD_H5_TEST (h5mkgrp_several 0 "" one two)
+ ADD_H5_TEST (h5mkgrp_several_v 0 "-v" one two)
+ ADD_H5_TEST (h5mkgrp_several_p 0 "-p" one two)
+ ADD_H5_TEST (h5mkgrp_several_l 0 "-l" one two)
# Create various nested groups
- ADD_H5_TEST (h5mkgrp_nested 0 "-p" /one/two)
- ADD_H5_TEST (h5mkgrp_nested_latest 0 "-lp" /one/two)
- ADD_H5_TEST (h5mkgrp_nested_mult 0 "-p" /one/two /three/four)
- ADD_H5_TEST (h5mkgrp_nested_mult_latest 0 "-lp" /one/two /three/four)
+ ADD_H5_TEST (h5mkgrp_nested_p 0 "-p" /one/two)
+ ADD_H5_TEST (h5mkgrp_nested_lp 0 "-lp" /one/two)
+ ADD_H5_TEST (h5mkgrp_nested_mult_p 0 "-p" /one/two /three/four)
+ ADD_H5_TEST (h5mkgrp_nested_mult_lp 0 "-lp" /one/two /three/four)
ENDIF (BUILD_TESTING)
##############################################################################
diff --git a/tools/misc/testh5mkgrp.sh.in b/tools/misc/testh5mkgrp.sh.in
index dc127e8..5ec1a28 100644
--- a/tools/misc/testh5mkgrp.sh.in
+++ b/tools/misc/testh5mkgrp.sh.in
@@ -31,15 +31,85 @@ H5LS=h5ls # The h5ls tool name
H5LS_ARGS=-vr # Arguments to the h5ls tool
H5LS_BIN=`pwd`/../h5ls/$H5LS # The path of the h5ls tool binary
+CMP='cmp'
+DIFF='diff -c'
+CP='cp'
+DIRNAME='dirname'
+LS='ls'
+AWK='awk'
+
nerrors=0
verbose=yes
-INDIR=$srcdir/../testfiles
-OUTDIR=../testfiles
+# source dirs
+SRC_TOOLS="$srcdir/../"
+
+SRC_TOOLS_TESTFILES="$SRC_TOOLS/testfiles"
+# testfiles source dirs for tools
+SRC_H5MKGRP_TESTFILES="$SRC_TOOLS/misc/testfiles"
+
+TESTDIR=./testfiles
+test -d $TESTDIR || mkdir -p $TESTDIR
+
+######################################################################
+# test files
+# --------------------------------------------------------------------
+# All the test files copy from source directory to test directory
+# NOTE: Keep this framework to add/remove test files.
+# Any test files from other tools can be used in this framework.
+# This list are also used for checking exist.
+# Comment '#' without space can be used.
+# --------------------------------------------------------------------
+
CMP='cmp -s'
DIFF='diff -c'
-test -d $OUTDIR || mkdir $OUTDIR
+#
+# copy test files and expected output files from source dirs to test dir
+#
+COPY_TESTFILES="
+$SRC_H5MKGRP_TESTFILES/h5mkgrp_help.txt
+$SRC_TOOLS_TESTFILES/h5mkgrp_single.ls
+$SRC_TOOLS_TESTFILES/h5mkgrp_single_v.ls
+$SRC_TOOLS_TESTFILES/h5mkgrp_single_p.ls
+$SRC_TOOLS_TESTFILES/h5mkgrp_single_l.ls
+$SRC_TOOLS_TESTFILES/h5mkgrp_several.ls
+$SRC_TOOLS_TESTFILES/h5mkgrp_several_v.ls
+$SRC_TOOLS_TESTFILES/h5mkgrp_several_p.ls
+$SRC_TOOLS_TESTFILES/h5mkgrp_several_l.ls
+$SRC_TOOLS_TESTFILES/h5mkgrp_nested_p.ls
+$SRC_TOOLS_TESTFILES/h5mkgrp_nested_lp.ls
+$SRC_TOOLS_TESTFILES/h5mkgrp_nested_mult_p.ls
+$SRC_TOOLS_TESTFILES/h5mkgrp_nested_mult_lp.ls
+"
+
+COPY_TESTFILES_TO_TESTDIR()
+{
+ # copy test files. Used -f to make sure get a new copy
+ for tstfile in $COPY_TESTFILES
+ do
+ # ignore '#' comment
+ echo $tstfile | tr -d ' ' | grep '^#' > /dev/null
+ RET=$?
+ if [ $RET -eq 1 ]; then
+ # skip cp if srcdir is same as destdir
+ # this occurs when build/test performed in source dir and
+ # make cp fail
+ SDIR=`$DIRNAME $tstfile`
+ 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
+ if [ $? -ne 0 ]; then
+ echo "Error: FAILED to copy $tstfile ."
+
+ # Comment out this to CREATE expected file
+ exit $EXIT_FAILURE
+ fi
+ fi
+ fi
+ done
+}
# Print a line-line message left justified in a field of 70 characters
# beginning with the word "Testing".
@@ -71,9 +141,7 @@ TOOLTEST()
{
TESTING $H5MKGRP $@
(
- echo "#############################"
- echo " output for '$H5MKGRP $@'"
- echo "#############################"
+ cd $TESTDIR
$RUNSERIAL $H5MKGRP_BIN $@
) > output.out
RET=$?
@@ -96,17 +164,15 @@ TOOLTEST()
#
H5LSTEST()
{
- expect="$INDIR/`basename $1 .h5`.ls"
- actual="$OUTDIR/`basename $1 .h5`.out"
+ expect="$TESTDIR/`basename $1 .h5`.ls"
+ actual="$TESTDIR/`basename $1 .h5`.out"
actual_sav=${actual}-sav
# Stderr is included in stdout so that the diff can detect
# any unexpected output from that stream too.
VERIFY_H5LS $@
(
- echo "#############################"
- echo "Expected output for '$H5LS $@'"
- echo "#############################"
+ cd $TESTDIR
$RUNSERIAL $H5LS_BIN $H5LS_ARGS $@
) 2>&1 |sed 's/Modified:.*/Modified: XXXX-XX-XX XX:XX:XX XXX/' >$actual
@@ -142,7 +208,7 @@ H5LSTEST()
# $* are groups to create
RUNTEST()
{
- FILEOUT=$OUTDIR/$1
+ FILEOUT=$1
shift
H5MKGRP_ARGS=$1
shift
@@ -158,9 +224,8 @@ RUNTEST()
# Remove output file created, if the "no cleanup" environment variable is
# not defined
-echo "FILEOUT=" $FILEOUT
if test -z "$HDF5_NOCLEANUP"; then
- rm -f $FILEOUT
+ rm -f $TESTDIR/$FILEOUT
fi
}
@@ -172,16 +237,17 @@ echo "FILEOUT=" $FILEOUT
# $* are groups to create
CMPTEST()
{
- FILEOUT=$OUTDIR/$1
- expect="$srcdir/testfiles/`basename $1 .h5`.txt"
- actual="$OUTDIR/`basename $1 .h5`.out"
- actual_err="$OUTDIR/`basename $1 .h5`.err"
+ FILEOUT=$1
+ expect="$TESTDIR/`basename $1 .h5`.txt"
+ actual="$TESTDIR/`basename $1 .h5`.out"
+ actual_err="$TESTDIR/`basename $1 .h5`.err"
shift
# Stderr is included in stdout so that the diff can detect
# any unexpected output from that stream too.
TESTING $H5MKGRP $@
(
+ cd $TESTDIR
$RUNSERIAL $H5MKGRP_BIN $@
) >$actual 2>$actual_err
cat $actual_err >> $actual
@@ -208,28 +274,30 @@ CMPTEST()
##############################################################################
### T H E T E S T S ###
##############################################################################
+# prepare for test
+COPY_TESTFILES_TO_TESTDIR
# Check that help & version is displayed properly
CMPTEST h5mkgrp_help.h5 "-h"
-RUNTEST h5mkgrp_version.h5 "-V"
+#CMPTEST h5mkgrp_version.h5 "-V"
# Create single group at root level
RUNTEST h5mkgrp_single.h5 " " single
-RUNTEST h5mkgrp_single.h5 "-v" single
-RUNTEST h5mkgrp_single.h5 "-p" single
-RUNTEST h5mkgrp_single_latest.h5 "-l" latest
+RUNTEST h5mkgrp_single_v.h5 "-v" single
+RUNTEST h5mkgrp_single_p.h5 "-p" single
+RUNTEST h5mkgrp_single_l.h5 "-l" latest
# Create several groups at root level
RUNTEST h5mkgrp_several.h5 " " one two
-RUNTEST h5mkgrp_several.h5 "-v" one two
-RUNTEST h5mkgrp_several.h5 "-p" one two
-RUNTEST h5mkgrp_several_latest.h5 "-l" one two
+RUNTEST h5mkgrp_several_v.h5 "-v" one two
+RUNTEST h5mkgrp_several_p.h5 "-p" one two
+RUNTEST h5mkgrp_several_l.h5 "-l" one two
# Create various nested groups
-RUNTEST h5mkgrp_nested.h5 "-p" /one/two
-RUNTEST h5mkgrp_nested_latest.h5 "-lp" /one/two
-RUNTEST h5mkgrp_nested_mult.h5 "-p" /one/two /three/four
-RUNTEST h5mkgrp_nested_mult_latest.h5 "-lp" /one/two /three/four
+RUNTEST h5mkgrp_nested_p.h5 "-p" /one/two
+RUNTEST h5mkgrp_nested_lp.h5 "-lp" /one/two
+RUNTEST h5mkgrp_nested_mult_p.h5 "-p" /one/two /three/four
+RUNTEST h5mkgrp_nested_mult_lp.h5 "-lp" /one/two /three/four
if test $nerrors -eq 0 ; then
diff --git a/tools/testfiles/h5dump-help.txt b/tools/testfiles/h5dump-help.txt
index 74fc104..40510a4 100644
--- a/tools/testfiles/h5dump-help.txt
+++ b/tools/testfiles/h5dump-help.txt
@@ -46,6 +46,8 @@ usage: h5dump [OPTIONS] files
occur.
--no-compact-subset Disable compact form of subsetting and allow the use
of "[" in dataset names.
+ -O F, --ddl=F Output ddl text into file F
+ Do not use filename F to suppress ddl display
Subsetting is available by using the following options with a dataset
attribute. Subsetting is done by selecting a hyperslab from the data.
diff --git a/tools/testfiles/h5mkgrp_nested_lp.ls b/tools/testfiles/h5mkgrp_nested_lp.ls
new file mode 100644
index 0000000..1fe8ce8
--- /dev/null
+++ b/tools/testfiles/h5mkgrp_nested_lp.ls
@@ -0,0 +1,13 @@
+Opened "h5mkgrp_nested_lp.h5" with sec2 driver.
+/ Group
+ Location: 1:48
+ Links: 1
+ Modified: XXXX-XX-XX XX:XX:XX XXX
+/one Group
+ Location: 1:195
+ Links: 1
+ Modified: XXXX-XX-XX XX:XX:XX XXX
+/one/two Group
+ Location: 1:342
+ Links: 1
+ Modified: XXXX-XX-XX XX:XX:XX XXX
diff --git a/tools/testfiles/h5mkgrp_nested_mult_lp.ls b/tools/testfiles/h5mkgrp_nested_mult_lp.ls
new file mode 100644
index 0000000..50380ec
--- /dev/null
+++ b/tools/testfiles/h5mkgrp_nested_mult_lp.ls
@@ -0,0 +1,21 @@
+Opened "h5mkgrp_nested_mult_lp.h5" with sec2 driver.
+/ Group
+ Location: 1:48
+ Links: 1
+ Modified: XXXX-XX-XX XX:XX:XX XXX
+/one Group
+ Location: 1:195
+ Links: 1
+ Modified: XXXX-XX-XX XX:XX:XX XXX
+/one/two Group
+ Location: 1:342
+ Links: 1
+ Modified: XXXX-XX-XX XX:XX:XX XXX
+/three Group
+ Location: 1:489
+ Links: 1
+ Modified: XXXX-XX-XX XX:XX:XX XXX
+/three/four Group
+ Location: 1:636
+ Links: 1
+ Modified: XXXX-XX-XX XX:XX:XX XXX
diff --git a/tools/testfiles/h5mkgrp_nested_mult_p.ls b/tools/testfiles/h5mkgrp_nested_mult_p.ls
new file mode 100644
index 0000000..f2b3b4b
--- /dev/null
+++ b/tools/testfiles/h5mkgrp_nested_mult_p.ls
@@ -0,0 +1,16 @@
+Opened "h5mkgrp_nested_mult_p.h5" with sec2 driver.
+/ Group
+ Location: 1:96
+ Links: 1
+/one Group
+ Location: 1:800
+ Links: 1
+/one/two Group
+ Location: 1:1832
+ Links: 1
+/three Group
+ Location: 1:2864
+ Links: 1
+/three/four Group
+ Location: 1:3568
+ Links: 1
diff --git a/tools/testfiles/h5mkgrp_nested_p.ls b/tools/testfiles/h5mkgrp_nested_p.ls
new file mode 100644
index 0000000..3034dbb
--- /dev/null
+++ b/tools/testfiles/h5mkgrp_nested_p.ls
@@ -0,0 +1,10 @@
+Opened "h5mkgrp_nested_p.h5" with sec2 driver.
+/ Group
+ Location: 1:96
+ Links: 1
+/one Group
+ Location: 1:800
+ Links: 1
+/one/two Group
+ Location: 1:1832
+ Links: 1
diff --git a/tools/testfiles/h5mkgrp_several.ls b/tools/testfiles/h5mkgrp_several.ls
index bbf5c92..68a3f9c 100644
--- a/tools/testfiles/h5mkgrp_several.ls
+++ b/tools/testfiles/h5mkgrp_several.ls
@@ -1,7 +1,4 @@
-#############################
-Expected output for 'h5ls ../testfiles/h5mkgrp_several.h5'
-#############################
-Opened "../testfiles/h5mkgrp_several.h5" with sec2 driver.
+Opened "h5mkgrp_several.h5" with sec2 driver.
/ Group
Location: 1:96
Links: 1
diff --git a/tools/testfiles/h5mkgrp_several_l.ls b/tools/testfiles/h5mkgrp_several_l.ls
new file mode 100644
index 0000000..5e1b4be
--- /dev/null
+++ b/tools/testfiles/h5mkgrp_several_l.ls
@@ -0,0 +1,13 @@
+Opened "h5mkgrp_several_l.h5" with sec2 driver.
+/ Group
+ Location: 1:48
+ Links: 1
+ Modified: XXXX-XX-XX XX:XX:XX XXX
+/one Group
+ Location: 1:195
+ Links: 1
+ Modified: XXXX-XX-XX XX:XX:XX XXX
+/two Group
+ Location: 1:342
+ Links: 1
+ Modified: XXXX-XX-XX XX:XX:XX XXX
diff --git a/tools/testfiles/h5mkgrp_several_p.ls b/tools/testfiles/h5mkgrp_several_p.ls
new file mode 100644
index 0000000..43f1ce5
--- /dev/null
+++ b/tools/testfiles/h5mkgrp_several_p.ls
@@ -0,0 +1,10 @@
+Opened "h5mkgrp_several_p.h5" with sec2 driver.
+/ Group
+ Location: 1:96
+ Links: 1
+/one Group
+ Location: 1:800
+ Links: 1
+/two Group
+ Location: 1:1832
+ Links: 1
diff --git a/tools/testfiles/h5mkgrp_several_v.ls b/tools/testfiles/h5mkgrp_several_v.ls
new file mode 100644
index 0000000..a6df87b
--- /dev/null
+++ b/tools/testfiles/h5mkgrp_several_v.ls
@@ -0,0 +1,10 @@
+Opened "h5mkgrp_several_v.h5" with sec2 driver.
+/ Group
+ Location: 1:96
+ Links: 1
+/one Group
+ Location: 1:800
+ Links: 1
+/two Group
+ Location: 1:1832
+ Links: 1
diff --git a/tools/testfiles/h5mkgrp_single.ls b/tools/testfiles/h5mkgrp_single.ls
index e9932f7..f2bd01c 100644
--- a/tools/testfiles/h5mkgrp_single.ls
+++ b/tools/testfiles/h5mkgrp_single.ls
@@ -1,7 +1,4 @@
-#############################
-Expected output for 'h5ls ../testfiles/h5mkgrp_single.h5'
-#############################
-Opened "../testfiles/h5mkgrp_single.h5" with sec2 driver.
+Opened "h5mkgrp_single.h5" with sec2 driver.
/ Group
Location: 1:96
Links: 1
diff --git a/tools/testfiles/h5mkgrp_single_l.ls b/tools/testfiles/h5mkgrp_single_l.ls
new file mode 100644
index 0000000..1763a61
--- /dev/null
+++ b/tools/testfiles/h5mkgrp_single_l.ls
@@ -0,0 +1,9 @@
+Opened "h5mkgrp_single_l.h5" with sec2 driver.
+/ Group
+ Location: 1:48
+ Links: 1
+ Modified: XXXX-XX-XX XX:XX:XX XXX
+/latest Group
+ Location: 1:195
+ Links: 1
+ Modified: XXXX-XX-XX XX:XX:XX XXX
diff --git a/tools/testfiles/h5mkgrp_single_p.ls b/tools/testfiles/h5mkgrp_single_p.ls
new file mode 100644
index 0000000..e82dc31
--- /dev/null
+++ b/tools/testfiles/h5mkgrp_single_p.ls
@@ -0,0 +1,7 @@
+Opened "h5mkgrp_single_p.h5" with sec2 driver.
+/ Group
+ Location: 1:96
+ Links: 1
+/single Group
+ Location: 1:800
+ Links: 1
diff --git a/tools/testfiles/h5mkgrp_single_v.ls b/tools/testfiles/h5mkgrp_single_v.ls
new file mode 100644
index 0000000..7360865
--- /dev/null
+++ b/tools/testfiles/h5mkgrp_single_v.ls
@@ -0,0 +1,7 @@
+Opened "h5mkgrp_single_v.h5" with sec2 driver.
+/ Group
+ Location: 1:96
+ Links: 1
+/single Group
+ Location: 1:800
+ Links: 1
diff --git a/tools/testfiles/h5mkgrp_version.ls b/tools/testfiles/h5mkgrp_version.ls
deleted file mode 100644
index 907f0ad..0000000
--- a/tools/testfiles/h5mkgrp_version.ls
+++ /dev/null
@@ -1,4 +0,0 @@
-#############################
-Expected output for 'h5ls ../testfiles/h5mkgrp_version.h5'
-#############################
-../testfiles/h5mkgrp_version.h5: unable to open file
diff --git a/tools/testfiles/help-1.ls b/tools/testfiles/help-1.ls
index aaba608..491f696 100644
--- a/tools/testfiles/help-1.ls
+++ b/tools/testfiles/help-1.ls
@@ -1,4 +1,4 @@
-usage: h5ls [OPTIONS] [OBJECTS...]
+usage: h5ls [OPTIONS] file[/OBJECT] [file[/[OBJECT]...]
OPTIONS
-h, -?, --help Print a usage message and exit
-a, --address Print raw data address. If dataset is contiguous, address
@@ -38,7 +38,7 @@ usage: h5ls [OPTIONS] [OBJECTS...]
--vfd=DRIVER Use the specified virtual file driver
-x, --hexdump Show raw data in hexadecimal format
- OBJECTS
+ file/OBJECT
Each object consists of an HDF5 file name optionally followed by a
slash and an object name within the file (if no object is specified
within the file then the contents of the root group are displayed).
diff --git a/tools/testfiles/help-2.ls b/tools/testfiles/help-2.ls
index aaba608..491f696 100644
--- a/tools/testfiles/help-2.ls
+++ b/tools/testfiles/help-2.ls
@@ -1,4 +1,4 @@
-usage: h5ls [OPTIONS] [OBJECTS...]
+usage: h5ls [OPTIONS] file[/OBJECT] [file[/[OBJECT]...]
OPTIONS
-h, -?, --help Print a usage message and exit
-a, --address Print raw data address. If dataset is contiguous, address
@@ -38,7 +38,7 @@ usage: h5ls [OPTIONS] [OBJECTS...]
--vfd=DRIVER Use the specified virtual file driver
-x, --hexdump Show raw data in hexadecimal format
- OBJECTS
+ file/OBJECT
Each object consists of an HDF5 file name optionally followed by a
slash and an object name within the file (if no object is specified
within the file then the contents of the root group are displayed).
diff --git a/tools/testfiles/help-3.ls b/tools/testfiles/help-3.ls
index aaba608..491f696 100644
--- a/tools/testfiles/help-3.ls
+++ b/tools/testfiles/help-3.ls
@@ -1,4 +1,4 @@
-usage: h5ls [OPTIONS] [OBJECTS...]
+usage: h5ls [OPTIONS] file[/OBJECT] [file[/[OBJECT]...]
OPTIONS
-h, -?, --help Print a usage message and exit
-a, --address Print raw data address. If dataset is contiguous, address
@@ -38,7 +38,7 @@ usage: h5ls [OPTIONS] [OBJECTS...]
--vfd=DRIVER Use the specified virtual file driver
-x, --hexdump Show raw data in hexadecimal format
- OBJECTS
+ file/OBJECT
Each object consists of an HDF5 file name optionally followed by a
slash and an object name within the file (if no object is specified
within the file then the contents of the root group are displayed).
diff --git a/tools/testfiles/tall-6.exp b/tools/testfiles/tall-6.exp
new file mode 100644
index 0000000..8580cd6
--- /dev/null
+++ b/tools/testfiles/tall-6.exp
@@ -0,0 +1,11 @@
+
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
+ 0, 2, 4, 6, 8, 10, 12, 14, 16, 18,
+ 0, 3, 6, 9, 12, 15, 18, 21, 24, 27,
+ 0, 4, 8, 12, 16, 20, 24, 28, 32, 36,
+ 0, 5, 10, 15, 20, 25, 30, 35, 40, 45,
+ 0, 6, 12, 18, 24, 30, 36, 42, 48, 54,
+ 0, 7, 14, 21, 28, 35, 42, 49, 56, 63,
+ 0, 8, 16, 24, 32, 40, 48, 56, 64, 72,
+ 0, 9, 18, 27, 36, 45, 54, 63, 72, 81 \ No newline at end of file
diff --git a/tools/testfiles/textlinksrc-nodangle-1.ls b/tools/testfiles/textlinksrc-nodangle-1.ls
index 7427e1c..9c19957 100644
--- a/tools/testfiles/textlinksrc-nodangle-1.ls
+++ b/tools/testfiles/textlinksrc-nodangle-1.ls
@@ -1,6 +1,6 @@
Error: --no-dangling-links must be used along with --follow-symlinks option!
-usage: h5ls [OPTIONS] [OBJECTS...]
+usage: h5ls [OPTIONS] file[/OBJECT] [file[/[OBJECT]...]
OPTIONS
-h, -?, --help Print a usage message and exit
-a, --address Print raw data address. If dataset is contiguous, address
@@ -40,7 +40,7 @@ usage: h5ls [OPTIONS] [OBJECTS...]
--vfd=DRIVER Use the specified virtual file driver
-x, --hexdump Show raw data in hexadecimal format
- OBJECTS
+ file/OBJECT
Each object consists of an HDF5 file name optionally followed by a
slash and an object name within the file (if no object is specified
within the file then the contents of the root group are displayed).
diff --git a/tools/testfiles/tgroup-1.ls b/tools/testfiles/tgroup-1.ls
index effaf5a..893c9ce 100644
--- a/tools/testfiles/tgroup-1.ls
+++ b/tools/testfiles/tgroup-1.ls
@@ -1,6 +1,6 @@
Error: 'recursive' option not compatible with 'group info' option!
-usage: h5ls [OPTIONS] [OBJECTS...]
+usage: h5ls [OPTIONS] file[/OBJECT] [file[/[OBJECT]...]
OPTIONS
-h, -?, --help Print a usage message and exit
-a, --address Print raw data address. If dataset is contiguous, address
@@ -40,7 +40,7 @@ usage: h5ls [OPTIONS] [OBJECTS...]
--vfd=DRIVER Use the specified virtual file driver
-x, --hexdump Show raw data in hexadecimal format
- OBJECTS
+ file/OBJECT
Each object consists of an HDF5 file name optionally followed by a
slash and an object name within the file (if no object is specified
within the file then the contents of the root group are displayed).
diff --git a/tools/testfiles/tnoattrdata.ddl b/tools/testfiles/tnoattrdata.ddl
new file mode 100644
index 0000000..a5d40fe
--- /dev/null
+++ b/tools/testfiles/tnoattrdata.ddl
@@ -0,0 +1,39 @@
+HDF5 "tattr.h5" {
+GROUP "/" {
+ ATTRIBUTE "/attr1" {
+ DATATYPE H5T_STD_I8BE
+ DATASPACE SIMPLE { ( 24 ) / ( 24 ) }
+ DATA {
+ }
+ }
+ ATTRIBUTE "attr2" {
+ DATATYPE H5T_STD_I32BE
+ DATASPACE SIMPLE { ( 10 ) / ( 10 ) }
+ DATA {
+ }
+ }
+ ATTRIBUTE "attr3" {
+ DATATYPE H5T_IEEE_F64BE
+ DATASPACE SIMPLE { ( 10 ) / ( 10 ) }
+ DATA {
+ }
+ }
+ ATTRIBUTE "attr4" {
+ DATATYPE H5T_STD_I32BE
+ DATASPACE SCALAR
+ DATA {
+ }
+ }
+ ATTRIBUTE "attr5" {
+ DATATYPE H5T_STRING {
+ STRSIZE 17;
+ STRPAD H5T_STR_NULLTERM;
+ CSET H5T_CSET_ASCII;
+ CTYPE H5T_C_S1;
+ }
+ DATASPACE SCALAR
+ DATA {
+ }
+ }
+}
+}
diff --git a/tools/testfiles/tnoattrddl.ddl b/tools/testfiles/tnoattrddl.ddl
new file mode 100644
index 0000000..f7326d0
--- /dev/null
+++ b/tools/testfiles/tnoattrddl.ddl
@@ -0,0 +1,7 @@
+
+ 97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 111, 102, 32, 114, 111,
+ 111, 116, 32, 103, 114, 111, 117, 112, 0
+ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
+ 0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9
+ 100
+ "string attribute"
diff --git a/tools/testfiles/tnodata.ddl b/tools/testfiles/tnodata.ddl
new file mode 100644
index 0000000..f99d906
--- /dev/null
+++ b/tools/testfiles/tnodata.ddl
@@ -0,0 +1,58 @@
+HDF5 "packedbits.h5" {
+GROUP "/" {
+ DATASET "DS08BITS" {
+ DATATYPE H5T_STD_I8LE
+ DATASPACE SIMPLE { ( 8, 8 ) / ( 8, 8 ) }
+ DATA {
+ }
+ }
+ DATASET "DS16BITS" {
+ DATATYPE H5T_STD_I16LE
+ DATASPACE SIMPLE { ( 8, 16 ) / ( 8, 16 ) }
+ DATA {
+ }
+ }
+ DATASET "DS32BITS" {
+ DATATYPE H5T_STD_I32LE
+ DATASPACE SIMPLE { ( 8, 32 ) / ( 8, 32 ) }
+ DATA {
+ }
+ }
+ DATASET "DS64BITS" {
+ DATATYPE H5T_STD_I64LE
+ DATASPACE SIMPLE { ( 8, 64 ) / ( 8, 64 ) }
+ DATA {
+ }
+ }
+ DATASET "DU08BITS" {
+ DATATYPE H5T_STD_U8LE
+ DATASPACE SIMPLE { ( 8, 8 ) / ( 8, 8 ) }
+ DATA {
+ }
+ }
+ DATASET "DU16BITS" {
+ DATATYPE H5T_STD_U16LE
+ DATASPACE SIMPLE { ( 8, 16 ) / ( 8, 16 ) }
+ DATA {
+ }
+ }
+ DATASET "DU32BITS" {
+ DATATYPE H5T_STD_U32LE
+ DATASPACE SIMPLE { ( 8, 32 ) / ( 8, 32 ) }
+ DATA {
+ }
+ }
+ DATASET "DU64BITS" {
+ DATATYPE H5T_STD_U64LE
+ DATASPACE SIMPLE { ( 8, 64 ) / ( 8, 64 ) }
+ DATA {
+ }
+ }
+ DATASET "DummyDBL" {
+ DATATYPE H5T_IEEE_F64BE
+ DATASPACE SIMPLE { ( 8, 8 ) / ( 8, 8 ) }
+ DATA {
+ }
+ }
+}
+}
diff --git a/tools/testfiles/tnoddl.ddl b/tools/testfiles/tnoddl.ddl
new file mode 100644
index 0000000..5238777
--- /dev/null
+++ b/tools/testfiles/tnoddl.ddl
@@ -0,0 +1,402 @@
+
+ -1, -2, -4, -8, -16, -32, -64, -128,
+ -2, -4, -8, -16, -32, -64, -128, 0,
+ -4, -8, -16, -32, -64, -128, 0, 0,
+ -8, -16, -32, -64, -128, 0, 0, 0,
+ -16, -32, -64, -128, 0, 0, 0, 0,
+ -32, -64, -128, 0, 0, 0, 0, 0,
+ -64, -128, 0, 0, 0, 0, 0, 0,
+ -128, 0, 0, 0, 0, 0, 0, 0
+ -1, -2, -4, -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096,
+ -8192, -16384, -32768,
+ -2, -4, -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096,
+ -8192, -16384, -32768, 0,
+ -4, -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192,
+ -16384, -32768, 0, 0,
+ -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192,
+ -16384, -32768, 0, 0, 0,
+ -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384,
+ -32768, 0, 0, 0, 0,
+ -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768,
+ 0, 0, 0, 0, 0,
+ -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, 0,
+ 0, 0, 0, 0, 0,
+ -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, 0, 0, 0,
+ 0, 0, 0, 0
+ -1, -2, -4, -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096,
+ -8192, -16384, -32768, -65536, -131072, -262144, -524288, -1048576,
+ -2097152, -4194304, -8388608, -16777216, -33554432, -67108864,
+ -134217728, -268435456, -536870912, -1073741824, -2147483648,
+ -2, -4, -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096,
+ -8192, -16384, -32768, -65536, -131072, -262144, -524288, -1048576,
+ -2097152, -4194304, -8388608, -16777216, -33554432, -67108864,
+ -134217728, -268435456, -536870912, -1073741824, -2147483648, 0,
+ -4, -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192,
+ -16384, -32768, -65536, -131072, -262144, -524288, -1048576, -2097152,
+ -4194304, -8388608, -16777216, -33554432, -67108864, -134217728,
+ -268435456, -536870912, -1073741824, -2147483648, 0, 0,
+ -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192,
+ -16384, -32768, -65536, -131072, -262144, -524288, -1048576, -2097152,
+ -4194304, -8388608, -16777216, -33554432, -67108864, -134217728,
+ -268435456, -536870912, -1073741824, -2147483648, 0, 0, 0,
+ -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384,
+ -32768, -65536, -131072, -262144, -524288, -1048576, -2097152,
+ -4194304, -8388608, -16777216, -33554432, -67108864, -134217728,
+ -268435456, -536870912, -1073741824, -2147483648, 0, 0, 0, 0,
+ -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768,
+ -65536, -131072, -262144, -524288, -1048576, -2097152, -4194304,
+ -8388608, -16777216, -33554432, -67108864, -134217728, -268435456,
+ -536870912, -1073741824, -2147483648, 0, 0, 0, 0, 0,
+ -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768,
+ -65536, -131072, -262144, -524288, -1048576, -2097152, -4194304,
+ -8388608, -16777216, -33554432, -67108864, -134217728, -268435456,
+ -536870912, -1073741824, -2147483648, 0, 0, 0, 0, 0, 0,
+ -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, -65536,
+ -131072, -262144, -524288, -1048576, -2097152, -4194304, -8388608,
+ -16777216, -33554432, -67108864, -134217728, -268435456, -536870912,
+ -1073741824, -2147483648, 0, 0, 0, 0, 0, 0, 0
+ -1, -2, -4, -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096,
+ -8192, -16384, -32768, -65536, -131072, -262144, -524288, -1048576,
+ -2097152, -4194304, -8388608, -16777216, -33554432, -67108864,
+ -134217728, -268435456, -536870912, -1073741824, -2147483648,
+ -4294967296, -8589934592, -17179869184, -34359738368, -68719476736,
+ -137438953472, -274877906944, -549755813888, -1099511627776,
+ -2199023255552, -4398046511104, -8796093022208, -17592186044416,
+ -35184372088832, -70368744177664, -140737488355328, -281474976710656,
+ -562949953421312, -1125899906842624, -2251799813685248,
+ -4503599627370496, -9007199254740992, -18014398509481984,
+ -36028797018963968, -72057594037927936, -144115188075855872,
+ -288230376151711744, -576460752303423488, -1152921504606846976,
+ -2305843009213693952, -4611686018427387904, -9223372036854775808,
+ -2, -4, -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096,
+ -8192, -16384, -32768, -65536, -131072, -262144, -524288, -1048576,
+ -2097152, -4194304, -8388608, -16777216, -33554432, -67108864,
+ -134217728, -268435456, -536870912, -1073741824, -2147483648,
+ -4294967296, -8589934592, -17179869184, -34359738368, -68719476736,
+ -137438953472, -274877906944, -549755813888, -1099511627776,
+ -2199023255552, -4398046511104, -8796093022208, -17592186044416,
+ -35184372088832, -70368744177664, -140737488355328, -281474976710656,
+ -562949953421312, -1125899906842624, -2251799813685248,
+ -4503599627370496, -9007199254740992, -18014398509481984,
+ -36028797018963968, -72057594037927936, -144115188075855872,
+ -288230376151711744, -576460752303423488, -1152921504606846976,
+ -2305843009213693952, -4611686018427387904, -9223372036854775808, 0,
+ -4, -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192,
+ -16384, -32768, -65536, -131072, -262144, -524288, -1048576, -2097152,
+ -4194304, -8388608, -16777216, -33554432, -67108864, -134217728,
+ -268435456, -536870912, -1073741824, -2147483648, -4294967296,
+ -8589934592, -17179869184, -34359738368, -68719476736, -137438953472,
+ -274877906944, -549755813888, -1099511627776, -2199023255552,
+ -4398046511104, -8796093022208, -17592186044416, -35184372088832,
+ -70368744177664, -140737488355328, -281474976710656, -562949953421312,
+ -1125899906842624, -2251799813685248, -4503599627370496,
+ -9007199254740992, -18014398509481984, -36028797018963968,
+ -72057594037927936, -144115188075855872, -288230376151711744,
+ -576460752303423488, -1152921504606846976, -2305843009213693952,
+ -4611686018427387904, -9223372036854775808, 0, 0,
+ -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192,
+ -16384, -32768, -65536, -131072, -262144, -524288, -1048576, -2097152,
+ -4194304, -8388608, -16777216, -33554432, -67108864, -134217728,
+ -268435456, -536870912, -1073741824, -2147483648, -4294967296,
+ -8589934592, -17179869184, -34359738368, -68719476736, -137438953472,
+ -274877906944, -549755813888, -1099511627776, -2199023255552,
+ -4398046511104, -8796093022208, -17592186044416, -35184372088832,
+ -70368744177664, -140737488355328, -281474976710656, -562949953421312,
+ -1125899906842624, -2251799813685248, -4503599627370496,
+ -9007199254740992, -18014398509481984, -36028797018963968,
+ -72057594037927936, -144115188075855872, -288230376151711744,
+ -576460752303423488, -1152921504606846976, -2305843009213693952,
+ -4611686018427387904, -9223372036854775808, 0, 0, 0,
+ -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384,
+ -32768, -65536, -131072, -262144, -524288, -1048576, -2097152,
+ -4194304, -8388608, -16777216, -33554432, -67108864, -134217728,
+ -268435456, -536870912, -1073741824, -2147483648, -4294967296,
+ -8589934592, -17179869184, -34359738368, -68719476736, -137438953472,
+ -274877906944, -549755813888, -1099511627776, -2199023255552,
+ -4398046511104, -8796093022208, -17592186044416, -35184372088832,
+ -70368744177664, -140737488355328, -281474976710656, -562949953421312,
+ -1125899906842624, -2251799813685248, -4503599627370496,
+ -9007199254740992, -18014398509481984, -36028797018963968,
+ -72057594037927936, -144115188075855872, -288230376151711744,
+ -576460752303423488, -1152921504606846976, -2305843009213693952,
+ -4611686018427387904, -9223372036854775808, 0, 0, 0, 0,
+ -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768,
+ -65536, -131072, -262144, -524288, -1048576, -2097152, -4194304,
+ -8388608, -16777216, -33554432, -67108864, -134217728, -268435456,
+ -536870912, -1073741824, -2147483648, -4294967296, -8589934592,
+ -17179869184, -34359738368, -68719476736, -137438953472, -274877906944,
+ -549755813888, -1099511627776, -2199023255552, -4398046511104,
+ -8796093022208, -17592186044416, -35184372088832, -70368744177664,
+ -140737488355328, -281474976710656, -562949953421312,
+ -1125899906842624, -2251799813685248, -4503599627370496,
+ -9007199254740992, -18014398509481984, -36028797018963968,
+ -72057594037927936, -144115188075855872, -288230376151711744,
+ -576460752303423488, -1152921504606846976, -2305843009213693952,
+ -4611686018427387904, -9223372036854775808, 0, 0, 0, 0, 0,
+ -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768,
+ -65536, -131072, -262144, -524288, -1048576, -2097152, -4194304,
+ -8388608, -16777216, -33554432, -67108864, -134217728, -268435456,
+ -536870912, -1073741824, -2147483648, -4294967296, -8589934592,
+ -17179869184, -34359738368, -68719476736, -137438953472, -274877906944,
+ -549755813888, -1099511627776, -2199023255552, -4398046511104,
+ -8796093022208, -17592186044416, -35184372088832, -70368744177664,
+ -140737488355328, -281474976710656, -562949953421312,
+ -1125899906842624, -2251799813685248, -4503599627370496,
+ -9007199254740992, -18014398509481984, -36028797018963968,
+ -72057594037927936, -144115188075855872, -288230376151711744,
+ -576460752303423488, -1152921504606846976, -2305843009213693952,
+ -4611686018427387904, -9223372036854775808, 0, 0, 0, 0, 0, 0,
+ -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, -65536,
+ -131072, -262144, -524288, -1048576, -2097152, -4194304, -8388608,
+ -16777216, -33554432, -67108864, -134217728, -268435456, -536870912,
+ -1073741824, -2147483648, -4294967296, -8589934592, -17179869184,
+ -34359738368, -68719476736, -137438953472, -274877906944,
+ -549755813888, -1099511627776, -2199023255552, -4398046511104,
+ -8796093022208, -17592186044416, -35184372088832, -70368744177664,
+ -140737488355328, -281474976710656, -562949953421312,
+ -1125899906842624, -2251799813685248, -4503599627370496,
+ -9007199254740992, -18014398509481984, -36028797018963968,
+ -72057594037927936, -144115188075855872, -288230376151711744,
+ -576460752303423488, -1152921504606846976, -2305843009213693952,
+ -4611686018427387904, -9223372036854775808, 0, 0, 0, 0, 0, 0, 0
+ 255, 254, 252, 248, 240, 224, 192, 128,
+ 254, 252, 248, 240, 224, 192, 128, 0,
+ 252, 248, 240, 224, 192, 128, 0, 0,
+ 248, 240, 224, 192, 128, 0, 0, 0,
+ 240, 224, 192, 128, 0, 0, 0, 0,
+ 224, 192, 128, 0, 0, 0, 0, 0,
+ 192, 128, 0, 0, 0, 0, 0, 0,
+ 128, 0, 0, 0, 0, 0, 0, 0
+ 65535, 65534, 65532, 65528, 65520, 65504, 65472, 65408, 65280, 65024,
+ 64512, 63488, 61440, 57344, 49152, 32768,
+ 65534, 65532, 65528, 65520, 65504, 65472, 65408, 65280, 65024, 64512,
+ 63488, 61440, 57344, 49152, 32768, 0,
+ 65532, 65528, 65520, 65504, 65472, 65408, 65280, 65024, 64512, 63488,
+ 61440, 57344, 49152, 32768, 0, 0,
+ 65528, 65520, 65504, 65472, 65408, 65280, 65024, 64512, 63488, 61440,
+ 57344, 49152, 32768, 0, 0, 0,
+ 65520, 65504, 65472, 65408, 65280, 65024, 64512, 63488, 61440, 57344,
+ 49152, 32768, 0, 0, 0, 0,
+ 65504, 65472, 65408, 65280, 65024, 64512, 63488, 61440, 57344, 49152,
+ 32768, 0, 0, 0, 0, 0,
+ 65472, 65408, 65280, 65024, 64512, 63488, 61440, 57344, 49152, 32768,
+ 0, 0, 0, 0, 0, 0,
+ 65408, 65280, 65024, 64512, 63488, 61440, 57344, 49152, 32768, 0, 0, 0,
+ 0, 0, 0, 0
+ 4294967295, 4294967294, 4294967292, 4294967288, 4294967280, 4294967264,
+ 4294967232, 4294967168, 4294967040, 4294966784, 4294966272, 4294965248,
+ 4294963200, 4294959104, 4294950912, 4294934528, 4294901760, 4294836224,
+ 4294705152, 4294443008, 4293918720, 4292870144, 4290772992, 4286578688,
+ 4278190080, 4261412864, 4227858432, 4160749568, 4026531840, 3758096384,
+ 3221225472, 2147483648,
+ 4294967294, 4294967292, 4294967288, 4294967280, 4294967264, 4294967232,
+ 4294967168, 4294967040, 4294966784, 4294966272, 4294965248, 4294963200,
+ 4294959104, 4294950912, 4294934528, 4294901760, 4294836224, 4294705152,
+ 4294443008, 4293918720, 4292870144, 4290772992, 4286578688, 4278190080,
+ 4261412864, 4227858432, 4160749568, 4026531840, 3758096384, 3221225472,
+ 2147483648, 0,
+ 4294967292, 4294967288, 4294967280, 4294967264, 4294967232, 4294967168,
+ 4294967040, 4294966784, 4294966272, 4294965248, 4294963200, 4294959104,
+ 4294950912, 4294934528, 4294901760, 4294836224, 4294705152, 4294443008,
+ 4293918720, 4292870144, 4290772992, 4286578688, 4278190080, 4261412864,
+ 4227858432, 4160749568, 4026531840, 3758096384, 3221225472, 2147483648,
+ 0, 0,
+ 4294967288, 4294967280, 4294967264, 4294967232, 4294967168, 4294967040,
+ 4294966784, 4294966272, 4294965248, 4294963200, 4294959104, 4294950912,
+ 4294934528, 4294901760, 4294836224, 4294705152, 4294443008, 4293918720,
+ 4292870144, 4290772992, 4286578688, 4278190080, 4261412864, 4227858432,
+ 4160749568, 4026531840, 3758096384, 3221225472, 2147483648, 0, 0, 0,
+ 4294967280, 4294967264, 4294967232, 4294967168, 4294967040, 4294966784,
+ 4294966272, 4294965248, 4294963200, 4294959104, 4294950912, 4294934528,
+ 4294901760, 4294836224, 4294705152, 4294443008, 4293918720, 4292870144,
+ 4290772992, 4286578688, 4278190080, 4261412864, 4227858432, 4160749568,
+ 4026531840, 3758096384, 3221225472, 2147483648, 0, 0, 0, 0,
+ 4294967264, 4294967232, 4294967168, 4294967040, 4294966784, 4294966272,
+ 4294965248, 4294963200, 4294959104, 4294950912, 4294934528, 4294901760,
+ 4294836224, 4294705152, 4294443008, 4293918720, 4292870144, 4290772992,
+ 4286578688, 4278190080, 4261412864, 4227858432, 4160749568, 4026531840,
+ 3758096384, 3221225472, 2147483648, 0, 0, 0, 0, 0,
+ 4294967232, 4294967168, 4294967040, 4294966784, 4294966272, 4294965248,
+ 4294963200, 4294959104, 4294950912, 4294934528, 4294901760, 4294836224,
+ 4294705152, 4294443008, 4293918720, 4292870144, 4290772992, 4286578688,
+ 4278190080, 4261412864, 4227858432, 4160749568, 4026531840, 3758096384,
+ 3221225472, 2147483648, 0, 0, 0, 0, 0, 0,
+ 4294967168, 4294967040, 4294966784, 4294966272, 4294965248, 4294963200,
+ 4294959104, 4294950912, 4294934528, 4294901760, 4294836224, 4294705152,
+ 4294443008, 4293918720, 4292870144, 4290772992, 4286578688, 4278190080,
+ 4261412864, 4227858432, 4160749568, 4026531840, 3758096384, 3221225472,
+ 2147483648, 0, 0, 0, 0, 0, 0, 0
+ 18446744073709551615, 18446744073709551614, 18446744073709551612,
+ 18446744073709551608, 18446744073709551600, 18446744073709551584,
+ 18446744073709551552, 18446744073709551488, 18446744073709551360,
+ 18446744073709551104, 18446744073709550592, 18446744073709549568,
+ 18446744073709547520, 18446744073709543424, 18446744073709535232,
+ 18446744073709518848, 18446744073709486080, 18446744073709420544,
+ 18446744073709289472, 18446744073709027328, 18446744073708503040,
+ 18446744073707454464, 18446744073705357312, 18446744073701163008,
+ 18446744073692774400, 18446744073675997184, 18446744073642442752,
+ 18446744073575333888, 18446744073441116160, 18446744073172680704,
+ 18446744072635809792, 18446744071562067968, 18446744069414584320,
+ 18446744065119617024, 18446744056529682432, 18446744039349813248,
+ 18446744004990074880, 18446743936270598144, 18446743798831644672,
+ 18446743523953737728, 18446742974197923840, 18446741874686296064,
+ 18446739675663040512, 18446735277616529408, 18446726481523507200,
+ 18446708889337462784, 18446673704965373952, 18446603336221196288,
+ 18446462598732840960, 18446181123756130304, 18445618173802708992,
+ 18444492273895866368, 18442240474082181120, 18437736874454810624,
+ 18428729675200069632, 18410715276690587648, 18374686479671623680,
+ 18302628885633695744, 18158513697557839872, 17870283321406128128,
+ 17293822569102704640, 16140901064495857664, 13835058055282163712,
+ 9223372036854775808,
+ 18446744073709551614, 18446744073709551612, 18446744073709551608,
+ 18446744073709551600, 18446744073709551584, 18446744073709551552,
+ 18446744073709551488, 18446744073709551360, 18446744073709551104,
+ 18446744073709550592, 18446744073709549568, 18446744073709547520,
+ 18446744073709543424, 18446744073709535232, 18446744073709518848,
+ 18446744073709486080, 18446744073709420544, 18446744073709289472,
+ 18446744073709027328, 18446744073708503040, 18446744073707454464,
+ 18446744073705357312, 18446744073701163008, 18446744073692774400,
+ 18446744073675997184, 18446744073642442752, 18446744073575333888,
+ 18446744073441116160, 18446744073172680704, 18446744072635809792,
+ 18446744071562067968, 18446744069414584320, 18446744065119617024,
+ 18446744056529682432, 18446744039349813248, 18446744004990074880,
+ 18446743936270598144, 18446743798831644672, 18446743523953737728,
+ 18446742974197923840, 18446741874686296064, 18446739675663040512,
+ 18446735277616529408, 18446726481523507200, 18446708889337462784,
+ 18446673704965373952, 18446603336221196288, 18446462598732840960,
+ 18446181123756130304, 18445618173802708992, 18444492273895866368,
+ 18442240474082181120, 18437736874454810624, 18428729675200069632,
+ 18410715276690587648, 18374686479671623680, 18302628885633695744,
+ 18158513697557839872, 17870283321406128128, 17293822569102704640,
+ 16140901064495857664, 13835058055282163712, 9223372036854775808, 0,
+ 18446744073709551612, 18446744073709551608, 18446744073709551600,
+ 18446744073709551584, 18446744073709551552, 18446744073709551488,
+ 18446744073709551360, 18446744073709551104, 18446744073709550592,
+ 18446744073709549568, 18446744073709547520, 18446744073709543424,
+ 18446744073709535232, 18446744073709518848, 18446744073709486080,
+ 18446744073709420544, 18446744073709289472, 18446744073709027328,
+ 18446744073708503040, 18446744073707454464, 18446744073705357312,
+ 18446744073701163008, 18446744073692774400, 18446744073675997184,
+ 18446744073642442752, 18446744073575333888, 18446744073441116160,
+ 18446744073172680704, 18446744072635809792, 18446744071562067968,
+ 18446744069414584320, 18446744065119617024, 18446744056529682432,
+ 18446744039349813248, 18446744004990074880, 18446743936270598144,
+ 18446743798831644672, 18446743523953737728, 18446742974197923840,
+ 18446741874686296064, 18446739675663040512, 18446735277616529408,
+ 18446726481523507200, 18446708889337462784, 18446673704965373952,
+ 18446603336221196288, 18446462598732840960, 18446181123756130304,
+ 18445618173802708992, 18444492273895866368, 18442240474082181120,
+ 18437736874454810624, 18428729675200069632, 18410715276690587648,
+ 18374686479671623680, 18302628885633695744, 18158513697557839872,
+ 17870283321406128128, 17293822569102704640, 16140901064495857664,
+ 13835058055282163712, 9223372036854775808, 0, 0,
+ 18446744073709551608, 18446744073709551600, 18446744073709551584,
+ 18446744073709551552, 18446744073709551488, 18446744073709551360,
+ 18446744073709551104, 18446744073709550592, 18446744073709549568,
+ 18446744073709547520, 18446744073709543424, 18446744073709535232,
+ 18446744073709518848, 18446744073709486080, 18446744073709420544,
+ 18446744073709289472, 18446744073709027328, 18446744073708503040,
+ 18446744073707454464, 18446744073705357312, 18446744073701163008,
+ 18446744073692774400, 18446744073675997184, 18446744073642442752,
+ 18446744073575333888, 18446744073441116160, 18446744073172680704,
+ 18446744072635809792, 18446744071562067968, 18446744069414584320,
+ 18446744065119617024, 18446744056529682432, 18446744039349813248,
+ 18446744004990074880, 18446743936270598144, 18446743798831644672,
+ 18446743523953737728, 18446742974197923840, 18446741874686296064,
+ 18446739675663040512, 18446735277616529408, 18446726481523507200,
+ 18446708889337462784, 18446673704965373952, 18446603336221196288,
+ 18446462598732840960, 18446181123756130304, 18445618173802708992,
+ 18444492273895866368, 18442240474082181120, 18437736874454810624,
+ 18428729675200069632, 18410715276690587648, 18374686479671623680,
+ 18302628885633695744, 18158513697557839872, 17870283321406128128,
+ 17293822569102704640, 16140901064495857664, 13835058055282163712,
+ 9223372036854775808, 0, 0, 0,
+ 18446744073709551600, 18446744073709551584, 18446744073709551552,
+ 18446744073709551488, 18446744073709551360, 18446744073709551104,
+ 18446744073709550592, 18446744073709549568, 18446744073709547520,
+ 18446744073709543424, 18446744073709535232, 18446744073709518848,
+ 18446744073709486080, 18446744073709420544, 18446744073709289472,
+ 18446744073709027328, 18446744073708503040, 18446744073707454464,
+ 18446744073705357312, 18446744073701163008, 18446744073692774400,
+ 18446744073675997184, 18446744073642442752, 18446744073575333888,
+ 18446744073441116160, 18446744073172680704, 18446744072635809792,
+ 18446744071562067968, 18446744069414584320, 18446744065119617024,
+ 18446744056529682432, 18446744039349813248, 18446744004990074880,
+ 18446743936270598144, 18446743798831644672, 18446743523953737728,
+ 18446742974197923840, 18446741874686296064, 18446739675663040512,
+ 18446735277616529408, 18446726481523507200, 18446708889337462784,
+ 18446673704965373952, 18446603336221196288, 18446462598732840960,
+ 18446181123756130304, 18445618173802708992, 18444492273895866368,
+ 18442240474082181120, 18437736874454810624, 18428729675200069632,
+ 18410715276690587648, 18374686479671623680, 18302628885633695744,
+ 18158513697557839872, 17870283321406128128, 17293822569102704640,
+ 16140901064495857664, 13835058055282163712, 9223372036854775808, 0, 0,
+ 0, 0,
+ 18446744073709551584, 18446744073709551552, 18446744073709551488,
+ 18446744073709551360, 18446744073709551104, 18446744073709550592,
+ 18446744073709549568, 18446744073709547520, 18446744073709543424,
+ 18446744073709535232, 18446744073709518848, 18446744073709486080,
+ 18446744073709420544, 18446744073709289472, 18446744073709027328,
+ 18446744073708503040, 18446744073707454464, 18446744073705357312,
+ 18446744073701163008, 18446744073692774400, 18446744073675997184,
+ 18446744073642442752, 18446744073575333888, 18446744073441116160,
+ 18446744073172680704, 18446744072635809792, 18446744071562067968,
+ 18446744069414584320, 18446744065119617024, 18446744056529682432,
+ 18446744039349813248, 18446744004990074880, 18446743936270598144,
+ 18446743798831644672, 18446743523953737728, 18446742974197923840,
+ 18446741874686296064, 18446739675663040512, 18446735277616529408,
+ 18446726481523507200, 18446708889337462784, 18446673704965373952,
+ 18446603336221196288, 18446462598732840960, 18446181123756130304,
+ 18445618173802708992, 18444492273895866368, 18442240474082181120,
+ 18437736874454810624, 18428729675200069632, 18410715276690587648,
+ 18374686479671623680, 18302628885633695744, 18158513697557839872,
+ 17870283321406128128, 17293822569102704640, 16140901064495857664,
+ 13835058055282163712, 9223372036854775808, 0, 0, 0, 0, 0,
+ 18446744073709551552, 18446744073709551488, 18446744073709551360,
+ 18446744073709551104, 18446744073709550592, 18446744073709549568,
+ 18446744073709547520, 18446744073709543424, 18446744073709535232,
+ 18446744073709518848, 18446744073709486080, 18446744073709420544,
+ 18446744073709289472, 18446744073709027328, 18446744073708503040,
+ 18446744073707454464, 18446744073705357312, 18446744073701163008,
+ 18446744073692774400, 18446744073675997184, 18446744073642442752,
+ 18446744073575333888, 18446744073441116160, 18446744073172680704,
+ 18446744072635809792, 18446744071562067968, 18446744069414584320,
+ 18446744065119617024, 18446744056529682432, 18446744039349813248,
+ 18446744004990074880, 18446743936270598144, 18446743798831644672,
+ 18446743523953737728, 18446742974197923840, 18446741874686296064,
+ 18446739675663040512, 18446735277616529408, 18446726481523507200,
+ 18446708889337462784, 18446673704965373952, 18446603336221196288,
+ 18446462598732840960, 18446181123756130304, 18445618173802708992,
+ 18444492273895866368, 18442240474082181120, 18437736874454810624,
+ 18428729675200069632, 18410715276690587648, 18374686479671623680,
+ 18302628885633695744, 18158513697557839872, 17870283321406128128,
+ 17293822569102704640, 16140901064495857664, 13835058055282163712,
+ 9223372036854775808, 0, 0, 0, 0, 0, 0,
+ 18446744073709551488, 18446744073709551360, 18446744073709551104,
+ 18446744073709550592, 18446744073709549568, 18446744073709547520,
+ 18446744073709543424, 18446744073709535232, 18446744073709518848,
+ 18446744073709486080, 18446744073709420544, 18446744073709289472,
+ 18446744073709027328, 18446744073708503040, 18446744073707454464,
+ 18446744073705357312, 18446744073701163008, 18446744073692774400,
+ 18446744073675997184, 18446744073642442752, 18446744073575333888,
+ 18446744073441116160, 18446744073172680704, 18446744072635809792,
+ 18446744071562067968, 18446744069414584320, 18446744065119617024,
+ 18446744056529682432, 18446744039349813248, 18446744004990074880,
+ 18446743936270598144, 18446743798831644672, 18446743523953737728,
+ 18446742974197923840, 18446741874686296064, 18446739675663040512,
+ 18446735277616529408, 18446726481523507200, 18446708889337462784,
+ 18446673704965373952, 18446603336221196288, 18446462598732840960,
+ 18446181123756130304, 18445618173802708992, 18444492273895866368,
+ 18442240474082181120, 18437736874454810624, 18428729675200069632,
+ 18410715276690587648, 18374686479671623680, 18302628885633695744,
+ 18158513697557839872, 17870283321406128128, 17293822569102704640,
+ 16140901064495857664, 13835058055282163712, 9223372036854775808, 0, 0,
+ 0, 0, 0, 0, 0
+ 0, 0.0001, 0.0002, 0.0003, 0.0004, 0.0005, 0.0006, 0.0007,
+ 1, 1.0001, 1.0002, 1.0003, 1.0004, 1.0005, 1.0006, 1.0007,
+ 2, 2.0001, 2.0002, 2.0003, 2.0004, 2.0005, 2.0006, 2.0007,
+ 3, 3.0001, 3.0002, 3.0003, 3.0004, 3.0005, 3.0006, 3.0007,
+ 4, 4.0001, 4.0002, 4.0003, 4.0004, 4.0005, 4.0006, 4.0007,
+ 5, 5.0001, 5.0002, 5.0003, 5.0004, 5.0005, 5.0006, 5.0007,
+ 6, 6.0001, 6.0002, 6.0003, 6.0004, 6.0005, 6.0006, 6.0007,
+ 7, 7.0001, 7.0002, 7.0003, 7.0004, 7.0005, 7.0006, 7.0007
diff --git a/tools/testfiles/tnoddlfile.ddl b/tools/testfiles/tnoddlfile.ddl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/tools/testfiles/tnoddlfile.ddl
diff --git a/tools/testfiles/tnoddlfile.exp b/tools/testfiles/tnoddlfile.exp
new file mode 100644
index 0000000..dc19888
--- /dev/null
+++ b/tools/testfiles/tnoddlfile.exp
@@ -0,0 +1,402 @@
+
+ -1, -2, -4, -8, -16, -32, -64, -128,
+ -2, -4, -8, -16, -32, -64, -128, 0,
+ -4, -8, -16, -32, -64, -128, 0, 0,
+ -8, -16, -32, -64, -128, 0, 0, 0,
+ -16, -32, -64, -128, 0, 0, 0, 0,
+ -32, -64, -128, 0, 0, 0, 0, 0,
+ -64, -128, 0, 0, 0, 0, 0, 0,
+ -128, 0, 0, 0, 0, 0, 0, 0
+ -1, -2, -4, -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096,
+ -8192, -16384, -32768,
+ -2, -4, -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096,
+ -8192, -16384, -32768, 0,
+ -4, -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192,
+ -16384, -32768, 0, 0,
+ -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192,
+ -16384, -32768, 0, 0, 0,
+ -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384,
+ -32768, 0, 0, 0, 0,
+ -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768,
+ 0, 0, 0, 0, 0,
+ -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, 0,
+ 0, 0, 0, 0, 0,
+ -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, 0, 0, 0,
+ 0, 0, 0, 0
+ -1, -2, -4, -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096,
+ -8192, -16384, -32768, -65536, -131072, -262144, -524288, -1048576,
+ -2097152, -4194304, -8388608, -16777216, -33554432, -67108864,
+ -134217728, -268435456, -536870912, -1073741824, -2147483648,
+ -2, -4, -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096,
+ -8192, -16384, -32768, -65536, -131072, -262144, -524288, -1048576,
+ -2097152, -4194304, -8388608, -16777216, -33554432, -67108864,
+ -134217728, -268435456, -536870912, -1073741824, -2147483648, 0,
+ -4, -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192,
+ -16384, -32768, -65536, -131072, -262144, -524288, -1048576, -2097152,
+ -4194304, -8388608, -16777216, -33554432, -67108864, -134217728,
+ -268435456, -536870912, -1073741824, -2147483648, 0, 0,
+ -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192,
+ -16384, -32768, -65536, -131072, -262144, -524288, -1048576, -2097152,
+ -4194304, -8388608, -16777216, -33554432, -67108864, -134217728,
+ -268435456, -536870912, -1073741824, -2147483648, 0, 0, 0,
+ -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384,
+ -32768, -65536, -131072, -262144, -524288, -1048576, -2097152,
+ -4194304, -8388608, -16777216, -33554432, -67108864, -134217728,
+ -268435456, -536870912, -1073741824, -2147483648, 0, 0, 0, 0,
+ -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768,
+ -65536, -131072, -262144, -524288, -1048576, -2097152, -4194304,
+ -8388608, -16777216, -33554432, -67108864, -134217728, -268435456,
+ -536870912, -1073741824, -2147483648, 0, 0, 0, 0, 0,
+ -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768,
+ -65536, -131072, -262144, -524288, -1048576, -2097152, -4194304,
+ -8388608, -16777216, -33554432, -67108864, -134217728, -268435456,
+ -536870912, -1073741824, -2147483648, 0, 0, 0, 0, 0, 0,
+ -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, -65536,
+ -131072, -262144, -524288, -1048576, -2097152, -4194304, -8388608,
+ -16777216, -33554432, -67108864, -134217728, -268435456, -536870912,
+ -1073741824, -2147483648, 0, 0, 0, 0, 0, 0, 0
+ -1, -2, -4, -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096,
+ -8192, -16384, -32768, -65536, -131072, -262144, -524288, -1048576,
+ -2097152, -4194304, -8388608, -16777216, -33554432, -67108864,
+ -134217728, -268435456, -536870912, -1073741824, -2147483648,
+ -4294967296, -8589934592, -17179869184, -34359738368, -68719476736,
+ -137438953472, -274877906944, -549755813888, -1099511627776,
+ -2199023255552, -4398046511104, -8796093022208, -17592186044416,
+ -35184372088832, -70368744177664, -140737488355328, -281474976710656,
+ -562949953421312, -1125899906842624, -2251799813685248,
+ -4503599627370496, -9007199254740992, -18014398509481984,
+ -36028797018963968, -72057594037927936, -144115188075855872,
+ -288230376151711744, -576460752303423488, -1152921504606846976,
+ -2305843009213693952, -4611686018427387904, -9223372036854775808,
+ -2, -4, -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096,
+ -8192, -16384, -32768, -65536, -131072, -262144, -524288, -1048576,
+ -2097152, -4194304, -8388608, -16777216, -33554432, -67108864,
+ -134217728, -268435456, -536870912, -1073741824, -2147483648,
+ -4294967296, -8589934592, -17179869184, -34359738368, -68719476736,
+ -137438953472, -274877906944, -549755813888, -1099511627776,
+ -2199023255552, -4398046511104, -8796093022208, -17592186044416,
+ -35184372088832, -70368744177664, -140737488355328, -281474976710656,
+ -562949953421312, -1125899906842624, -2251799813685248,
+ -4503599627370496, -9007199254740992, -18014398509481984,
+ -36028797018963968, -72057594037927936, -144115188075855872,
+ -288230376151711744, -576460752303423488, -1152921504606846976,
+ -2305843009213693952, -4611686018427387904, -9223372036854775808, 0,
+ -4, -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192,
+ -16384, -32768, -65536, -131072, -262144, -524288, -1048576, -2097152,
+ -4194304, -8388608, -16777216, -33554432, -67108864, -134217728,
+ -268435456, -536870912, -1073741824, -2147483648, -4294967296,
+ -8589934592, -17179869184, -34359738368, -68719476736, -137438953472,
+ -274877906944, -549755813888, -1099511627776, -2199023255552,
+ -4398046511104, -8796093022208, -17592186044416, -35184372088832,
+ -70368744177664, -140737488355328, -281474976710656, -562949953421312,
+ -1125899906842624, -2251799813685248, -4503599627370496,
+ -9007199254740992, -18014398509481984, -36028797018963968,
+ -72057594037927936, -144115188075855872, -288230376151711744,
+ -576460752303423488, -1152921504606846976, -2305843009213693952,
+ -4611686018427387904, -9223372036854775808, 0, 0,
+ -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192,
+ -16384, -32768, -65536, -131072, -262144, -524288, -1048576, -2097152,
+ -4194304, -8388608, -16777216, -33554432, -67108864, -134217728,
+ -268435456, -536870912, -1073741824, -2147483648, -4294967296,
+ -8589934592, -17179869184, -34359738368, -68719476736, -137438953472,
+ -274877906944, -549755813888, -1099511627776, -2199023255552,
+ -4398046511104, -8796093022208, -17592186044416, -35184372088832,
+ -70368744177664, -140737488355328, -281474976710656, -562949953421312,
+ -1125899906842624, -2251799813685248, -4503599627370496,
+ -9007199254740992, -18014398509481984, -36028797018963968,
+ -72057594037927936, -144115188075855872, -288230376151711744,
+ -576460752303423488, -1152921504606846976, -2305843009213693952,
+ -4611686018427387904, -9223372036854775808, 0, 0, 0,
+ -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384,
+ -32768, -65536, -131072, -262144, -524288, -1048576, -2097152,
+ -4194304, -8388608, -16777216, -33554432, -67108864, -134217728,
+ -268435456, -536870912, -1073741824, -2147483648, -4294967296,
+ -8589934592, -17179869184, -34359738368, -68719476736, -137438953472,
+ -274877906944, -549755813888, -1099511627776, -2199023255552,
+ -4398046511104, -8796093022208, -17592186044416, -35184372088832,
+ -70368744177664, -140737488355328, -281474976710656, -562949953421312,
+ -1125899906842624, -2251799813685248, -4503599627370496,
+ -9007199254740992, -18014398509481984, -36028797018963968,
+ -72057594037927936, -144115188075855872, -288230376151711744,
+ -576460752303423488, -1152921504606846976, -2305843009213693952,
+ -4611686018427387904, -9223372036854775808, 0, 0, 0, 0,
+ -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768,
+ -65536, -131072, -262144, -524288, -1048576, -2097152, -4194304,
+ -8388608, -16777216, -33554432, -67108864, -134217728, -268435456,
+ -536870912, -1073741824, -2147483648, -4294967296, -8589934592,
+ -17179869184, -34359738368, -68719476736, -137438953472, -274877906944,
+ -549755813888, -1099511627776, -2199023255552, -4398046511104,
+ -8796093022208, -17592186044416, -35184372088832, -70368744177664,
+ -140737488355328, -281474976710656, -562949953421312,
+ -1125899906842624, -2251799813685248, -4503599627370496,
+ -9007199254740992, -18014398509481984, -36028797018963968,
+ -72057594037927936, -144115188075855872, -288230376151711744,
+ -576460752303423488, -1152921504606846976, -2305843009213693952,
+ -4611686018427387904, -9223372036854775808, 0, 0, 0, 0, 0,
+ -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768,
+ -65536, -131072, -262144, -524288, -1048576, -2097152, -4194304,
+ -8388608, -16777216, -33554432, -67108864, -134217728, -268435456,
+ -536870912, -1073741824, -2147483648, -4294967296, -8589934592,
+ -17179869184, -34359738368, -68719476736, -137438953472, -274877906944,
+ -549755813888, -1099511627776, -2199023255552, -4398046511104,
+ -8796093022208, -17592186044416, -35184372088832, -70368744177664,
+ -140737488355328, -281474976710656, -562949953421312,
+ -1125899906842624, -2251799813685248, -4503599627370496,
+ -9007199254740992, -18014398509481984, -36028797018963968,
+ -72057594037927936, -144115188075855872, -288230376151711744,
+ -576460752303423488, -1152921504606846976, -2305843009213693952,
+ -4611686018427387904, -9223372036854775808, 0, 0, 0, 0, 0, 0,
+ -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, -65536,
+ -131072, -262144, -524288, -1048576, -2097152, -4194304, -8388608,
+ -16777216, -33554432, -67108864, -134217728, -268435456, -536870912,
+ -1073741824, -2147483648, -4294967296, -8589934592, -17179869184,
+ -34359738368, -68719476736, -137438953472, -274877906944,
+ -549755813888, -1099511627776, -2199023255552, -4398046511104,
+ -8796093022208, -17592186044416, -35184372088832, -70368744177664,
+ -140737488355328, -281474976710656, -562949953421312,
+ -1125899906842624, -2251799813685248, -4503599627370496,
+ -9007199254740992, -18014398509481984, -36028797018963968,
+ -72057594037927936, -144115188075855872, -288230376151711744,
+ -576460752303423488, -1152921504606846976, -2305843009213693952,
+ -4611686018427387904, -9223372036854775808, 0, 0, 0, 0, 0, 0, 0
+ 255, 254, 252, 248, 240, 224, 192, 128,
+ 254, 252, 248, 240, 224, 192, 128, 0,
+ 252, 248, 240, 224, 192, 128, 0, 0,
+ 248, 240, 224, 192, 128, 0, 0, 0,
+ 240, 224, 192, 128, 0, 0, 0, 0,
+ 224, 192, 128, 0, 0, 0, 0, 0,
+ 192, 128, 0, 0, 0, 0, 0, 0,
+ 128, 0, 0, 0, 0, 0, 0, 0
+ 65535, 65534, 65532, 65528, 65520, 65504, 65472, 65408, 65280, 65024,
+ 64512, 63488, 61440, 57344, 49152, 32768,
+ 65534, 65532, 65528, 65520, 65504, 65472, 65408, 65280, 65024, 64512,
+ 63488, 61440, 57344, 49152, 32768, 0,
+ 65532, 65528, 65520, 65504, 65472, 65408, 65280, 65024, 64512, 63488,
+ 61440, 57344, 49152, 32768, 0, 0,
+ 65528, 65520, 65504, 65472, 65408, 65280, 65024, 64512, 63488, 61440,
+ 57344, 49152, 32768, 0, 0, 0,
+ 65520, 65504, 65472, 65408, 65280, 65024, 64512, 63488, 61440, 57344,
+ 49152, 32768, 0, 0, 0, 0,
+ 65504, 65472, 65408, 65280, 65024, 64512, 63488, 61440, 57344, 49152,
+ 32768, 0, 0, 0, 0, 0,
+ 65472, 65408, 65280, 65024, 64512, 63488, 61440, 57344, 49152, 32768,
+ 0, 0, 0, 0, 0, 0,
+ 65408, 65280, 65024, 64512, 63488, 61440, 57344, 49152, 32768, 0, 0, 0,
+ 0, 0, 0, 0
+ 4294967295, 4294967294, 4294967292, 4294967288, 4294967280, 4294967264,
+ 4294967232, 4294967168, 4294967040, 4294966784, 4294966272, 4294965248,
+ 4294963200, 4294959104, 4294950912, 4294934528, 4294901760, 4294836224,
+ 4294705152, 4294443008, 4293918720, 4292870144, 4290772992, 4286578688,
+ 4278190080, 4261412864, 4227858432, 4160749568, 4026531840, 3758096384,
+ 3221225472, 2147483648,
+ 4294967294, 4294967292, 4294967288, 4294967280, 4294967264, 4294967232,
+ 4294967168, 4294967040, 4294966784, 4294966272, 4294965248, 4294963200,
+ 4294959104, 4294950912, 4294934528, 4294901760, 4294836224, 4294705152,
+ 4294443008, 4293918720, 4292870144, 4290772992, 4286578688, 4278190080,
+ 4261412864, 4227858432, 4160749568, 4026531840, 3758096384, 3221225472,
+ 2147483648, 0,
+ 4294967292, 4294967288, 4294967280, 4294967264, 4294967232, 4294967168,
+ 4294967040, 4294966784, 4294966272, 4294965248, 4294963200, 4294959104,
+ 4294950912, 4294934528, 4294901760, 4294836224, 4294705152, 4294443008,
+ 4293918720, 4292870144, 4290772992, 4286578688, 4278190080, 4261412864,
+ 4227858432, 4160749568, 4026531840, 3758096384, 3221225472, 2147483648,
+ 0, 0,
+ 4294967288, 4294967280, 4294967264, 4294967232, 4294967168, 4294967040,
+ 4294966784, 4294966272, 4294965248, 4294963200, 4294959104, 4294950912,
+ 4294934528, 4294901760, 4294836224, 4294705152, 4294443008, 4293918720,
+ 4292870144, 4290772992, 4286578688, 4278190080, 4261412864, 4227858432,
+ 4160749568, 4026531840, 3758096384, 3221225472, 2147483648, 0, 0, 0,
+ 4294967280, 4294967264, 4294967232, 4294967168, 4294967040, 4294966784,
+ 4294966272, 4294965248, 4294963200, 4294959104, 4294950912, 4294934528,
+ 4294901760, 4294836224, 4294705152, 4294443008, 4293918720, 4292870144,
+ 4290772992, 4286578688, 4278190080, 4261412864, 4227858432, 4160749568,
+ 4026531840, 3758096384, 3221225472, 2147483648, 0, 0, 0, 0,
+ 4294967264, 4294967232, 4294967168, 4294967040, 4294966784, 4294966272,
+ 4294965248, 4294963200, 4294959104, 4294950912, 4294934528, 4294901760,
+ 4294836224, 4294705152, 4294443008, 4293918720, 4292870144, 4290772992,
+ 4286578688, 4278190080, 4261412864, 4227858432, 4160749568, 4026531840,
+ 3758096384, 3221225472, 2147483648, 0, 0, 0, 0, 0,
+ 4294967232, 4294967168, 4294967040, 4294966784, 4294966272, 4294965248,
+ 4294963200, 4294959104, 4294950912, 4294934528, 4294901760, 4294836224,
+ 4294705152, 4294443008, 4293918720, 4292870144, 4290772992, 4286578688,
+ 4278190080, 4261412864, 4227858432, 4160749568, 4026531840, 3758096384,
+ 3221225472, 2147483648, 0, 0, 0, 0, 0, 0,
+ 4294967168, 4294967040, 4294966784, 4294966272, 4294965248, 4294963200,
+ 4294959104, 4294950912, 4294934528, 4294901760, 4294836224, 4294705152,
+ 4294443008, 4293918720, 4292870144, 4290772992, 4286578688, 4278190080,
+ 4261412864, 4227858432, 4160749568, 4026531840, 3758096384, 3221225472,
+ 2147483648, 0, 0, 0, 0, 0, 0, 0
+ 18446744073709551615, 18446744073709551614, 18446744073709551612,
+ 18446744073709551608, 18446744073709551600, 18446744073709551584,
+ 18446744073709551552, 18446744073709551488, 18446744073709551360,
+ 18446744073709551104, 18446744073709550592, 18446744073709549568,
+ 18446744073709547520, 18446744073709543424, 18446744073709535232,
+ 18446744073709518848, 18446744073709486080, 18446744073709420544,
+ 18446744073709289472, 18446744073709027328, 18446744073708503040,
+ 18446744073707454464, 18446744073705357312, 18446744073701163008,
+ 18446744073692774400, 18446744073675997184, 18446744073642442752,
+ 18446744073575333888, 18446744073441116160, 18446744073172680704,
+ 18446744072635809792, 18446744071562067968, 18446744069414584320,
+ 18446744065119617024, 18446744056529682432, 18446744039349813248,
+ 18446744004990074880, 18446743936270598144, 18446743798831644672,
+ 18446743523953737728, 18446742974197923840, 18446741874686296064,
+ 18446739675663040512, 18446735277616529408, 18446726481523507200,
+ 18446708889337462784, 18446673704965373952, 18446603336221196288,
+ 18446462598732840960, 18446181123756130304, 18445618173802708992,
+ 18444492273895866368, 18442240474082181120, 18437736874454810624,
+ 18428729675200069632, 18410715276690587648, 18374686479671623680,
+ 18302628885633695744, 18158513697557839872, 17870283321406128128,
+ 17293822569102704640, 16140901064495857664, 13835058055282163712,
+ 9223372036854775808,
+ 18446744073709551614, 18446744073709551612, 18446744073709551608,
+ 18446744073709551600, 18446744073709551584, 18446744073709551552,
+ 18446744073709551488, 18446744073709551360, 18446744073709551104,
+ 18446744073709550592, 18446744073709549568, 18446744073709547520,
+ 18446744073709543424, 18446744073709535232, 18446744073709518848,
+ 18446744073709486080, 18446744073709420544, 18446744073709289472,
+ 18446744073709027328, 18446744073708503040, 18446744073707454464,
+ 18446744073705357312, 18446744073701163008, 18446744073692774400,
+ 18446744073675997184, 18446744073642442752, 18446744073575333888,
+ 18446744073441116160, 18446744073172680704, 18446744072635809792,
+ 18446744071562067968, 18446744069414584320, 18446744065119617024,
+ 18446744056529682432, 18446744039349813248, 18446744004990074880,
+ 18446743936270598144, 18446743798831644672, 18446743523953737728,
+ 18446742974197923840, 18446741874686296064, 18446739675663040512,
+ 18446735277616529408, 18446726481523507200, 18446708889337462784,
+ 18446673704965373952, 18446603336221196288, 18446462598732840960,
+ 18446181123756130304, 18445618173802708992, 18444492273895866368,
+ 18442240474082181120, 18437736874454810624, 18428729675200069632,
+ 18410715276690587648, 18374686479671623680, 18302628885633695744,
+ 18158513697557839872, 17870283321406128128, 17293822569102704640,
+ 16140901064495857664, 13835058055282163712, 9223372036854775808, 0,
+ 18446744073709551612, 18446744073709551608, 18446744073709551600,
+ 18446744073709551584, 18446744073709551552, 18446744073709551488,
+ 18446744073709551360, 18446744073709551104, 18446744073709550592,
+ 18446744073709549568, 18446744073709547520, 18446744073709543424,
+ 18446744073709535232, 18446744073709518848, 18446744073709486080,
+ 18446744073709420544, 18446744073709289472, 18446744073709027328,
+ 18446744073708503040, 18446744073707454464, 18446744073705357312,
+ 18446744073701163008, 18446744073692774400, 18446744073675997184,
+ 18446744073642442752, 18446744073575333888, 18446744073441116160,
+ 18446744073172680704, 18446744072635809792, 18446744071562067968,
+ 18446744069414584320, 18446744065119617024, 18446744056529682432,
+ 18446744039349813248, 18446744004990074880, 18446743936270598144,
+ 18446743798831644672, 18446743523953737728, 18446742974197923840,
+ 18446741874686296064, 18446739675663040512, 18446735277616529408,
+ 18446726481523507200, 18446708889337462784, 18446673704965373952,
+ 18446603336221196288, 18446462598732840960, 18446181123756130304,
+ 18445618173802708992, 18444492273895866368, 18442240474082181120,
+ 18437736874454810624, 18428729675200069632, 18410715276690587648,
+ 18374686479671623680, 18302628885633695744, 18158513697557839872,
+ 17870283321406128128, 17293822569102704640, 16140901064495857664,
+ 13835058055282163712, 9223372036854775808, 0, 0,
+ 18446744073709551608, 18446744073709551600, 18446744073709551584,
+ 18446744073709551552, 18446744073709551488, 18446744073709551360,
+ 18446744073709551104, 18446744073709550592, 18446744073709549568,
+ 18446744073709547520, 18446744073709543424, 18446744073709535232,
+ 18446744073709518848, 18446744073709486080, 18446744073709420544,
+ 18446744073709289472, 18446744073709027328, 18446744073708503040,
+ 18446744073707454464, 18446744073705357312, 18446744073701163008,
+ 18446744073692774400, 18446744073675997184, 18446744073642442752,
+ 18446744073575333888, 18446744073441116160, 18446744073172680704,
+ 18446744072635809792, 18446744071562067968, 18446744069414584320,
+ 18446744065119617024, 18446744056529682432, 18446744039349813248,
+ 18446744004990074880, 18446743936270598144, 18446743798831644672,
+ 18446743523953737728, 18446742974197923840, 18446741874686296064,
+ 18446739675663040512, 18446735277616529408, 18446726481523507200,
+ 18446708889337462784, 18446673704965373952, 18446603336221196288,
+ 18446462598732840960, 18446181123756130304, 18445618173802708992,
+ 18444492273895866368, 18442240474082181120, 18437736874454810624,
+ 18428729675200069632, 18410715276690587648, 18374686479671623680,
+ 18302628885633695744, 18158513697557839872, 17870283321406128128,
+ 17293822569102704640, 16140901064495857664, 13835058055282163712,
+ 9223372036854775808, 0, 0, 0,
+ 18446744073709551600, 18446744073709551584, 18446744073709551552,
+ 18446744073709551488, 18446744073709551360, 18446744073709551104,
+ 18446744073709550592, 18446744073709549568, 18446744073709547520,
+ 18446744073709543424, 18446744073709535232, 18446744073709518848,
+ 18446744073709486080, 18446744073709420544, 18446744073709289472,
+ 18446744073709027328, 18446744073708503040, 18446744073707454464,
+ 18446744073705357312, 18446744073701163008, 18446744073692774400,
+ 18446744073675997184, 18446744073642442752, 18446744073575333888,
+ 18446744073441116160, 18446744073172680704, 18446744072635809792,
+ 18446744071562067968, 18446744069414584320, 18446744065119617024,
+ 18446744056529682432, 18446744039349813248, 18446744004990074880,
+ 18446743936270598144, 18446743798831644672, 18446743523953737728,
+ 18446742974197923840, 18446741874686296064, 18446739675663040512,
+ 18446735277616529408, 18446726481523507200, 18446708889337462784,
+ 18446673704965373952, 18446603336221196288, 18446462598732840960,
+ 18446181123756130304, 18445618173802708992, 18444492273895866368,
+ 18442240474082181120, 18437736874454810624, 18428729675200069632,
+ 18410715276690587648, 18374686479671623680, 18302628885633695744,
+ 18158513697557839872, 17870283321406128128, 17293822569102704640,
+ 16140901064495857664, 13835058055282163712, 9223372036854775808, 0, 0,
+ 0, 0,
+ 18446744073709551584, 18446744073709551552, 18446744073709551488,
+ 18446744073709551360, 18446744073709551104, 18446744073709550592,
+ 18446744073709549568, 18446744073709547520, 18446744073709543424,
+ 18446744073709535232, 18446744073709518848, 18446744073709486080,
+ 18446744073709420544, 18446744073709289472, 18446744073709027328,
+ 18446744073708503040, 18446744073707454464, 18446744073705357312,
+ 18446744073701163008, 18446744073692774400, 18446744073675997184,
+ 18446744073642442752, 18446744073575333888, 18446744073441116160,
+ 18446744073172680704, 18446744072635809792, 18446744071562067968,
+ 18446744069414584320, 18446744065119617024, 18446744056529682432,
+ 18446744039349813248, 18446744004990074880, 18446743936270598144,
+ 18446743798831644672, 18446743523953737728, 18446742974197923840,
+ 18446741874686296064, 18446739675663040512, 18446735277616529408,
+ 18446726481523507200, 18446708889337462784, 18446673704965373952,
+ 18446603336221196288, 18446462598732840960, 18446181123756130304,
+ 18445618173802708992, 18444492273895866368, 18442240474082181120,
+ 18437736874454810624, 18428729675200069632, 18410715276690587648,
+ 18374686479671623680, 18302628885633695744, 18158513697557839872,
+ 17870283321406128128, 17293822569102704640, 16140901064495857664,
+ 13835058055282163712, 9223372036854775808, 0, 0, 0, 0, 0,
+ 18446744073709551552, 18446744073709551488, 18446744073709551360,
+ 18446744073709551104, 18446744073709550592, 18446744073709549568,
+ 18446744073709547520, 18446744073709543424, 18446744073709535232,
+ 18446744073709518848, 18446744073709486080, 18446744073709420544,
+ 18446744073709289472, 18446744073709027328, 18446744073708503040,
+ 18446744073707454464, 18446744073705357312, 18446744073701163008,
+ 18446744073692774400, 18446744073675997184, 18446744073642442752,
+ 18446744073575333888, 18446744073441116160, 18446744073172680704,
+ 18446744072635809792, 18446744071562067968, 18446744069414584320,
+ 18446744065119617024, 18446744056529682432, 18446744039349813248,
+ 18446744004990074880, 18446743936270598144, 18446743798831644672,
+ 18446743523953737728, 18446742974197923840, 18446741874686296064,
+ 18446739675663040512, 18446735277616529408, 18446726481523507200,
+ 18446708889337462784, 18446673704965373952, 18446603336221196288,
+ 18446462598732840960, 18446181123756130304, 18445618173802708992,
+ 18444492273895866368, 18442240474082181120, 18437736874454810624,
+ 18428729675200069632, 18410715276690587648, 18374686479671623680,
+ 18302628885633695744, 18158513697557839872, 17870283321406128128,
+ 17293822569102704640, 16140901064495857664, 13835058055282163712,
+ 9223372036854775808, 0, 0, 0, 0, 0, 0,
+ 18446744073709551488, 18446744073709551360, 18446744073709551104,
+ 18446744073709550592, 18446744073709549568, 18446744073709547520,
+ 18446744073709543424, 18446744073709535232, 18446744073709518848,
+ 18446744073709486080, 18446744073709420544, 18446744073709289472,
+ 18446744073709027328, 18446744073708503040, 18446744073707454464,
+ 18446744073705357312, 18446744073701163008, 18446744073692774400,
+ 18446744073675997184, 18446744073642442752, 18446744073575333888,
+ 18446744073441116160, 18446744073172680704, 18446744072635809792,
+ 18446744071562067968, 18446744069414584320, 18446744065119617024,
+ 18446744056529682432, 18446744039349813248, 18446744004990074880,
+ 18446743936270598144, 18446743798831644672, 18446743523953737728,
+ 18446742974197923840, 18446741874686296064, 18446739675663040512,
+ 18446735277616529408, 18446726481523507200, 18446708889337462784,
+ 18446673704965373952, 18446603336221196288, 18446462598732840960,
+ 18446181123756130304, 18445618173802708992, 18444492273895866368,
+ 18442240474082181120, 18437736874454810624, 18428729675200069632,
+ 18410715276690587648, 18374686479671623680, 18302628885633695744,
+ 18158513697557839872, 17870283321406128128, 17293822569102704640,
+ 16140901064495857664, 13835058055282163712, 9223372036854775808, 0, 0,
+ 0, 0, 0, 0, 0
+ 0, 0.0001, 0.0002, 0.0003, 0.0004, 0.0005, 0.0006, 0.0007,
+ 1, 1.0001, 1.0002, 1.0003, 1.0004, 1.0005, 1.0006, 1.0007,
+ 2, 2.0001, 2.0002, 2.0003, 2.0004, 2.0005, 2.0006, 2.0007,
+ 3, 3.0001, 3.0002, 3.0003, 3.0004, 3.0005, 3.0006, 3.0007,
+ 4, 4.0001, 4.0002, 4.0003, 4.0004, 4.0005, 4.0006, 4.0007,
+ 5, 5.0001, 5.0002, 5.0003, 5.0004, 5.0005, 5.0006, 5.0007,
+ 6, 6.0001, 6.0002, 6.0003, 6.0004, 6.0005, 6.0006, 6.0007,
+ 7, 7.0001, 7.0002, 7.0003, 7.0004, 7.0005, 7.0006, 7.0007 \ No newline at end of file
diff --git a/tools/testfiles/tnofilename-with-packed-bits.ddl b/tools/testfiles/tnofilename-with-packed-bits.ddl
index 5e6f580..440e3d9 100644
--- a/tools/testfiles/tnofilename-with-packed-bits.ddl
+++ b/tools/testfiles/tnofilename-with-packed-bits.ddl
@@ -46,6 +46,8 @@ usage: h5dump [OPTIONS] files
occur.
--no-compact-subset Disable compact form of subsetting and allow the use
of "[" in dataset names.
+ -O F, --ddl=F Output ddl text into file F
+ Do not use filename F to suppress ddl display
Subsetting is available by using the following options with a dataset
attribute. Subsetting is done by selecting a hyperslab from the data.
diff --git a/tools/testfiles/tpbitsIncomplete.ddl b/tools/testfiles/tpbitsIncomplete.ddl
index 10b5a23..758b6b4 100644
--- a/tools/testfiles/tpbitsIncomplete.ddl
+++ b/tools/testfiles/tpbitsIncomplete.ddl
@@ -46,6 +46,8 @@ usage: h5dump [OPTIONS] files
occur.
--no-compact-subset Disable compact form of subsetting and allow the use
of "[" in dataset names.
+ -O F, --ddl=F Output ddl text into file F
+ Do not use filename F to suppress ddl display
Subsetting is available by using the following options with a dataset
attribute. Subsetting is done by selecting a hyperslab from the data.
diff --git a/tools/testfiles/tpbitsLengthExceeded.ddl b/tools/testfiles/tpbitsLengthExceeded.ddl
index 17dd963..a85ba49 100644
--- a/tools/testfiles/tpbitsLengthExceeded.ddl
+++ b/tools/testfiles/tpbitsLengthExceeded.ddl
@@ -46,6 +46,8 @@ usage: h5dump [OPTIONS] files
occur.
--no-compact-subset Disable compact form of subsetting and allow the use
of "[" in dataset names.
+ -O F, --ddl=F Output ddl text into file F
+ Do not use filename F to suppress ddl display
Subsetting is available by using the following options with a dataset
attribute. Subsetting is done by selecting a hyperslab from the data.
diff --git a/tools/testfiles/tpbitsLengthPositive.ddl b/tools/testfiles/tpbitsLengthPositive.ddl
index 6d05b47..d5a1c88 100644
--- a/tools/testfiles/tpbitsLengthPositive.ddl
+++ b/tools/testfiles/tpbitsLengthPositive.ddl
@@ -46,6 +46,8 @@ usage: h5dump [OPTIONS] files
occur.
--no-compact-subset Disable compact form of subsetting and allow the use
of "[" in dataset names.
+ -O F, --ddl=F Output ddl text into file F
+ Do not use filename F to suppress ddl display
Subsetting is available by using the following options with a dataset
attribute. Subsetting is done by selecting a hyperslab from the data.
diff --git a/tools/testfiles/tpbitsMaxExceeded.ddl b/tools/testfiles/tpbitsMaxExceeded.ddl
index eca1248..e24245c 100644
--- a/tools/testfiles/tpbitsMaxExceeded.ddl
+++ b/tools/testfiles/tpbitsMaxExceeded.ddl
@@ -46,6 +46,8 @@ usage: h5dump [OPTIONS] files
occur.
--no-compact-subset Disable compact form of subsetting and allow the use
of "[" in dataset names.
+ -O F, --ddl=F Output ddl text into file F
+ Do not use filename F to suppress ddl display
Subsetting is available by using the following options with a dataset
attribute. Subsetting is done by selecting a hyperslab from the data.
diff --git a/tools/testfiles/tpbitsOffsetExceeded.ddl b/tools/testfiles/tpbitsOffsetExceeded.ddl
index b0c655d..8f58c47 100644
--- a/tools/testfiles/tpbitsOffsetExceeded.ddl
+++ b/tools/testfiles/tpbitsOffsetExceeded.ddl
@@ -46,6 +46,8 @@ usage: h5dump [OPTIONS] files
occur.
--no-compact-subset Disable compact form of subsetting and allow the use
of "[" in dataset names.
+ -O F, --ddl=F Output ddl text into file F
+ Do not use filename F to suppress ddl display
Subsetting is available by using the following options with a dataset
attribute. Subsetting is done by selecting a hyperslab from the data.
diff --git a/tools/testfiles/tpbitsOffsetNegative.ddl b/tools/testfiles/tpbitsOffsetNegative.ddl
index 213641b..6df8cce 100644
--- a/tools/testfiles/tpbitsOffsetNegative.ddl
+++ b/tools/testfiles/tpbitsOffsetNegative.ddl
@@ -46,6 +46,8 @@ usage: h5dump [OPTIONS] files
occur.
--no-compact-subset Disable compact form of subsetting and allow the use
of "[" in dataset names.
+ -O F, --ddl=F Output ddl text into file F
+ Do not use filename F to suppress ddl display
Subsetting is available by using the following options with a dataset
attribute. Subsetting is done by selecting a hyperslab from the data.
diff --git a/tools/testfiles/trawdatafile.ddl b/tools/testfiles/trawdatafile.ddl
new file mode 100644
index 0000000..f99d906
--- /dev/null
+++ b/tools/testfiles/trawdatafile.ddl
@@ -0,0 +1,58 @@
+HDF5 "packedbits.h5" {
+GROUP "/" {
+ DATASET "DS08BITS" {
+ DATATYPE H5T_STD_I8LE
+ DATASPACE SIMPLE { ( 8, 8 ) / ( 8, 8 ) }
+ DATA {
+ }
+ }
+ DATASET "DS16BITS" {
+ DATATYPE H5T_STD_I16LE
+ DATASPACE SIMPLE { ( 8, 16 ) / ( 8, 16 ) }
+ DATA {
+ }
+ }
+ DATASET "DS32BITS" {
+ DATATYPE H5T_STD_I32LE
+ DATASPACE SIMPLE { ( 8, 32 ) / ( 8, 32 ) }
+ DATA {
+ }
+ }
+ DATASET "DS64BITS" {
+ DATATYPE H5T_STD_I64LE
+ DATASPACE SIMPLE { ( 8, 64 ) / ( 8, 64 ) }
+ DATA {
+ }
+ }
+ DATASET "DU08BITS" {
+ DATATYPE H5T_STD_U8LE
+ DATASPACE SIMPLE { ( 8, 8 ) / ( 8, 8 ) }
+ DATA {
+ }
+ }
+ DATASET "DU16BITS" {
+ DATATYPE H5T_STD_U16LE
+ DATASPACE SIMPLE { ( 8, 16 ) / ( 8, 16 ) }
+ DATA {
+ }
+ }
+ DATASET "DU32BITS" {
+ DATATYPE H5T_STD_U32LE
+ DATASPACE SIMPLE { ( 8, 32 ) / ( 8, 32 ) }
+ DATA {
+ }
+ }
+ DATASET "DU64BITS" {
+ DATATYPE H5T_STD_U64LE
+ DATASPACE SIMPLE { ( 8, 64 ) / ( 8, 64 ) }
+ DATA {
+ }
+ }
+ DATASET "DummyDBL" {
+ DATATYPE H5T_IEEE_F64BE
+ DATASPACE SIMPLE { ( 8, 8 ) / ( 8, 8 ) }
+ DATA {
+ }
+ }
+}
+}
diff --git a/tools/testfiles/trawdatafile.exp b/tools/testfiles/trawdatafile.exp
new file mode 100644
index 0000000..dc19888
--- /dev/null
+++ b/tools/testfiles/trawdatafile.exp
@@ -0,0 +1,402 @@
+
+ -1, -2, -4, -8, -16, -32, -64, -128,
+ -2, -4, -8, -16, -32, -64, -128, 0,
+ -4, -8, -16, -32, -64, -128, 0, 0,
+ -8, -16, -32, -64, -128, 0, 0, 0,
+ -16, -32, -64, -128, 0, 0, 0, 0,
+ -32, -64, -128, 0, 0, 0, 0, 0,
+ -64, -128, 0, 0, 0, 0, 0, 0,
+ -128, 0, 0, 0, 0, 0, 0, 0
+ -1, -2, -4, -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096,
+ -8192, -16384, -32768,
+ -2, -4, -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096,
+ -8192, -16384, -32768, 0,
+ -4, -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192,
+ -16384, -32768, 0, 0,
+ -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192,
+ -16384, -32768, 0, 0, 0,
+ -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384,
+ -32768, 0, 0, 0, 0,
+ -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768,
+ 0, 0, 0, 0, 0,
+ -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, 0,
+ 0, 0, 0, 0, 0,
+ -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, 0, 0, 0,
+ 0, 0, 0, 0
+ -1, -2, -4, -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096,
+ -8192, -16384, -32768, -65536, -131072, -262144, -524288, -1048576,
+ -2097152, -4194304, -8388608, -16777216, -33554432, -67108864,
+ -134217728, -268435456, -536870912, -1073741824, -2147483648,
+ -2, -4, -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096,
+ -8192, -16384, -32768, -65536, -131072, -262144, -524288, -1048576,
+ -2097152, -4194304, -8388608, -16777216, -33554432, -67108864,
+ -134217728, -268435456, -536870912, -1073741824, -2147483648, 0,
+ -4, -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192,
+ -16384, -32768, -65536, -131072, -262144, -524288, -1048576, -2097152,
+ -4194304, -8388608, -16777216, -33554432, -67108864, -134217728,
+ -268435456, -536870912, -1073741824, -2147483648, 0, 0,
+ -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192,
+ -16384, -32768, -65536, -131072, -262144, -524288, -1048576, -2097152,
+ -4194304, -8388608, -16777216, -33554432, -67108864, -134217728,
+ -268435456, -536870912, -1073741824, -2147483648, 0, 0, 0,
+ -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384,
+ -32768, -65536, -131072, -262144, -524288, -1048576, -2097152,
+ -4194304, -8388608, -16777216, -33554432, -67108864, -134217728,
+ -268435456, -536870912, -1073741824, -2147483648, 0, 0, 0, 0,
+ -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768,
+ -65536, -131072, -262144, -524288, -1048576, -2097152, -4194304,
+ -8388608, -16777216, -33554432, -67108864, -134217728, -268435456,
+ -536870912, -1073741824, -2147483648, 0, 0, 0, 0, 0,
+ -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768,
+ -65536, -131072, -262144, -524288, -1048576, -2097152, -4194304,
+ -8388608, -16777216, -33554432, -67108864, -134217728, -268435456,
+ -536870912, -1073741824, -2147483648, 0, 0, 0, 0, 0, 0,
+ -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, -65536,
+ -131072, -262144, -524288, -1048576, -2097152, -4194304, -8388608,
+ -16777216, -33554432, -67108864, -134217728, -268435456, -536870912,
+ -1073741824, -2147483648, 0, 0, 0, 0, 0, 0, 0
+ -1, -2, -4, -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096,
+ -8192, -16384, -32768, -65536, -131072, -262144, -524288, -1048576,
+ -2097152, -4194304, -8388608, -16777216, -33554432, -67108864,
+ -134217728, -268435456, -536870912, -1073741824, -2147483648,
+ -4294967296, -8589934592, -17179869184, -34359738368, -68719476736,
+ -137438953472, -274877906944, -549755813888, -1099511627776,
+ -2199023255552, -4398046511104, -8796093022208, -17592186044416,
+ -35184372088832, -70368744177664, -140737488355328, -281474976710656,
+ -562949953421312, -1125899906842624, -2251799813685248,
+ -4503599627370496, -9007199254740992, -18014398509481984,
+ -36028797018963968, -72057594037927936, -144115188075855872,
+ -288230376151711744, -576460752303423488, -1152921504606846976,
+ -2305843009213693952, -4611686018427387904, -9223372036854775808,
+ -2, -4, -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096,
+ -8192, -16384, -32768, -65536, -131072, -262144, -524288, -1048576,
+ -2097152, -4194304, -8388608, -16777216, -33554432, -67108864,
+ -134217728, -268435456, -536870912, -1073741824, -2147483648,
+ -4294967296, -8589934592, -17179869184, -34359738368, -68719476736,
+ -137438953472, -274877906944, -549755813888, -1099511627776,
+ -2199023255552, -4398046511104, -8796093022208, -17592186044416,
+ -35184372088832, -70368744177664, -140737488355328, -281474976710656,
+ -562949953421312, -1125899906842624, -2251799813685248,
+ -4503599627370496, -9007199254740992, -18014398509481984,
+ -36028797018963968, -72057594037927936, -144115188075855872,
+ -288230376151711744, -576460752303423488, -1152921504606846976,
+ -2305843009213693952, -4611686018427387904, -9223372036854775808, 0,
+ -4, -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192,
+ -16384, -32768, -65536, -131072, -262144, -524288, -1048576, -2097152,
+ -4194304, -8388608, -16777216, -33554432, -67108864, -134217728,
+ -268435456, -536870912, -1073741824, -2147483648, -4294967296,
+ -8589934592, -17179869184, -34359738368, -68719476736, -137438953472,
+ -274877906944, -549755813888, -1099511627776, -2199023255552,
+ -4398046511104, -8796093022208, -17592186044416, -35184372088832,
+ -70368744177664, -140737488355328, -281474976710656, -562949953421312,
+ -1125899906842624, -2251799813685248, -4503599627370496,
+ -9007199254740992, -18014398509481984, -36028797018963968,
+ -72057594037927936, -144115188075855872, -288230376151711744,
+ -576460752303423488, -1152921504606846976, -2305843009213693952,
+ -4611686018427387904, -9223372036854775808, 0, 0,
+ -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192,
+ -16384, -32768, -65536, -131072, -262144, -524288, -1048576, -2097152,
+ -4194304, -8388608, -16777216, -33554432, -67108864, -134217728,
+ -268435456, -536870912, -1073741824, -2147483648, -4294967296,
+ -8589934592, -17179869184, -34359738368, -68719476736, -137438953472,
+ -274877906944, -549755813888, -1099511627776, -2199023255552,
+ -4398046511104, -8796093022208, -17592186044416, -35184372088832,
+ -70368744177664, -140737488355328, -281474976710656, -562949953421312,
+ -1125899906842624, -2251799813685248, -4503599627370496,
+ -9007199254740992, -18014398509481984, -36028797018963968,
+ -72057594037927936, -144115188075855872, -288230376151711744,
+ -576460752303423488, -1152921504606846976, -2305843009213693952,
+ -4611686018427387904, -9223372036854775808, 0, 0, 0,
+ -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384,
+ -32768, -65536, -131072, -262144, -524288, -1048576, -2097152,
+ -4194304, -8388608, -16777216, -33554432, -67108864, -134217728,
+ -268435456, -536870912, -1073741824, -2147483648, -4294967296,
+ -8589934592, -17179869184, -34359738368, -68719476736, -137438953472,
+ -274877906944, -549755813888, -1099511627776, -2199023255552,
+ -4398046511104, -8796093022208, -17592186044416, -35184372088832,
+ -70368744177664, -140737488355328, -281474976710656, -562949953421312,
+ -1125899906842624, -2251799813685248, -4503599627370496,
+ -9007199254740992, -18014398509481984, -36028797018963968,
+ -72057594037927936, -144115188075855872, -288230376151711744,
+ -576460752303423488, -1152921504606846976, -2305843009213693952,
+ -4611686018427387904, -9223372036854775808, 0, 0, 0, 0,
+ -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768,
+ -65536, -131072, -262144, -524288, -1048576, -2097152, -4194304,
+ -8388608, -16777216, -33554432, -67108864, -134217728, -268435456,
+ -536870912, -1073741824, -2147483648, -4294967296, -8589934592,
+ -17179869184, -34359738368, -68719476736, -137438953472, -274877906944,
+ -549755813888, -1099511627776, -2199023255552, -4398046511104,
+ -8796093022208, -17592186044416, -35184372088832, -70368744177664,
+ -140737488355328, -281474976710656, -562949953421312,
+ -1125899906842624, -2251799813685248, -4503599627370496,
+ -9007199254740992, -18014398509481984, -36028797018963968,
+ -72057594037927936, -144115188075855872, -288230376151711744,
+ -576460752303423488, -1152921504606846976, -2305843009213693952,
+ -4611686018427387904, -9223372036854775808, 0, 0, 0, 0, 0,
+ -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768,
+ -65536, -131072, -262144, -524288, -1048576, -2097152, -4194304,
+ -8388608, -16777216, -33554432, -67108864, -134217728, -268435456,
+ -536870912, -1073741824, -2147483648, -4294967296, -8589934592,
+ -17179869184, -34359738368, -68719476736, -137438953472, -274877906944,
+ -549755813888, -1099511627776, -2199023255552, -4398046511104,
+ -8796093022208, -17592186044416, -35184372088832, -70368744177664,
+ -140737488355328, -281474976710656, -562949953421312,
+ -1125899906842624, -2251799813685248, -4503599627370496,
+ -9007199254740992, -18014398509481984, -36028797018963968,
+ -72057594037927936, -144115188075855872, -288230376151711744,
+ -576460752303423488, -1152921504606846976, -2305843009213693952,
+ -4611686018427387904, -9223372036854775808, 0, 0, 0, 0, 0, 0,
+ -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, -65536,
+ -131072, -262144, -524288, -1048576, -2097152, -4194304, -8388608,
+ -16777216, -33554432, -67108864, -134217728, -268435456, -536870912,
+ -1073741824, -2147483648, -4294967296, -8589934592, -17179869184,
+ -34359738368, -68719476736, -137438953472, -274877906944,
+ -549755813888, -1099511627776, -2199023255552, -4398046511104,
+ -8796093022208, -17592186044416, -35184372088832, -70368744177664,
+ -140737488355328, -281474976710656, -562949953421312,
+ -1125899906842624, -2251799813685248, -4503599627370496,
+ -9007199254740992, -18014398509481984, -36028797018963968,
+ -72057594037927936, -144115188075855872, -288230376151711744,
+ -576460752303423488, -1152921504606846976, -2305843009213693952,
+ -4611686018427387904, -9223372036854775808, 0, 0, 0, 0, 0, 0, 0
+ 255, 254, 252, 248, 240, 224, 192, 128,
+ 254, 252, 248, 240, 224, 192, 128, 0,
+ 252, 248, 240, 224, 192, 128, 0, 0,
+ 248, 240, 224, 192, 128, 0, 0, 0,
+ 240, 224, 192, 128, 0, 0, 0, 0,
+ 224, 192, 128, 0, 0, 0, 0, 0,
+ 192, 128, 0, 0, 0, 0, 0, 0,
+ 128, 0, 0, 0, 0, 0, 0, 0
+ 65535, 65534, 65532, 65528, 65520, 65504, 65472, 65408, 65280, 65024,
+ 64512, 63488, 61440, 57344, 49152, 32768,
+ 65534, 65532, 65528, 65520, 65504, 65472, 65408, 65280, 65024, 64512,
+ 63488, 61440, 57344, 49152, 32768, 0,
+ 65532, 65528, 65520, 65504, 65472, 65408, 65280, 65024, 64512, 63488,
+ 61440, 57344, 49152, 32768, 0, 0,
+ 65528, 65520, 65504, 65472, 65408, 65280, 65024, 64512, 63488, 61440,
+ 57344, 49152, 32768, 0, 0, 0,
+ 65520, 65504, 65472, 65408, 65280, 65024, 64512, 63488, 61440, 57344,
+ 49152, 32768, 0, 0, 0, 0,
+ 65504, 65472, 65408, 65280, 65024, 64512, 63488, 61440, 57344, 49152,
+ 32768, 0, 0, 0, 0, 0,
+ 65472, 65408, 65280, 65024, 64512, 63488, 61440, 57344, 49152, 32768,
+ 0, 0, 0, 0, 0, 0,
+ 65408, 65280, 65024, 64512, 63488, 61440, 57344, 49152, 32768, 0, 0, 0,
+ 0, 0, 0, 0
+ 4294967295, 4294967294, 4294967292, 4294967288, 4294967280, 4294967264,
+ 4294967232, 4294967168, 4294967040, 4294966784, 4294966272, 4294965248,
+ 4294963200, 4294959104, 4294950912, 4294934528, 4294901760, 4294836224,
+ 4294705152, 4294443008, 4293918720, 4292870144, 4290772992, 4286578688,
+ 4278190080, 4261412864, 4227858432, 4160749568, 4026531840, 3758096384,
+ 3221225472, 2147483648,
+ 4294967294, 4294967292, 4294967288, 4294967280, 4294967264, 4294967232,
+ 4294967168, 4294967040, 4294966784, 4294966272, 4294965248, 4294963200,
+ 4294959104, 4294950912, 4294934528, 4294901760, 4294836224, 4294705152,
+ 4294443008, 4293918720, 4292870144, 4290772992, 4286578688, 4278190080,
+ 4261412864, 4227858432, 4160749568, 4026531840, 3758096384, 3221225472,
+ 2147483648, 0,
+ 4294967292, 4294967288, 4294967280, 4294967264, 4294967232, 4294967168,
+ 4294967040, 4294966784, 4294966272, 4294965248, 4294963200, 4294959104,
+ 4294950912, 4294934528, 4294901760, 4294836224, 4294705152, 4294443008,
+ 4293918720, 4292870144, 4290772992, 4286578688, 4278190080, 4261412864,
+ 4227858432, 4160749568, 4026531840, 3758096384, 3221225472, 2147483648,
+ 0, 0,
+ 4294967288, 4294967280, 4294967264, 4294967232, 4294967168, 4294967040,
+ 4294966784, 4294966272, 4294965248, 4294963200, 4294959104, 4294950912,
+ 4294934528, 4294901760, 4294836224, 4294705152, 4294443008, 4293918720,
+ 4292870144, 4290772992, 4286578688, 4278190080, 4261412864, 4227858432,
+ 4160749568, 4026531840, 3758096384, 3221225472, 2147483648, 0, 0, 0,
+ 4294967280, 4294967264, 4294967232, 4294967168, 4294967040, 4294966784,
+ 4294966272, 4294965248, 4294963200, 4294959104, 4294950912, 4294934528,
+ 4294901760, 4294836224, 4294705152, 4294443008, 4293918720, 4292870144,
+ 4290772992, 4286578688, 4278190080, 4261412864, 4227858432, 4160749568,
+ 4026531840, 3758096384, 3221225472, 2147483648, 0, 0, 0, 0,
+ 4294967264, 4294967232, 4294967168, 4294967040, 4294966784, 4294966272,
+ 4294965248, 4294963200, 4294959104, 4294950912, 4294934528, 4294901760,
+ 4294836224, 4294705152, 4294443008, 4293918720, 4292870144, 4290772992,
+ 4286578688, 4278190080, 4261412864, 4227858432, 4160749568, 4026531840,
+ 3758096384, 3221225472, 2147483648, 0, 0, 0, 0, 0,
+ 4294967232, 4294967168, 4294967040, 4294966784, 4294966272, 4294965248,
+ 4294963200, 4294959104, 4294950912, 4294934528, 4294901760, 4294836224,
+ 4294705152, 4294443008, 4293918720, 4292870144, 4290772992, 4286578688,
+ 4278190080, 4261412864, 4227858432, 4160749568, 4026531840, 3758096384,
+ 3221225472, 2147483648, 0, 0, 0, 0, 0, 0,
+ 4294967168, 4294967040, 4294966784, 4294966272, 4294965248, 4294963200,
+ 4294959104, 4294950912, 4294934528, 4294901760, 4294836224, 4294705152,
+ 4294443008, 4293918720, 4292870144, 4290772992, 4286578688, 4278190080,
+ 4261412864, 4227858432, 4160749568, 4026531840, 3758096384, 3221225472,
+ 2147483648, 0, 0, 0, 0, 0, 0, 0
+ 18446744073709551615, 18446744073709551614, 18446744073709551612,
+ 18446744073709551608, 18446744073709551600, 18446744073709551584,
+ 18446744073709551552, 18446744073709551488, 18446744073709551360,
+ 18446744073709551104, 18446744073709550592, 18446744073709549568,
+ 18446744073709547520, 18446744073709543424, 18446744073709535232,
+ 18446744073709518848, 18446744073709486080, 18446744073709420544,
+ 18446744073709289472, 18446744073709027328, 18446744073708503040,
+ 18446744073707454464, 18446744073705357312, 18446744073701163008,
+ 18446744073692774400, 18446744073675997184, 18446744073642442752,
+ 18446744073575333888, 18446744073441116160, 18446744073172680704,
+ 18446744072635809792, 18446744071562067968, 18446744069414584320,
+ 18446744065119617024, 18446744056529682432, 18446744039349813248,
+ 18446744004990074880, 18446743936270598144, 18446743798831644672,
+ 18446743523953737728, 18446742974197923840, 18446741874686296064,
+ 18446739675663040512, 18446735277616529408, 18446726481523507200,
+ 18446708889337462784, 18446673704965373952, 18446603336221196288,
+ 18446462598732840960, 18446181123756130304, 18445618173802708992,
+ 18444492273895866368, 18442240474082181120, 18437736874454810624,
+ 18428729675200069632, 18410715276690587648, 18374686479671623680,
+ 18302628885633695744, 18158513697557839872, 17870283321406128128,
+ 17293822569102704640, 16140901064495857664, 13835058055282163712,
+ 9223372036854775808,
+ 18446744073709551614, 18446744073709551612, 18446744073709551608,
+ 18446744073709551600, 18446744073709551584, 18446744073709551552,
+ 18446744073709551488, 18446744073709551360, 18446744073709551104,
+ 18446744073709550592, 18446744073709549568, 18446744073709547520,
+ 18446744073709543424, 18446744073709535232, 18446744073709518848,
+ 18446744073709486080, 18446744073709420544, 18446744073709289472,
+ 18446744073709027328, 18446744073708503040, 18446744073707454464,
+ 18446744073705357312, 18446744073701163008, 18446744073692774400,
+ 18446744073675997184, 18446744073642442752, 18446744073575333888,
+ 18446744073441116160, 18446744073172680704, 18446744072635809792,
+ 18446744071562067968, 18446744069414584320, 18446744065119617024,
+ 18446744056529682432, 18446744039349813248, 18446744004990074880,
+ 18446743936270598144, 18446743798831644672, 18446743523953737728,
+ 18446742974197923840, 18446741874686296064, 18446739675663040512,
+ 18446735277616529408, 18446726481523507200, 18446708889337462784,
+ 18446673704965373952, 18446603336221196288, 18446462598732840960,
+ 18446181123756130304, 18445618173802708992, 18444492273895866368,
+ 18442240474082181120, 18437736874454810624, 18428729675200069632,
+ 18410715276690587648, 18374686479671623680, 18302628885633695744,
+ 18158513697557839872, 17870283321406128128, 17293822569102704640,
+ 16140901064495857664, 13835058055282163712, 9223372036854775808, 0,
+ 18446744073709551612, 18446744073709551608, 18446744073709551600,
+ 18446744073709551584, 18446744073709551552, 18446744073709551488,
+ 18446744073709551360, 18446744073709551104, 18446744073709550592,
+ 18446744073709549568, 18446744073709547520, 18446744073709543424,
+ 18446744073709535232, 18446744073709518848, 18446744073709486080,
+ 18446744073709420544, 18446744073709289472, 18446744073709027328,
+ 18446744073708503040, 18446744073707454464, 18446744073705357312,
+ 18446744073701163008, 18446744073692774400, 18446744073675997184,
+ 18446744073642442752, 18446744073575333888, 18446744073441116160,
+ 18446744073172680704, 18446744072635809792, 18446744071562067968,
+ 18446744069414584320, 18446744065119617024, 18446744056529682432,
+ 18446744039349813248, 18446744004990074880, 18446743936270598144,
+ 18446743798831644672, 18446743523953737728, 18446742974197923840,
+ 18446741874686296064, 18446739675663040512, 18446735277616529408,
+ 18446726481523507200, 18446708889337462784, 18446673704965373952,
+ 18446603336221196288, 18446462598732840960, 18446181123756130304,
+ 18445618173802708992, 18444492273895866368, 18442240474082181120,
+ 18437736874454810624, 18428729675200069632, 18410715276690587648,
+ 18374686479671623680, 18302628885633695744, 18158513697557839872,
+ 17870283321406128128, 17293822569102704640, 16140901064495857664,
+ 13835058055282163712, 9223372036854775808, 0, 0,
+ 18446744073709551608, 18446744073709551600, 18446744073709551584,
+ 18446744073709551552, 18446744073709551488, 18446744073709551360,
+ 18446744073709551104, 18446744073709550592, 18446744073709549568,
+ 18446744073709547520, 18446744073709543424, 18446744073709535232,
+ 18446744073709518848, 18446744073709486080, 18446744073709420544,
+ 18446744073709289472, 18446744073709027328, 18446744073708503040,
+ 18446744073707454464, 18446744073705357312, 18446744073701163008,
+ 18446744073692774400, 18446744073675997184, 18446744073642442752,
+ 18446744073575333888, 18446744073441116160, 18446744073172680704,
+ 18446744072635809792, 18446744071562067968, 18446744069414584320,
+ 18446744065119617024, 18446744056529682432, 18446744039349813248,
+ 18446744004990074880, 18446743936270598144, 18446743798831644672,
+ 18446743523953737728, 18446742974197923840, 18446741874686296064,
+ 18446739675663040512, 18446735277616529408, 18446726481523507200,
+ 18446708889337462784, 18446673704965373952, 18446603336221196288,
+ 18446462598732840960, 18446181123756130304, 18445618173802708992,
+ 18444492273895866368, 18442240474082181120, 18437736874454810624,
+ 18428729675200069632, 18410715276690587648, 18374686479671623680,
+ 18302628885633695744, 18158513697557839872, 17870283321406128128,
+ 17293822569102704640, 16140901064495857664, 13835058055282163712,
+ 9223372036854775808, 0, 0, 0,
+ 18446744073709551600, 18446744073709551584, 18446744073709551552,
+ 18446744073709551488, 18446744073709551360, 18446744073709551104,
+ 18446744073709550592, 18446744073709549568, 18446744073709547520,
+ 18446744073709543424, 18446744073709535232, 18446744073709518848,
+ 18446744073709486080, 18446744073709420544, 18446744073709289472,
+ 18446744073709027328, 18446744073708503040, 18446744073707454464,
+ 18446744073705357312, 18446744073701163008, 18446744073692774400,
+ 18446744073675997184, 18446744073642442752, 18446744073575333888,
+ 18446744073441116160, 18446744073172680704, 18446744072635809792,
+ 18446744071562067968, 18446744069414584320, 18446744065119617024,
+ 18446744056529682432, 18446744039349813248, 18446744004990074880,
+ 18446743936270598144, 18446743798831644672, 18446743523953737728,
+ 18446742974197923840, 18446741874686296064, 18446739675663040512,
+ 18446735277616529408, 18446726481523507200, 18446708889337462784,
+ 18446673704965373952, 18446603336221196288, 18446462598732840960,
+ 18446181123756130304, 18445618173802708992, 18444492273895866368,
+ 18442240474082181120, 18437736874454810624, 18428729675200069632,
+ 18410715276690587648, 18374686479671623680, 18302628885633695744,
+ 18158513697557839872, 17870283321406128128, 17293822569102704640,
+ 16140901064495857664, 13835058055282163712, 9223372036854775808, 0, 0,
+ 0, 0,
+ 18446744073709551584, 18446744073709551552, 18446744073709551488,
+ 18446744073709551360, 18446744073709551104, 18446744073709550592,
+ 18446744073709549568, 18446744073709547520, 18446744073709543424,
+ 18446744073709535232, 18446744073709518848, 18446744073709486080,
+ 18446744073709420544, 18446744073709289472, 18446744073709027328,
+ 18446744073708503040, 18446744073707454464, 18446744073705357312,
+ 18446744073701163008, 18446744073692774400, 18446744073675997184,
+ 18446744073642442752, 18446744073575333888, 18446744073441116160,
+ 18446744073172680704, 18446744072635809792, 18446744071562067968,
+ 18446744069414584320, 18446744065119617024, 18446744056529682432,
+ 18446744039349813248, 18446744004990074880, 18446743936270598144,
+ 18446743798831644672, 18446743523953737728, 18446742974197923840,
+ 18446741874686296064, 18446739675663040512, 18446735277616529408,
+ 18446726481523507200, 18446708889337462784, 18446673704965373952,
+ 18446603336221196288, 18446462598732840960, 18446181123756130304,
+ 18445618173802708992, 18444492273895866368, 18442240474082181120,
+ 18437736874454810624, 18428729675200069632, 18410715276690587648,
+ 18374686479671623680, 18302628885633695744, 18158513697557839872,
+ 17870283321406128128, 17293822569102704640, 16140901064495857664,
+ 13835058055282163712, 9223372036854775808, 0, 0, 0, 0, 0,
+ 18446744073709551552, 18446744073709551488, 18446744073709551360,
+ 18446744073709551104, 18446744073709550592, 18446744073709549568,
+ 18446744073709547520, 18446744073709543424, 18446744073709535232,
+ 18446744073709518848, 18446744073709486080, 18446744073709420544,
+ 18446744073709289472, 18446744073709027328, 18446744073708503040,
+ 18446744073707454464, 18446744073705357312, 18446744073701163008,
+ 18446744073692774400, 18446744073675997184, 18446744073642442752,
+ 18446744073575333888, 18446744073441116160, 18446744073172680704,
+ 18446744072635809792, 18446744071562067968, 18446744069414584320,
+ 18446744065119617024, 18446744056529682432, 18446744039349813248,
+ 18446744004990074880, 18446743936270598144, 18446743798831644672,
+ 18446743523953737728, 18446742974197923840, 18446741874686296064,
+ 18446739675663040512, 18446735277616529408, 18446726481523507200,
+ 18446708889337462784, 18446673704965373952, 18446603336221196288,
+ 18446462598732840960, 18446181123756130304, 18445618173802708992,
+ 18444492273895866368, 18442240474082181120, 18437736874454810624,
+ 18428729675200069632, 18410715276690587648, 18374686479671623680,
+ 18302628885633695744, 18158513697557839872, 17870283321406128128,
+ 17293822569102704640, 16140901064495857664, 13835058055282163712,
+ 9223372036854775808, 0, 0, 0, 0, 0, 0,
+ 18446744073709551488, 18446744073709551360, 18446744073709551104,
+ 18446744073709550592, 18446744073709549568, 18446744073709547520,
+ 18446744073709543424, 18446744073709535232, 18446744073709518848,
+ 18446744073709486080, 18446744073709420544, 18446744073709289472,
+ 18446744073709027328, 18446744073708503040, 18446744073707454464,
+ 18446744073705357312, 18446744073701163008, 18446744073692774400,
+ 18446744073675997184, 18446744073642442752, 18446744073575333888,
+ 18446744073441116160, 18446744073172680704, 18446744072635809792,
+ 18446744071562067968, 18446744069414584320, 18446744065119617024,
+ 18446744056529682432, 18446744039349813248, 18446744004990074880,
+ 18446743936270598144, 18446743798831644672, 18446743523953737728,
+ 18446742974197923840, 18446741874686296064, 18446739675663040512,
+ 18446735277616529408, 18446726481523507200, 18446708889337462784,
+ 18446673704965373952, 18446603336221196288, 18446462598732840960,
+ 18446181123756130304, 18445618173802708992, 18444492273895866368,
+ 18442240474082181120, 18437736874454810624, 18428729675200069632,
+ 18410715276690587648, 18374686479671623680, 18302628885633695744,
+ 18158513697557839872, 17870283321406128128, 17293822569102704640,
+ 16140901064495857664, 13835058055282163712, 9223372036854775808, 0, 0,
+ 0, 0, 0, 0, 0
+ 0, 0.0001, 0.0002, 0.0003, 0.0004, 0.0005, 0.0006, 0.0007,
+ 1, 1.0001, 1.0002, 1.0003, 1.0004, 1.0005, 1.0006, 1.0007,
+ 2, 2.0001, 2.0002, 2.0003, 2.0004, 2.0005, 2.0006, 2.0007,
+ 3, 3.0001, 3.0002, 3.0003, 3.0004, 3.0005, 3.0006, 3.0007,
+ 4, 4.0001, 4.0002, 4.0003, 4.0004, 4.0005, 4.0006, 4.0007,
+ 5, 5.0001, 5.0002, 5.0003, 5.0004, 5.0005, 5.0006, 5.0007,
+ 6, 6.0001, 6.0002, 6.0003, 6.0004, 6.0005, 6.0006, 6.0007,
+ 7, 7.0001, 7.0002, 7.0003, 7.0004, 7.0005, 7.0006, 7.0007 \ No newline at end of file
diff --git a/tools/testfiles/tscalarattrintsize.ddl b/tools/testfiles/tscalarattrintsize.ddl
new file mode 100644
index 0000000..46f3cef
--- /dev/null
+++ b/tools/testfiles/tscalarattrintsize.ddl
@@ -0,0 +1,130 @@
+HDF5 "tscalarattrintsize.h5" {
+GROUP "/" {
+ ATTRIBUTE "DS08BITS" {
+ DATATYPE H5T_ARRAY { [8][8] H5T_STD_I8LE }
+ DATASPACE SCALAR
+ DATA {
+ (0): [ -1, -2, -4, -8, -16, -32, -64, -128,
+ -2, -4, -8, -16, -32, -64, -128, 0,
+ -4, -8, -16, -32, -64, -128, 0, 0,
+ -8, -16, -32, -64, -128, 0, 0, 0,
+ -16, -32, -64, -128, 0, 0, 0, 0,
+ -32, -64, -128, 0, 0, 0, 0, 0,
+ -64, -128, 0, 0, 0, 0, 0, 0,
+ -128, 0, 0, 0, 0, 0, 0, 0 ]
+ }
+ }
+ ATTRIBUTE "DS16BITS" {
+ DATATYPE H5T_ARRAY { [8][16] H5T_STD_I16LE }
+ DATASPACE SCALAR
+ DATA {
+ (0): [ -1, -2, -4, -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768,
+ -2, -4, -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, 0,
+ -4, -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, 0, 0,
+ -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, 0, 0, 0,
+ -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, 0, 0, 0, 0,
+ -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, 0, 0, 0, 0, 0,
+ -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, 0, 0, 0, 0, 0, 0,
+ -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, 0, 0, 0, 0, 0, 0, 0 ]
+ }
+ }
+ ATTRIBUTE "DS32BITS" {
+ DATATYPE H5T_ARRAY { [8][32] H5T_STD_I32LE }
+ DATASPACE SCALAR
+ DATA {
+ (0): [ -1, -2, -4, -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, -65536, -131072, -262144, -524288, -1048576, -2097152, -4194304, -8388608, -16777216, -33554432, -67108864, -134217728, -268435456, -536870912, -1073741824, -2147483648,
+ -2, -4, -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, -65536, -131072, -262144, -524288, -1048576, -2097152, -4194304, -8388608, -16777216, -33554432, -67108864, -134217728, -268435456, -536870912, -1073741824, -2147483648, 0,
+ -4, -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, -65536, -131072, -262144, -524288, -1048576, -2097152, -4194304, -8388608, -16777216, -33554432, -67108864, -134217728, -268435456, -536870912, -1073741824, -2147483648, 0, 0,
+ -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, -65536, -131072, -262144, -524288, -1048576, -2097152, -4194304, -8388608, -16777216, -33554432, -67108864, -134217728, -268435456, -536870912, -1073741824, -2147483648, 0, 0, 0,
+ -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, -65536, -131072, -262144, -524288, -1048576, -2097152, -4194304, -8388608, -16777216, -33554432, -67108864, -134217728, -268435456, -536870912, -1073741824, -2147483648, 0, 0, 0, 0,
+ -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, -65536, -131072, -262144, -524288, -1048576, -2097152, -4194304, -8388608, -16777216, -33554432, -67108864, -134217728, -268435456, -536870912, -1073741824, -2147483648, 0, 0, 0, 0, 0,
+ -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, -65536, -131072, -262144, -524288, -1048576, -2097152, -4194304, -8388608, -16777216, -33554432, -67108864, -134217728, -268435456, -536870912, -1073741824, -2147483648, 0, 0, 0, 0, 0, 0,
+ -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, -65536, -131072, -262144, -524288, -1048576, -2097152, -4194304, -8388608, -16777216, -33554432, -67108864, -134217728, -268435456, -536870912, -1073741824, -2147483648, 0, 0, 0, 0, 0, 0, 0 ]
+ }
+ }
+ ATTRIBUTE "DS64BITS" {
+ DATATYPE H5T_ARRAY { [8][64] H5T_STD_I64LE }
+ DATASPACE SCALAR
+ DATA {
+ (0): [ -1, -2, -4, -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, -65536, -131072, -262144, -524288, -1048576, -2097152, -4194304, -8388608, -16777216, -33554432, -67108864, -134217728, -268435456, -536870912, -1073741824, -2147483648, -4294967296, -8589934592, -17179869184, -34359738368, -68719476736, -137438953472, -274877906944, -549755813888, -1099511627776, -2199023255552, -4398046511104, -8796093022208, -17592186044416, -35184372088832, -70368744177664, -140737488355328, -281474976710656, -562949953421312, -1125899906842624, -2251799813685248, -4503599627370496, -9007199254740992, -18014398509481984, -36028797018963968, -72057594037927936, -144115188075855872, -288230376151711744, -576460752303423488, -1152921504606846976, -2305843009213693952, -4611686018427387904, -9223372036854775808,
+ -2, -4, -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, -65536, -131072, -262144, -524288, -1048576, -2097152, -4194304, -8388608, -16777216, -33554432, -67108864, -134217728, -268435456, -536870912, -1073741824, -2147483648, -4294967296, -8589934592, -17179869184, -34359738368, -68719476736, -137438953472, -274877906944, -549755813888, -1099511627776, -2199023255552, -4398046511104, -8796093022208, -17592186044416, -35184372088832, -70368744177664, -140737488355328, -281474976710656, -562949953421312, -1125899906842624, -2251799813685248, -4503599627370496, -9007199254740992, -18014398509481984, -36028797018963968, -72057594037927936, -144115188075855872, -288230376151711744, -576460752303423488, -1152921504606846976, -2305843009213693952, -4611686018427387904, -9223372036854775808, 0,
+ -4, -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, -65536, -131072, -262144, -524288, -1048576, -2097152, -4194304, -8388608, -16777216, -33554432, -67108864, -134217728, -268435456, -536870912, -1073741824, -2147483648, -4294967296, -8589934592, -17179869184, -34359738368, -68719476736, -137438953472, -274877906944, -549755813888, -1099511627776, -2199023255552, -4398046511104, -8796093022208, -17592186044416, -35184372088832, -70368744177664, -140737488355328, -281474976710656, -562949953421312, -1125899906842624, -2251799813685248, -4503599627370496, -9007199254740992, -18014398509481984, -36028797018963968, -72057594037927936, -144115188075855872, -288230376151711744, -576460752303423488, -1152921504606846976, -2305843009213693952, -4611686018427387904, -9223372036854775808, 0, 0,
+ -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, -65536, -131072, -262144, -524288, -1048576, -2097152, -4194304, -8388608, -16777216, -33554432, -67108864, -134217728, -268435456, -536870912, -1073741824, -2147483648, -4294967296, -8589934592, -17179869184, -34359738368, -68719476736, -137438953472, -274877906944, -549755813888, -1099511627776, -2199023255552, -4398046511104, -8796093022208, -17592186044416, -35184372088832, -70368744177664, -140737488355328, -281474976710656, -562949953421312, -1125899906842624, -2251799813685248, -4503599627370496, -9007199254740992, -18014398509481984, -36028797018963968, -72057594037927936, -144115188075855872, -288230376151711744, -576460752303423488, -1152921504606846976, -2305843009213693952, -4611686018427387904, -9223372036854775808, 0, 0, 0,
+ -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, -65536, -131072, -262144, -524288, -1048576, -2097152, -4194304, -8388608, -16777216, -33554432, -67108864, -134217728, -268435456, -536870912, -1073741824, -2147483648, -4294967296, -8589934592, -17179869184, -34359738368, -68719476736, -137438953472, -274877906944, -549755813888, -1099511627776, -2199023255552, -4398046511104, -8796093022208, -17592186044416, -35184372088832, -70368744177664, -140737488355328, -281474976710656, -562949953421312, -1125899906842624, -2251799813685248, -4503599627370496, -9007199254740992, -18014398509481984, -36028797018963968, -72057594037927936, -144115188075855872, -288230376151711744, -576460752303423488, -1152921504606846976, -2305843009213693952, -4611686018427387904, -9223372036854775808, 0, 0, 0, 0,
+ -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, -65536, -131072, -262144, -524288, -1048576, -2097152, -4194304, -8388608, -16777216, -33554432, -67108864, -134217728, -268435456, -536870912, -1073741824, -2147483648, -4294967296, -8589934592, -17179869184, -34359738368, -68719476736, -137438953472, -274877906944, -549755813888, -1099511627776, -2199023255552, -4398046511104, -8796093022208, -17592186044416, -35184372088832, -70368744177664, -140737488355328, -281474976710656, -562949953421312, -1125899906842624, -2251799813685248, -4503599627370496, -9007199254740992, -18014398509481984, -36028797018963968, -72057594037927936, -144115188075855872, -288230376151711744, -576460752303423488, -1152921504606846976, -2305843009213693952, -4611686018427387904, -9223372036854775808, 0, 0, 0, 0, 0,
+ -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, -65536, -131072, -262144, -524288, -1048576, -2097152, -4194304, -8388608, -16777216, -33554432, -67108864, -134217728, -268435456, -536870912, -1073741824, -2147483648, -4294967296, -8589934592, -17179869184, -34359738368, -68719476736, -137438953472, -274877906944, -549755813888, -1099511627776, -2199023255552, -4398046511104, -8796093022208, -17592186044416, -35184372088832, -70368744177664, -140737488355328, -281474976710656, -562949953421312, -1125899906842624, -2251799813685248, -4503599627370496, -9007199254740992, -18014398509481984, -36028797018963968, -72057594037927936, -144115188075855872, -288230376151711744, -576460752303423488, -1152921504606846976, -2305843009213693952, -4611686018427387904, -9223372036854775808, 0, 0, 0, 0, 0, 0,
+ -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, -65536, -131072, -262144, -524288, -1048576, -2097152, -4194304, -8388608, -16777216, -33554432, -67108864, -134217728, -268435456, -536870912, -1073741824, -2147483648, -4294967296, -8589934592, -17179869184, -34359738368, -68719476736, -137438953472, -274877906944, -549755813888, -1099511627776, -2199023255552, -4398046511104, -8796093022208, -17592186044416, -35184372088832, -70368744177664, -140737488355328, -281474976710656, -562949953421312, -1125899906842624, -2251799813685248, -4503599627370496, -9007199254740992, -18014398509481984, -36028797018963968, -72057594037927936, -144115188075855872, -288230376151711744, -576460752303423488, -1152921504606846976, -2305843009213693952, -4611686018427387904, -9223372036854775808, 0, 0, 0, 0, 0, 0, 0 ]
+ }
+ }
+ ATTRIBUTE "DU08BITS" {
+ DATATYPE H5T_ARRAY { [8][8] H5T_STD_U8LE }
+ DATASPACE SCALAR
+ DATA {
+ (0): [ 255, 254, 252, 248, 240, 224, 192, 128,
+ 254, 252, 248, 240, 224, 192, 128, 0,
+ 252, 248, 240, 224, 192, 128, 0, 0,
+ 248, 240, 224, 192, 128, 0, 0, 0,
+ 240, 224, 192, 128, 0, 0, 0, 0,
+ 224, 192, 128, 0, 0, 0, 0, 0,
+ 192, 128, 0, 0, 0, 0, 0, 0,
+ 128, 0, 0, 0, 0, 0, 0, 0 ]
+ }
+ }
+ ATTRIBUTE "DU16BITS" {
+ DATATYPE H5T_ARRAY { [8][16] H5T_STD_U16LE }
+ DATASPACE SCALAR
+ DATA {
+ (0): [ 65535, 65534, 65532, 65528, 65520, 65504, 65472, 65408, 65280, 65024, 64512, 63488, 61440, 57344, 49152, 32768,
+ 65534, 65532, 65528, 65520, 65504, 65472, 65408, 65280, 65024, 64512, 63488, 61440, 57344, 49152, 32768, 0,
+ 65532, 65528, 65520, 65504, 65472, 65408, 65280, 65024, 64512, 63488, 61440, 57344, 49152, 32768, 0, 0,
+ 65528, 65520, 65504, 65472, 65408, 65280, 65024, 64512, 63488, 61440, 57344, 49152, 32768, 0, 0, 0,
+ 65520, 65504, 65472, 65408, 65280, 65024, 64512, 63488, 61440, 57344, 49152, 32768, 0, 0, 0, 0,
+ 65504, 65472, 65408, 65280, 65024, 64512, 63488, 61440, 57344, 49152, 32768, 0, 0, 0, 0, 0,
+ 65472, 65408, 65280, 65024, 64512, 63488, 61440, 57344, 49152, 32768, 0, 0, 0, 0, 0, 0,
+ 65408, 65280, 65024, 64512, 63488, 61440, 57344, 49152, 32768, 0, 0, 0, 0, 0, 0, 0 ]
+ }
+ }
+ ATTRIBUTE "DU32BITS" {
+ DATATYPE H5T_ARRAY { [8][32] H5T_STD_U32LE }
+ DATASPACE SCALAR
+ DATA {
+ (0): [ 4294967295, 4294967294, 4294967292, 4294967288, 4294967280, 4294967264, 4294967232, 4294967168, 4294967040, 4294966784, 4294966272, 4294965248, 4294963200, 4294959104, 4294950912, 4294934528, 4294901760, 4294836224, 4294705152, 4294443008, 4293918720, 4292870144, 4290772992, 4286578688, 4278190080, 4261412864, 4227858432, 4160749568, 4026531840, 3758096384, 3221225472, 2147483648,
+ 4294967294, 4294967292, 4294967288, 4294967280, 4294967264, 4294967232, 4294967168, 4294967040, 4294966784, 4294966272, 4294965248, 4294963200, 4294959104, 4294950912, 4294934528, 4294901760, 4294836224, 4294705152, 4294443008, 4293918720, 4292870144, 4290772992, 4286578688, 4278190080, 4261412864, 4227858432, 4160749568, 4026531840, 3758096384, 3221225472, 2147483648, 0,
+ 4294967292, 4294967288, 4294967280, 4294967264, 4294967232, 4294967168, 4294967040, 4294966784, 4294966272, 4294965248, 4294963200, 4294959104, 4294950912, 4294934528, 4294901760, 4294836224, 4294705152, 4294443008, 4293918720, 4292870144, 4290772992, 4286578688, 4278190080, 4261412864, 4227858432, 4160749568, 4026531840, 3758096384, 3221225472, 2147483648, 0, 0,
+ 4294967288, 4294967280, 4294967264, 4294967232, 4294967168, 4294967040, 4294966784, 4294966272, 4294965248, 4294963200, 4294959104, 4294950912, 4294934528, 4294901760, 4294836224, 4294705152, 4294443008, 4293918720, 4292870144, 4290772992, 4286578688, 4278190080, 4261412864, 4227858432, 4160749568, 4026531840, 3758096384, 3221225472, 2147483648, 0, 0, 0,
+ 4294967280, 4294967264, 4294967232, 4294967168, 4294967040, 4294966784, 4294966272, 4294965248, 4294963200, 4294959104, 4294950912, 4294934528, 4294901760, 4294836224, 4294705152, 4294443008, 4293918720, 4292870144, 4290772992, 4286578688, 4278190080, 4261412864, 4227858432, 4160749568, 4026531840, 3758096384, 3221225472, 2147483648, 0, 0, 0, 0,
+ 4294967264, 4294967232, 4294967168, 4294967040, 4294966784, 4294966272, 4294965248, 4294963200, 4294959104, 4294950912, 4294934528, 4294901760, 4294836224, 4294705152, 4294443008, 4293918720, 4292870144, 4290772992, 4286578688, 4278190080, 4261412864, 4227858432, 4160749568, 4026531840, 3758096384, 3221225472, 2147483648, 0, 0, 0, 0, 0,
+ 4294967232, 4294967168, 4294967040, 4294966784, 4294966272, 4294965248, 4294963200, 4294959104, 4294950912, 4294934528, 4294901760, 4294836224, 4294705152, 4294443008, 4293918720, 4292870144, 4290772992, 4286578688, 4278190080, 4261412864, 4227858432, 4160749568, 4026531840, 3758096384, 3221225472, 2147483648, 0, 0, 0, 0, 0, 0,
+ 4294967168, 4294967040, 4294966784, 4294966272, 4294965248, 4294963200, 4294959104, 4294950912, 4294934528, 4294901760, 4294836224, 4294705152, 4294443008, 4293918720, 4292870144, 4290772992, 4286578688, 4278190080, 4261412864, 4227858432, 4160749568, 4026531840, 3758096384, 3221225472, 2147483648, 0, 0, 0, 0, 0, 0, 0 ]
+ }
+ }
+ ATTRIBUTE "DU64BITS" {
+ DATATYPE H5T_ARRAY { [8][64] H5T_STD_U64LE }
+ DATASPACE SCALAR
+ DATA {
+ (0): [ 18446744073709551615, 18446744073709551614, 18446744073709551612, 18446744073709551608, 18446744073709551600, 18446744073709551584, 18446744073709551552, 18446744073709551488, 18446744073709551360, 18446744073709551104, 18446744073709550592, 18446744073709549568, 18446744073709547520, 18446744073709543424, 18446744073709535232, 18446744073709518848, 18446744073709486080, 18446744073709420544, 18446744073709289472, 18446744073709027328, 18446744073708503040, 18446744073707454464, 18446744073705357312, 18446744073701163008, 18446744073692774400, 18446744073675997184, 18446744073642442752, 18446744073575333888, 18446744073441116160, 18446744073172680704, 18446744072635809792, 18446744071562067968, 18446744069414584320, 18446744065119617024, 18446744056529682432, 18446744039349813248, 18446744004990074880, 18446743936270598144, 18446743798831644672, 18446743523953737728, 18446742974197923840, 18446741874686296064, 18446739675663040512, 18446735277616529408, 18446726481523507200, 18446708889337462784, 18446673704965373952, 18446603336221196288, 18446462598732840960, 18446181123756130304, 18445618173802708992, 18444492273895866368, 18442240474082181120, 18437736874454810624, 18428729675200069632, 18410715276690587648, 18374686479671623680, 18302628885633695744, 18158513697557839872, 17870283321406128128, 17293822569102704640, 16140901064495857664, 13835058055282163712, 9223372036854775808,
+ 18446744073709551614, 18446744073709551612, 18446744073709551608, 18446744073709551600, 18446744073709551584, 18446744073709551552, 18446744073709551488, 18446744073709551360, 18446744073709551104, 18446744073709550592, 18446744073709549568, 18446744073709547520, 18446744073709543424, 18446744073709535232, 18446744073709518848, 18446744073709486080, 18446744073709420544, 18446744073709289472, 18446744073709027328, 18446744073708503040, 18446744073707454464, 18446744073705357312, 18446744073701163008, 18446744073692774400, 18446744073675997184, 18446744073642442752, 18446744073575333888, 18446744073441116160, 18446744073172680704, 18446744072635809792, 18446744071562067968, 18446744069414584320, 18446744065119617024, 18446744056529682432, 18446744039349813248, 18446744004990074880, 18446743936270598144, 18446743798831644672, 18446743523953737728, 18446742974197923840, 18446741874686296064, 18446739675663040512, 18446735277616529408, 18446726481523507200, 18446708889337462784, 18446673704965373952, 18446603336221196288, 18446462598732840960, 18446181123756130304, 18445618173802708992, 18444492273895866368, 18442240474082181120, 18437736874454810624, 18428729675200069632, 18410715276690587648, 18374686479671623680, 18302628885633695744, 18158513697557839872, 17870283321406128128, 17293822569102704640, 16140901064495857664, 13835058055282163712, 9223372036854775808, 0,
+ 18446744073709551612, 18446744073709551608, 18446744073709551600, 18446744073709551584, 18446744073709551552, 18446744073709551488, 18446744073709551360, 18446744073709551104, 18446744073709550592, 18446744073709549568, 18446744073709547520, 18446744073709543424, 18446744073709535232, 18446744073709518848, 18446744073709486080, 18446744073709420544, 18446744073709289472, 18446744073709027328, 18446744073708503040, 18446744073707454464, 18446744073705357312, 18446744073701163008, 18446744073692774400, 18446744073675997184, 18446744073642442752, 18446744073575333888, 18446744073441116160, 18446744073172680704, 18446744072635809792, 18446744071562067968, 18446744069414584320, 18446744065119617024, 18446744056529682432, 18446744039349813248, 18446744004990074880, 18446743936270598144, 18446743798831644672, 18446743523953737728, 18446742974197923840, 18446741874686296064, 18446739675663040512, 18446735277616529408, 18446726481523507200, 18446708889337462784, 18446673704965373952, 18446603336221196288, 18446462598732840960, 18446181123756130304, 18445618173802708992, 18444492273895866368, 18442240474082181120, 18437736874454810624, 18428729675200069632, 18410715276690587648, 18374686479671623680, 18302628885633695744, 18158513697557839872, 17870283321406128128, 17293822569102704640, 16140901064495857664, 13835058055282163712, 9223372036854775808, 0, 0,
+ 18446744073709551608, 18446744073709551600, 18446744073709551584, 18446744073709551552, 18446744073709551488, 18446744073709551360, 18446744073709551104, 18446744073709550592, 18446744073709549568, 18446744073709547520, 18446744073709543424, 18446744073709535232, 18446744073709518848, 18446744073709486080, 18446744073709420544, 18446744073709289472, 18446744073709027328, 18446744073708503040, 18446744073707454464, 18446744073705357312, 18446744073701163008, 18446744073692774400, 18446744073675997184, 18446744073642442752, 18446744073575333888, 18446744073441116160, 18446744073172680704, 18446744072635809792, 18446744071562067968, 18446744069414584320, 18446744065119617024, 18446744056529682432, 18446744039349813248, 18446744004990074880, 18446743936270598144, 18446743798831644672, 18446743523953737728, 18446742974197923840, 18446741874686296064, 18446739675663040512, 18446735277616529408, 18446726481523507200, 18446708889337462784, 18446673704965373952, 18446603336221196288, 18446462598732840960, 18446181123756130304, 18445618173802708992, 18444492273895866368, 18442240474082181120, 18437736874454810624, 18428729675200069632, 18410715276690587648, 18374686479671623680, 18302628885633695744, 18158513697557839872, 17870283321406128128, 17293822569102704640, 16140901064495857664, 13835058055282163712, 9223372036854775808, 0, 0, 0,
+ 18446744073709551600, 18446744073709551584, 18446744073709551552, 18446744073709551488, 18446744073709551360, 18446744073709551104, 18446744073709550592, 18446744073709549568, 18446744073709547520, 18446744073709543424, 18446744073709535232, 18446744073709518848, 18446744073709486080, 18446744073709420544, 18446744073709289472, 18446744073709027328, 18446744073708503040, 18446744073707454464, 18446744073705357312, 18446744073701163008, 18446744073692774400, 18446744073675997184, 18446744073642442752, 18446744073575333888, 18446744073441116160, 18446744073172680704, 18446744072635809792, 18446744071562067968, 18446744069414584320, 18446744065119617024, 18446744056529682432, 18446744039349813248, 18446744004990074880, 18446743936270598144, 18446743798831644672, 18446743523953737728, 18446742974197923840, 18446741874686296064, 18446739675663040512, 18446735277616529408, 18446726481523507200, 18446708889337462784, 18446673704965373952, 18446603336221196288, 18446462598732840960, 18446181123756130304, 18445618173802708992, 18444492273895866368, 18442240474082181120, 18437736874454810624, 18428729675200069632, 18410715276690587648, 18374686479671623680, 18302628885633695744, 18158513697557839872, 17870283321406128128, 17293822569102704640, 16140901064495857664, 13835058055282163712, 9223372036854775808, 0, 0, 0, 0,
+ 18446744073709551584, 18446744073709551552, 18446744073709551488, 18446744073709551360, 18446744073709551104, 18446744073709550592, 18446744073709549568, 18446744073709547520, 18446744073709543424, 18446744073709535232, 18446744073709518848, 18446744073709486080, 18446744073709420544, 18446744073709289472, 18446744073709027328, 18446744073708503040, 18446744073707454464, 18446744073705357312, 18446744073701163008, 18446744073692774400, 18446744073675997184, 18446744073642442752, 18446744073575333888, 18446744073441116160, 18446744073172680704, 18446744072635809792, 18446744071562067968, 18446744069414584320, 18446744065119617024, 18446744056529682432, 18446744039349813248, 18446744004990074880, 18446743936270598144, 18446743798831644672, 18446743523953737728, 18446742974197923840, 18446741874686296064, 18446739675663040512, 18446735277616529408, 18446726481523507200, 18446708889337462784, 18446673704965373952, 18446603336221196288, 18446462598732840960, 18446181123756130304, 18445618173802708992, 18444492273895866368, 18442240474082181120, 18437736874454810624, 18428729675200069632, 18410715276690587648, 18374686479671623680, 18302628885633695744, 18158513697557839872, 17870283321406128128, 17293822569102704640, 16140901064495857664, 13835058055282163712, 9223372036854775808, 0, 0, 0, 0, 0,
+ 18446744073709551552, 18446744073709551488, 18446744073709551360, 18446744073709551104, 18446744073709550592, 18446744073709549568, 18446744073709547520, 18446744073709543424, 18446744073709535232, 18446744073709518848, 18446744073709486080, 18446744073709420544, 18446744073709289472, 18446744073709027328, 18446744073708503040, 18446744073707454464, 18446744073705357312, 18446744073701163008, 18446744073692774400, 18446744073675997184, 18446744073642442752, 18446744073575333888, 18446744073441116160, 18446744073172680704, 18446744072635809792, 18446744071562067968, 18446744069414584320, 18446744065119617024, 18446744056529682432, 18446744039349813248, 18446744004990074880, 18446743936270598144, 18446743798831644672, 18446743523953737728, 18446742974197923840, 18446741874686296064, 18446739675663040512, 18446735277616529408, 18446726481523507200, 18446708889337462784, 18446673704965373952, 18446603336221196288, 18446462598732840960, 18446181123756130304, 18445618173802708992, 18444492273895866368, 18442240474082181120, 18437736874454810624, 18428729675200069632, 18410715276690587648, 18374686479671623680, 18302628885633695744, 18158513697557839872, 17870283321406128128, 17293822569102704640, 16140901064495857664, 13835058055282163712, 9223372036854775808, 0, 0, 0, 0, 0, 0,
+ 18446744073709551488, 18446744073709551360, 18446744073709551104, 18446744073709550592, 18446744073709549568, 18446744073709547520, 18446744073709543424, 18446744073709535232, 18446744073709518848, 18446744073709486080, 18446744073709420544, 18446744073709289472, 18446744073709027328, 18446744073708503040, 18446744073707454464, 18446744073705357312, 18446744073701163008, 18446744073692774400, 18446744073675997184, 18446744073642442752, 18446744073575333888, 18446744073441116160, 18446744073172680704, 18446744072635809792, 18446744071562067968, 18446744069414584320, 18446744065119617024, 18446744056529682432, 18446744039349813248, 18446744004990074880, 18446743936270598144, 18446743798831644672, 18446743523953737728, 18446742974197923840, 18446741874686296064, 18446739675663040512, 18446735277616529408, 18446726481523507200, 18446708889337462784, 18446673704965373952, 18446603336221196288, 18446462598732840960, 18446181123756130304, 18445618173802708992, 18444492273895866368, 18442240474082181120, 18437736874454810624, 18428729675200069632, 18410715276690587648, 18374686479671623680, 18302628885633695744, 18158513697557839872, 17870283321406128128, 17293822569102704640, 16140901064495857664, 13835058055282163712, 9223372036854775808, 0, 0, 0, 0, 0, 0, 0 ]
+ }
+ }
+ ATTRIBUTE "DummyDBL" {
+ DATATYPE H5T_ARRAY { [8][8] H5T_IEEE_F64LE }
+ DATASPACE SCALAR
+ DATA {
+ (0): [ 0, 0.0001, 0.0002, 0.0003, 0.0004, 0.0005, 0.0006, 0.0007,
+ 1, 1.0001, 1.0002, 1.0003, 1.0004, 1.0005, 1.0006, 1.0007,
+ 2, 2.0001, 2.0002, 2.0003, 2.0004, 2.0005, 2.0006, 2.0007,
+ 3, 3.0001, 3.0002, 3.0003, 3.0004, 3.0005, 3.0006, 3.0007,
+ 4, 4.0001, 4.0002, 4.0003, 4.0004, 4.0005, 4.0006, 4.0007,
+ 5, 5.0001, 5.0002, 5.0003, 5.0004, 5.0005, 5.0006, 5.0007,
+ 6, 6.0001, 6.0002, 6.0003, 6.0004, 6.0005, 6.0006, 6.0007,
+ 7, 7.0001, 7.0002, 7.0003, 7.0004, 7.0005, 7.0006, 7.0007 ]
+ }
+ }
+}
+}
diff --git a/tools/testfiles/tscalarattrintsize.h5 b/tools/testfiles/tscalarattrintsize.h5
new file mode 100644
index 0000000..df91f54
--- /dev/null
+++ b/tools/testfiles/tscalarattrintsize.h5
Binary files differ
diff --git a/tools/testfiles/tscalarintsize.ddl b/tools/testfiles/tscalarintsize.ddl
new file mode 100644
index 0000000..4b06a74
--- /dev/null
+++ b/tools/testfiles/tscalarintsize.ddl
@@ -0,0 +1,130 @@
+HDF5 "tscalarintsize.h5" {
+GROUP "/" {
+ DATASET "DS08BITS" {
+ DATATYPE H5T_ARRAY { [8][8] H5T_STD_I8LE }
+ DATASPACE SCALAR
+ DATA {
+ (0): [ -1, -2, -4, -8, -16, -32, -64, -128,
+ -2, -4, -8, -16, -32, -64, -128, 0,
+ -4, -8, -16, -32, -64, -128, 0, 0,
+ -8, -16, -32, -64, -128, 0, 0, 0,
+ -16, -32, -64, -128, 0, 0, 0, 0,
+ -32, -64, -128, 0, 0, 0, 0, 0,
+ -64, -128, 0, 0, 0, 0, 0, 0,
+ -128, 0, 0, 0, 0, 0, 0, 0 ]
+ }
+ }
+ DATASET "DS16BITS" {
+ DATATYPE H5T_ARRAY { [8][16] H5T_STD_I16LE }
+ DATASPACE SCALAR
+ DATA {
+ (0): [ -1, -2, -4, -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768,
+ -2, -4, -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, 0,
+ -4, -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, 0, 0,
+ -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, 0, 0, 0,
+ -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, 0, 0, 0, 0,
+ -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, 0, 0, 0, 0, 0,
+ -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, 0, 0, 0, 0, 0, 0,
+ -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, 0, 0, 0, 0, 0, 0, 0 ]
+ }
+ }
+ DATASET "DS32BITS" {
+ DATATYPE H5T_ARRAY { [8][32] H5T_STD_I32LE }
+ DATASPACE SCALAR
+ DATA {
+ (0): [ -1, -2, -4, -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, -65536, -131072, -262144, -524288, -1048576, -2097152, -4194304, -8388608, -16777216, -33554432, -67108864, -134217728, -268435456, -536870912, -1073741824, -2147483648,
+ -2, -4, -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, -65536, -131072, -262144, -524288, -1048576, -2097152, -4194304, -8388608, -16777216, -33554432, -67108864, -134217728, -268435456, -536870912, -1073741824, -2147483648, 0,
+ -4, -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, -65536, -131072, -262144, -524288, -1048576, -2097152, -4194304, -8388608, -16777216, -33554432, -67108864, -134217728, -268435456, -536870912, -1073741824, -2147483648, 0, 0,
+ -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, -65536, -131072, -262144, -524288, -1048576, -2097152, -4194304, -8388608, -16777216, -33554432, -67108864, -134217728, -268435456, -536870912, -1073741824, -2147483648, 0, 0, 0,
+ -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, -65536, -131072, -262144, -524288, -1048576, -2097152, -4194304, -8388608, -16777216, -33554432, -67108864, -134217728, -268435456, -536870912, -1073741824, -2147483648, 0, 0, 0, 0,
+ -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, -65536, -131072, -262144, -524288, -1048576, -2097152, -4194304, -8388608, -16777216, -33554432, -67108864, -134217728, -268435456, -536870912, -1073741824, -2147483648, 0, 0, 0, 0, 0,
+ -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, -65536, -131072, -262144, -524288, -1048576, -2097152, -4194304, -8388608, -16777216, -33554432, -67108864, -134217728, -268435456, -536870912, -1073741824, -2147483648, 0, 0, 0, 0, 0, 0,
+ -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, -65536, -131072, -262144, -524288, -1048576, -2097152, -4194304, -8388608, -16777216, -33554432, -67108864, -134217728, -268435456, -536870912, -1073741824, -2147483648, 0, 0, 0, 0, 0, 0, 0 ]
+ }
+ }
+ DATASET "DS64BITS" {
+ DATATYPE H5T_ARRAY { [8][64] H5T_STD_I64LE }
+ DATASPACE SCALAR
+ DATA {
+ (0): [ -1, -2, -4, -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, -65536, -131072, -262144, -524288, -1048576, -2097152, -4194304, -8388608, -16777216, -33554432, -67108864, -134217728, -268435456, -536870912, -1073741824, -2147483648, -4294967296, -8589934592, -17179869184, -34359738368, -68719476736, -137438953472, -274877906944, -549755813888, -1099511627776, -2199023255552, -4398046511104, -8796093022208, -17592186044416, -35184372088832, -70368744177664, -140737488355328, -281474976710656, -562949953421312, -1125899906842624, -2251799813685248, -4503599627370496, -9007199254740992, -18014398509481984, -36028797018963968, -72057594037927936, -144115188075855872, -288230376151711744, -576460752303423488, -1152921504606846976, -2305843009213693952, -4611686018427387904, -9223372036854775808,
+ -2, -4, -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, -65536, -131072, -262144, -524288, -1048576, -2097152, -4194304, -8388608, -16777216, -33554432, -67108864, -134217728, -268435456, -536870912, -1073741824, -2147483648, -4294967296, -8589934592, -17179869184, -34359738368, -68719476736, -137438953472, -274877906944, -549755813888, -1099511627776, -2199023255552, -4398046511104, -8796093022208, -17592186044416, -35184372088832, -70368744177664, -140737488355328, -281474976710656, -562949953421312, -1125899906842624, -2251799813685248, -4503599627370496, -9007199254740992, -18014398509481984, -36028797018963968, -72057594037927936, -144115188075855872, -288230376151711744, -576460752303423488, -1152921504606846976, -2305843009213693952, -4611686018427387904, -9223372036854775808, 0,
+ -4, -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, -65536, -131072, -262144, -524288, -1048576, -2097152, -4194304, -8388608, -16777216, -33554432, -67108864, -134217728, -268435456, -536870912, -1073741824, -2147483648, -4294967296, -8589934592, -17179869184, -34359738368, -68719476736, -137438953472, -274877906944, -549755813888, -1099511627776, -2199023255552, -4398046511104, -8796093022208, -17592186044416, -35184372088832, -70368744177664, -140737488355328, -281474976710656, -562949953421312, -1125899906842624, -2251799813685248, -4503599627370496, -9007199254740992, -18014398509481984, -36028797018963968, -72057594037927936, -144115188075855872, -288230376151711744, -576460752303423488, -1152921504606846976, -2305843009213693952, -4611686018427387904, -9223372036854775808, 0, 0,
+ -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, -65536, -131072, -262144, -524288, -1048576, -2097152, -4194304, -8388608, -16777216, -33554432, -67108864, -134217728, -268435456, -536870912, -1073741824, -2147483648, -4294967296, -8589934592, -17179869184, -34359738368, -68719476736, -137438953472, -274877906944, -549755813888, -1099511627776, -2199023255552, -4398046511104, -8796093022208, -17592186044416, -35184372088832, -70368744177664, -140737488355328, -281474976710656, -562949953421312, -1125899906842624, -2251799813685248, -4503599627370496, -9007199254740992, -18014398509481984, -36028797018963968, -72057594037927936, -144115188075855872, -288230376151711744, -576460752303423488, -1152921504606846976, -2305843009213693952, -4611686018427387904, -9223372036854775808, 0, 0, 0,
+ -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, -65536, -131072, -262144, -524288, -1048576, -2097152, -4194304, -8388608, -16777216, -33554432, -67108864, -134217728, -268435456, -536870912, -1073741824, -2147483648, -4294967296, -8589934592, -17179869184, -34359738368, -68719476736, -137438953472, -274877906944, -549755813888, -1099511627776, -2199023255552, -4398046511104, -8796093022208, -17592186044416, -35184372088832, -70368744177664, -140737488355328, -281474976710656, -562949953421312, -1125899906842624, -2251799813685248, -4503599627370496, -9007199254740992, -18014398509481984, -36028797018963968, -72057594037927936, -144115188075855872, -288230376151711744, -576460752303423488, -1152921504606846976, -2305843009213693952, -4611686018427387904, -9223372036854775808, 0, 0, 0, 0,
+ -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, -65536, -131072, -262144, -524288, -1048576, -2097152, -4194304, -8388608, -16777216, -33554432, -67108864, -134217728, -268435456, -536870912, -1073741824, -2147483648, -4294967296, -8589934592, -17179869184, -34359738368, -68719476736, -137438953472, -274877906944, -549755813888, -1099511627776, -2199023255552, -4398046511104, -8796093022208, -17592186044416, -35184372088832, -70368744177664, -140737488355328, -281474976710656, -562949953421312, -1125899906842624, -2251799813685248, -4503599627370496, -9007199254740992, -18014398509481984, -36028797018963968, -72057594037927936, -144115188075855872, -288230376151711744, -576460752303423488, -1152921504606846976, -2305843009213693952, -4611686018427387904, -9223372036854775808, 0, 0, 0, 0, 0,
+ -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, -65536, -131072, -262144, -524288, -1048576, -2097152, -4194304, -8388608, -16777216, -33554432, -67108864, -134217728, -268435456, -536870912, -1073741824, -2147483648, -4294967296, -8589934592, -17179869184, -34359738368, -68719476736, -137438953472, -274877906944, -549755813888, -1099511627776, -2199023255552, -4398046511104, -8796093022208, -17592186044416, -35184372088832, -70368744177664, -140737488355328, -281474976710656, -562949953421312, -1125899906842624, -2251799813685248, -4503599627370496, -9007199254740992, -18014398509481984, -36028797018963968, -72057594037927936, -144115188075855872, -288230376151711744, -576460752303423488, -1152921504606846976, -2305843009213693952, -4611686018427387904, -9223372036854775808, 0, 0, 0, 0, 0, 0,
+ -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, -65536, -131072, -262144, -524288, -1048576, -2097152, -4194304, -8388608, -16777216, -33554432, -67108864, -134217728, -268435456, -536870912, -1073741824, -2147483648, -4294967296, -8589934592, -17179869184, -34359738368, -68719476736, -137438953472, -274877906944, -549755813888, -1099511627776, -2199023255552, -4398046511104, -8796093022208, -17592186044416, -35184372088832, -70368744177664, -140737488355328, -281474976710656, -562949953421312, -1125899906842624, -2251799813685248, -4503599627370496, -9007199254740992, -18014398509481984, -36028797018963968, -72057594037927936, -144115188075855872, -288230376151711744, -576460752303423488, -1152921504606846976, -2305843009213693952, -4611686018427387904, -9223372036854775808, 0, 0, 0, 0, 0, 0, 0 ]
+ }
+ }
+ DATASET "DU08BITS" {
+ DATATYPE H5T_ARRAY { [8][8] H5T_STD_U8LE }
+ DATASPACE SCALAR
+ DATA {
+ (0): [ 255, 254, 252, 248, 240, 224, 192, 128,
+ 254, 252, 248, 240, 224, 192, 128, 0,
+ 252, 248, 240, 224, 192, 128, 0, 0,
+ 248, 240, 224, 192, 128, 0, 0, 0,
+ 240, 224, 192, 128, 0, 0, 0, 0,
+ 224, 192, 128, 0, 0, 0, 0, 0,
+ 192, 128, 0, 0, 0, 0, 0, 0,
+ 128, 0, 0, 0, 0, 0, 0, 0 ]
+ }
+ }
+ DATASET "DU16BITS" {
+ DATATYPE H5T_ARRAY { [8][16] H5T_STD_U16LE }
+ DATASPACE SCALAR
+ DATA {
+ (0): [ 65535, 65534, 65532, 65528, 65520, 65504, 65472, 65408, 65280, 65024, 64512, 63488, 61440, 57344, 49152, 32768,
+ 65534, 65532, 65528, 65520, 65504, 65472, 65408, 65280, 65024, 64512, 63488, 61440, 57344, 49152, 32768, 0,
+ 65532, 65528, 65520, 65504, 65472, 65408, 65280, 65024, 64512, 63488, 61440, 57344, 49152, 32768, 0, 0,
+ 65528, 65520, 65504, 65472, 65408, 65280, 65024, 64512, 63488, 61440, 57344, 49152, 32768, 0, 0, 0,
+ 65520, 65504, 65472, 65408, 65280, 65024, 64512, 63488, 61440, 57344, 49152, 32768, 0, 0, 0, 0,
+ 65504, 65472, 65408, 65280, 65024, 64512, 63488, 61440, 57344, 49152, 32768, 0, 0, 0, 0, 0,
+ 65472, 65408, 65280, 65024, 64512, 63488, 61440, 57344, 49152, 32768, 0, 0, 0, 0, 0, 0,
+ 65408, 65280, 65024, 64512, 63488, 61440, 57344, 49152, 32768, 0, 0, 0, 0, 0, 0, 0 ]
+ }
+ }
+ DATASET "DU32BITS" {
+ DATATYPE H5T_ARRAY { [8][32] H5T_STD_U32LE }
+ DATASPACE SCALAR
+ DATA {
+ (0): [ 4294967295, 4294967294, 4294967292, 4294967288, 4294967280, 4294967264, 4294967232, 4294967168, 4294967040, 4294966784, 4294966272, 4294965248, 4294963200, 4294959104, 4294950912, 4294934528, 4294901760, 4294836224, 4294705152, 4294443008, 4293918720, 4292870144, 4290772992, 4286578688, 4278190080, 4261412864, 4227858432, 4160749568, 4026531840, 3758096384, 3221225472, 2147483648,
+ 4294967294, 4294967292, 4294967288, 4294967280, 4294967264, 4294967232, 4294967168, 4294967040, 4294966784, 4294966272, 4294965248, 4294963200, 4294959104, 4294950912, 4294934528, 4294901760, 4294836224, 4294705152, 4294443008, 4293918720, 4292870144, 4290772992, 4286578688, 4278190080, 4261412864, 4227858432, 4160749568, 4026531840, 3758096384, 3221225472, 2147483648, 0,
+ 4294967292, 4294967288, 4294967280, 4294967264, 4294967232, 4294967168, 4294967040, 4294966784, 4294966272, 4294965248, 4294963200, 4294959104, 4294950912, 4294934528, 4294901760, 4294836224, 4294705152, 4294443008, 4293918720, 4292870144, 4290772992, 4286578688, 4278190080, 4261412864, 4227858432, 4160749568, 4026531840, 3758096384, 3221225472, 2147483648, 0, 0,
+ 4294967288, 4294967280, 4294967264, 4294967232, 4294967168, 4294967040, 4294966784, 4294966272, 4294965248, 4294963200, 4294959104, 4294950912, 4294934528, 4294901760, 4294836224, 4294705152, 4294443008, 4293918720, 4292870144, 4290772992, 4286578688, 4278190080, 4261412864, 4227858432, 4160749568, 4026531840, 3758096384, 3221225472, 2147483648, 0, 0, 0,
+ 4294967280, 4294967264, 4294967232, 4294967168, 4294967040, 4294966784, 4294966272, 4294965248, 4294963200, 4294959104, 4294950912, 4294934528, 4294901760, 4294836224, 4294705152, 4294443008, 4293918720, 4292870144, 4290772992, 4286578688, 4278190080, 4261412864, 4227858432, 4160749568, 4026531840, 3758096384, 3221225472, 2147483648, 0, 0, 0, 0,
+ 4294967264, 4294967232, 4294967168, 4294967040, 4294966784, 4294966272, 4294965248, 4294963200, 4294959104, 4294950912, 4294934528, 4294901760, 4294836224, 4294705152, 4294443008, 4293918720, 4292870144, 4290772992, 4286578688, 4278190080, 4261412864, 4227858432, 4160749568, 4026531840, 3758096384, 3221225472, 2147483648, 0, 0, 0, 0, 0,
+ 4294967232, 4294967168, 4294967040, 4294966784, 4294966272, 4294965248, 4294963200, 4294959104, 4294950912, 4294934528, 4294901760, 4294836224, 4294705152, 4294443008, 4293918720, 4292870144, 4290772992, 4286578688, 4278190080, 4261412864, 4227858432, 4160749568, 4026531840, 3758096384, 3221225472, 2147483648, 0, 0, 0, 0, 0, 0,
+ 4294967168, 4294967040, 4294966784, 4294966272, 4294965248, 4294963200, 4294959104, 4294950912, 4294934528, 4294901760, 4294836224, 4294705152, 4294443008, 4293918720, 4292870144, 4290772992, 4286578688, 4278190080, 4261412864, 4227858432, 4160749568, 4026531840, 3758096384, 3221225472, 2147483648, 0, 0, 0, 0, 0, 0, 0 ]
+ }
+ }
+ DATASET "DU64BITS" {
+ DATATYPE H5T_ARRAY { [8][64] H5T_STD_U64LE }
+ DATASPACE SCALAR
+ DATA {
+ (0): [ 18446744073709551615, 18446744073709551614, 18446744073709551612, 18446744073709551608, 18446744073709551600, 18446744073709551584, 18446744073709551552, 18446744073709551488, 18446744073709551360, 18446744073709551104, 18446744073709550592, 18446744073709549568, 18446744073709547520, 18446744073709543424, 18446744073709535232, 18446744073709518848, 18446744073709486080, 18446744073709420544, 18446744073709289472, 18446744073709027328, 18446744073708503040, 18446744073707454464, 18446744073705357312, 18446744073701163008, 18446744073692774400, 18446744073675997184, 18446744073642442752, 18446744073575333888, 18446744073441116160, 18446744073172680704, 18446744072635809792, 18446744071562067968, 18446744069414584320, 18446744065119617024, 18446744056529682432, 18446744039349813248, 18446744004990074880, 18446743936270598144, 18446743798831644672, 18446743523953737728, 18446742974197923840, 18446741874686296064, 18446739675663040512, 18446735277616529408, 18446726481523507200, 18446708889337462784, 18446673704965373952, 18446603336221196288, 18446462598732840960, 18446181123756130304, 18445618173802708992, 18444492273895866368, 18442240474082181120, 18437736874454810624, 18428729675200069632, 18410715276690587648, 18374686479671623680, 18302628885633695744, 18158513697557839872, 17870283321406128128, 17293822569102704640, 16140901064495857664, 13835058055282163712, 9223372036854775808,
+ 18446744073709551614, 18446744073709551612, 18446744073709551608, 18446744073709551600, 18446744073709551584, 18446744073709551552, 18446744073709551488, 18446744073709551360, 18446744073709551104, 18446744073709550592, 18446744073709549568, 18446744073709547520, 18446744073709543424, 18446744073709535232, 18446744073709518848, 18446744073709486080, 18446744073709420544, 18446744073709289472, 18446744073709027328, 18446744073708503040, 18446744073707454464, 18446744073705357312, 18446744073701163008, 18446744073692774400, 18446744073675997184, 18446744073642442752, 18446744073575333888, 18446744073441116160, 18446744073172680704, 18446744072635809792, 18446744071562067968, 18446744069414584320, 18446744065119617024, 18446744056529682432, 18446744039349813248, 18446744004990074880, 18446743936270598144, 18446743798831644672, 18446743523953737728, 18446742974197923840, 18446741874686296064, 18446739675663040512, 18446735277616529408, 18446726481523507200, 18446708889337462784, 18446673704965373952, 18446603336221196288, 18446462598732840960, 18446181123756130304, 18445618173802708992, 18444492273895866368, 18442240474082181120, 18437736874454810624, 18428729675200069632, 18410715276690587648, 18374686479671623680, 18302628885633695744, 18158513697557839872, 17870283321406128128, 17293822569102704640, 16140901064495857664, 13835058055282163712, 9223372036854775808, 0,
+ 18446744073709551612, 18446744073709551608, 18446744073709551600, 18446744073709551584, 18446744073709551552, 18446744073709551488, 18446744073709551360, 18446744073709551104, 18446744073709550592, 18446744073709549568, 18446744073709547520, 18446744073709543424, 18446744073709535232, 18446744073709518848, 18446744073709486080, 18446744073709420544, 18446744073709289472, 18446744073709027328, 18446744073708503040, 18446744073707454464, 18446744073705357312, 18446744073701163008, 18446744073692774400, 18446744073675997184, 18446744073642442752, 18446744073575333888, 18446744073441116160, 18446744073172680704, 18446744072635809792, 18446744071562067968, 18446744069414584320, 18446744065119617024, 18446744056529682432, 18446744039349813248, 18446744004990074880, 18446743936270598144, 18446743798831644672, 18446743523953737728, 18446742974197923840, 18446741874686296064, 18446739675663040512, 18446735277616529408, 18446726481523507200, 18446708889337462784, 18446673704965373952, 18446603336221196288, 18446462598732840960, 18446181123756130304, 18445618173802708992, 18444492273895866368, 18442240474082181120, 18437736874454810624, 18428729675200069632, 18410715276690587648, 18374686479671623680, 18302628885633695744, 18158513697557839872, 17870283321406128128, 17293822569102704640, 16140901064495857664, 13835058055282163712, 9223372036854775808, 0, 0,
+ 18446744073709551608, 18446744073709551600, 18446744073709551584, 18446744073709551552, 18446744073709551488, 18446744073709551360, 18446744073709551104, 18446744073709550592, 18446744073709549568, 18446744073709547520, 18446744073709543424, 18446744073709535232, 18446744073709518848, 18446744073709486080, 18446744073709420544, 18446744073709289472, 18446744073709027328, 18446744073708503040, 18446744073707454464, 18446744073705357312, 18446744073701163008, 18446744073692774400, 18446744073675997184, 18446744073642442752, 18446744073575333888, 18446744073441116160, 18446744073172680704, 18446744072635809792, 18446744071562067968, 18446744069414584320, 18446744065119617024, 18446744056529682432, 18446744039349813248, 18446744004990074880, 18446743936270598144, 18446743798831644672, 18446743523953737728, 18446742974197923840, 18446741874686296064, 18446739675663040512, 18446735277616529408, 18446726481523507200, 18446708889337462784, 18446673704965373952, 18446603336221196288, 18446462598732840960, 18446181123756130304, 18445618173802708992, 18444492273895866368, 18442240474082181120, 18437736874454810624, 18428729675200069632, 18410715276690587648, 18374686479671623680, 18302628885633695744, 18158513697557839872, 17870283321406128128, 17293822569102704640, 16140901064495857664, 13835058055282163712, 9223372036854775808, 0, 0, 0,
+ 18446744073709551600, 18446744073709551584, 18446744073709551552, 18446744073709551488, 18446744073709551360, 18446744073709551104, 18446744073709550592, 18446744073709549568, 18446744073709547520, 18446744073709543424, 18446744073709535232, 18446744073709518848, 18446744073709486080, 18446744073709420544, 18446744073709289472, 18446744073709027328, 18446744073708503040, 18446744073707454464, 18446744073705357312, 18446744073701163008, 18446744073692774400, 18446744073675997184, 18446744073642442752, 18446744073575333888, 18446744073441116160, 18446744073172680704, 18446744072635809792, 18446744071562067968, 18446744069414584320, 18446744065119617024, 18446744056529682432, 18446744039349813248, 18446744004990074880, 18446743936270598144, 18446743798831644672, 18446743523953737728, 18446742974197923840, 18446741874686296064, 18446739675663040512, 18446735277616529408, 18446726481523507200, 18446708889337462784, 18446673704965373952, 18446603336221196288, 18446462598732840960, 18446181123756130304, 18445618173802708992, 18444492273895866368, 18442240474082181120, 18437736874454810624, 18428729675200069632, 18410715276690587648, 18374686479671623680, 18302628885633695744, 18158513697557839872, 17870283321406128128, 17293822569102704640, 16140901064495857664, 13835058055282163712, 9223372036854775808, 0, 0, 0, 0,
+ 18446744073709551584, 18446744073709551552, 18446744073709551488, 18446744073709551360, 18446744073709551104, 18446744073709550592, 18446744073709549568, 18446744073709547520, 18446744073709543424, 18446744073709535232, 18446744073709518848, 18446744073709486080, 18446744073709420544, 18446744073709289472, 18446744073709027328, 18446744073708503040, 18446744073707454464, 18446744073705357312, 18446744073701163008, 18446744073692774400, 18446744073675997184, 18446744073642442752, 18446744073575333888, 18446744073441116160, 18446744073172680704, 18446744072635809792, 18446744071562067968, 18446744069414584320, 18446744065119617024, 18446744056529682432, 18446744039349813248, 18446744004990074880, 18446743936270598144, 18446743798831644672, 18446743523953737728, 18446742974197923840, 18446741874686296064, 18446739675663040512, 18446735277616529408, 18446726481523507200, 18446708889337462784, 18446673704965373952, 18446603336221196288, 18446462598732840960, 18446181123756130304, 18445618173802708992, 18444492273895866368, 18442240474082181120, 18437736874454810624, 18428729675200069632, 18410715276690587648, 18374686479671623680, 18302628885633695744, 18158513697557839872, 17870283321406128128, 17293822569102704640, 16140901064495857664, 13835058055282163712, 9223372036854775808, 0, 0, 0, 0, 0,
+ 18446744073709551552, 18446744073709551488, 18446744073709551360, 18446744073709551104, 18446744073709550592, 18446744073709549568, 18446744073709547520, 18446744073709543424, 18446744073709535232, 18446744073709518848, 18446744073709486080, 18446744073709420544, 18446744073709289472, 18446744073709027328, 18446744073708503040, 18446744073707454464, 18446744073705357312, 18446744073701163008, 18446744073692774400, 18446744073675997184, 18446744073642442752, 18446744073575333888, 18446744073441116160, 18446744073172680704, 18446744072635809792, 18446744071562067968, 18446744069414584320, 18446744065119617024, 18446744056529682432, 18446744039349813248, 18446744004990074880, 18446743936270598144, 18446743798831644672, 18446743523953737728, 18446742974197923840, 18446741874686296064, 18446739675663040512, 18446735277616529408, 18446726481523507200, 18446708889337462784, 18446673704965373952, 18446603336221196288, 18446462598732840960, 18446181123756130304, 18445618173802708992, 18444492273895866368, 18442240474082181120, 18437736874454810624, 18428729675200069632, 18410715276690587648, 18374686479671623680, 18302628885633695744, 18158513697557839872, 17870283321406128128, 17293822569102704640, 16140901064495857664, 13835058055282163712, 9223372036854775808, 0, 0, 0, 0, 0, 0,
+ 18446744073709551488, 18446744073709551360, 18446744073709551104, 18446744073709550592, 18446744073709549568, 18446744073709547520, 18446744073709543424, 18446744073709535232, 18446744073709518848, 18446744073709486080, 18446744073709420544, 18446744073709289472, 18446744073709027328, 18446744073708503040, 18446744073707454464, 18446744073705357312, 18446744073701163008, 18446744073692774400, 18446744073675997184, 18446744073642442752, 18446744073575333888, 18446744073441116160, 18446744073172680704, 18446744072635809792, 18446744071562067968, 18446744069414584320, 18446744065119617024, 18446744056529682432, 18446744039349813248, 18446744004990074880, 18446743936270598144, 18446743798831644672, 18446743523953737728, 18446742974197923840, 18446741874686296064, 18446739675663040512, 18446735277616529408, 18446726481523507200, 18446708889337462784, 18446673704965373952, 18446603336221196288, 18446462598732840960, 18446181123756130304, 18445618173802708992, 18444492273895866368, 18442240474082181120, 18437736874454810624, 18428729675200069632, 18410715276690587648, 18374686479671623680, 18302628885633695744, 18158513697557839872, 17870283321406128128, 17293822569102704640, 16140901064495857664, 13835058055282163712, 9223372036854775808, 0, 0, 0, 0, 0, 0, 0 ]
+ }
+ }
+ DATASET "DummyDBL" {
+ DATATYPE H5T_ARRAY { [8][8] H5T_IEEE_F64LE }
+ DATASPACE SCALAR
+ DATA {
+ (0): [ 0, 0.0001, 0.0002, 0.0003, 0.0004, 0.0005, 0.0006, 0.0007,
+ 1, 1.0001, 1.0002, 1.0003, 1.0004, 1.0005, 1.0006, 1.0007,
+ 2, 2.0001, 2.0002, 2.0003, 2.0004, 2.0005, 2.0006, 2.0007,
+ 3, 3.0001, 3.0002, 3.0003, 3.0004, 3.0005, 3.0006, 3.0007,
+ 4, 4.0001, 4.0002, 4.0003, 4.0004, 4.0005, 4.0006, 4.0007,
+ 5, 5.0001, 5.0002, 5.0003, 5.0004, 5.0005, 5.0006, 5.0007,
+ 6, 6.0001, 6.0002, 6.0003, 6.0004, 6.0005, 6.0006, 6.0007,
+ 7, 7.0001, 7.0002, 7.0003, 7.0004, 7.0005, 7.0006, 7.0007 ]
+ }
+ }
+}
+}
diff --git a/tools/testfiles/tscalarintsize.h5 b/tools/testfiles/tscalarintsize.h5
new file mode 100644
index 0000000..5a82378
--- /dev/null
+++ b/tools/testfiles/tscalarintsize.h5
Binary files differ
diff --git a/tools/testfiles/tscalarstring.ddl b/tools/testfiles/tscalarstring.ddl
new file mode 100644
index 0000000..4ba7093
--- /dev/null
+++ b/tools/testfiles/tscalarstring.ddl
@@ -0,0 +1,28 @@
+HDF5 "tscalarstring.h5" {
+GROUP "/" {
+ ATTRIBUTE "attr_str" {
+ DATATYPE H5T_STRING {
+ STRSIZE 64;
+ STRPAD H5T_STR_NULLTERM;
+ CSET H5T_CSET_ASCII;
+ CTYPE H5T_C_S1;
+ }
+ DATASPACE SCALAR
+ DATA {
+ (0): "ABCDEFGHBCDEFGHICDEFGHIJDEFGHIJKEFGHIJKLFGHIJKLMGHIJKLMNHIJKLMNO"
+ }
+ }
+ DATASET "the_str" {
+ DATATYPE H5T_STRING {
+ STRSIZE 64;
+ STRPAD H5T_STR_NULLTERM;
+ CSET H5T_CSET_ASCII;
+ CTYPE H5T_C_S1;
+ }
+ DATASPACE SCALAR
+ DATA {
+ (0): "ABCDEFGHBCDEFGHICDEFGHIJDEFGHIJKEFGHIJKLFGHIJKLMGHIJKLMNHIJKLMNO"
+ }
+ }
+}
+}
diff --git a/tools/testfiles/tscalarstring.h5 b/tools/testfiles/tscalarstring.h5
new file mode 100644
index 0000000..b0993ef
--- /dev/null
+++ b/tools/testfiles/tscalarstring.h5
Binary files differ
diff --git a/tools/testfiles/twithddl.exp b/tools/testfiles/twithddl.exp
new file mode 100644
index 0000000..f99d906
--- /dev/null
+++ b/tools/testfiles/twithddl.exp
@@ -0,0 +1,58 @@
+HDF5 "packedbits.h5" {
+GROUP "/" {
+ DATASET "DS08BITS" {
+ DATATYPE H5T_STD_I8LE
+ DATASPACE SIMPLE { ( 8, 8 ) / ( 8, 8 ) }
+ DATA {
+ }
+ }
+ DATASET "DS16BITS" {
+ DATATYPE H5T_STD_I16LE
+ DATASPACE SIMPLE { ( 8, 16 ) / ( 8, 16 ) }
+ DATA {
+ }
+ }
+ DATASET "DS32BITS" {
+ DATATYPE H5T_STD_I32LE
+ DATASPACE SIMPLE { ( 8, 32 ) / ( 8, 32 ) }
+ DATA {
+ }
+ }
+ DATASET "DS64BITS" {
+ DATATYPE H5T_STD_I64LE
+ DATASPACE SIMPLE { ( 8, 64 ) / ( 8, 64 ) }
+ DATA {
+ }
+ }
+ DATASET "DU08BITS" {
+ DATATYPE H5T_STD_U8LE
+ DATASPACE SIMPLE { ( 8, 8 ) / ( 8, 8 ) }
+ DATA {
+ }
+ }
+ DATASET "DU16BITS" {
+ DATATYPE H5T_STD_U16LE
+ DATASPACE SIMPLE { ( 8, 16 ) / ( 8, 16 ) }
+ DATA {
+ }
+ }
+ DATASET "DU32BITS" {
+ DATATYPE H5T_STD_U32LE
+ DATASPACE SIMPLE { ( 8, 32 ) / ( 8, 32 ) }
+ DATA {
+ }
+ }
+ DATASET "DU64BITS" {
+ DATATYPE H5T_STD_U64LE
+ DATASPACE SIMPLE { ( 8, 64 ) / ( 8, 64 ) }
+ DATA {
+ }
+ }
+ DATASET "DummyDBL" {
+ DATATYPE H5T_IEEE_F64BE
+ DATASPACE SIMPLE { ( 8, 8 ) / ( 8, 8 ) }
+ DATA {
+ }
+ }
+}
+}
diff --git a/tools/testfiles/twithddlfile.ddl b/tools/testfiles/twithddlfile.ddl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/tools/testfiles/twithddlfile.ddl
diff --git a/tools/testfiles/twithddlfile.exp b/tools/testfiles/twithddlfile.exp
new file mode 100644
index 0000000..dc19888
--- /dev/null
+++ b/tools/testfiles/twithddlfile.exp
@@ -0,0 +1,402 @@
+
+ -1, -2, -4, -8, -16, -32, -64, -128,
+ -2, -4, -8, -16, -32, -64, -128, 0,
+ -4, -8, -16, -32, -64, -128, 0, 0,
+ -8, -16, -32, -64, -128, 0, 0, 0,
+ -16, -32, -64, -128, 0, 0, 0, 0,
+ -32, -64, -128, 0, 0, 0, 0, 0,
+ -64, -128, 0, 0, 0, 0, 0, 0,
+ -128, 0, 0, 0, 0, 0, 0, 0
+ -1, -2, -4, -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096,
+ -8192, -16384, -32768,
+ -2, -4, -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096,
+ -8192, -16384, -32768, 0,
+ -4, -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192,
+ -16384, -32768, 0, 0,
+ -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192,
+ -16384, -32768, 0, 0, 0,
+ -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384,
+ -32768, 0, 0, 0, 0,
+ -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768,
+ 0, 0, 0, 0, 0,
+ -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, 0,
+ 0, 0, 0, 0, 0,
+ -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, 0, 0, 0,
+ 0, 0, 0, 0
+ -1, -2, -4, -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096,
+ -8192, -16384, -32768, -65536, -131072, -262144, -524288, -1048576,
+ -2097152, -4194304, -8388608, -16777216, -33554432, -67108864,
+ -134217728, -268435456, -536870912, -1073741824, -2147483648,
+ -2, -4, -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096,
+ -8192, -16384, -32768, -65536, -131072, -262144, -524288, -1048576,
+ -2097152, -4194304, -8388608, -16777216, -33554432, -67108864,
+ -134217728, -268435456, -536870912, -1073741824, -2147483648, 0,
+ -4, -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192,
+ -16384, -32768, -65536, -131072, -262144, -524288, -1048576, -2097152,
+ -4194304, -8388608, -16777216, -33554432, -67108864, -134217728,
+ -268435456, -536870912, -1073741824, -2147483648, 0, 0,
+ -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192,
+ -16384, -32768, -65536, -131072, -262144, -524288, -1048576, -2097152,
+ -4194304, -8388608, -16777216, -33554432, -67108864, -134217728,
+ -268435456, -536870912, -1073741824, -2147483648, 0, 0, 0,
+ -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384,
+ -32768, -65536, -131072, -262144, -524288, -1048576, -2097152,
+ -4194304, -8388608, -16777216, -33554432, -67108864, -134217728,
+ -268435456, -536870912, -1073741824, -2147483648, 0, 0, 0, 0,
+ -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768,
+ -65536, -131072, -262144, -524288, -1048576, -2097152, -4194304,
+ -8388608, -16777216, -33554432, -67108864, -134217728, -268435456,
+ -536870912, -1073741824, -2147483648, 0, 0, 0, 0, 0,
+ -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768,
+ -65536, -131072, -262144, -524288, -1048576, -2097152, -4194304,
+ -8388608, -16777216, -33554432, -67108864, -134217728, -268435456,
+ -536870912, -1073741824, -2147483648, 0, 0, 0, 0, 0, 0,
+ -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, -65536,
+ -131072, -262144, -524288, -1048576, -2097152, -4194304, -8388608,
+ -16777216, -33554432, -67108864, -134217728, -268435456, -536870912,
+ -1073741824, -2147483648, 0, 0, 0, 0, 0, 0, 0
+ -1, -2, -4, -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096,
+ -8192, -16384, -32768, -65536, -131072, -262144, -524288, -1048576,
+ -2097152, -4194304, -8388608, -16777216, -33554432, -67108864,
+ -134217728, -268435456, -536870912, -1073741824, -2147483648,
+ -4294967296, -8589934592, -17179869184, -34359738368, -68719476736,
+ -137438953472, -274877906944, -549755813888, -1099511627776,
+ -2199023255552, -4398046511104, -8796093022208, -17592186044416,
+ -35184372088832, -70368744177664, -140737488355328, -281474976710656,
+ -562949953421312, -1125899906842624, -2251799813685248,
+ -4503599627370496, -9007199254740992, -18014398509481984,
+ -36028797018963968, -72057594037927936, -144115188075855872,
+ -288230376151711744, -576460752303423488, -1152921504606846976,
+ -2305843009213693952, -4611686018427387904, -9223372036854775808,
+ -2, -4, -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096,
+ -8192, -16384, -32768, -65536, -131072, -262144, -524288, -1048576,
+ -2097152, -4194304, -8388608, -16777216, -33554432, -67108864,
+ -134217728, -268435456, -536870912, -1073741824, -2147483648,
+ -4294967296, -8589934592, -17179869184, -34359738368, -68719476736,
+ -137438953472, -274877906944, -549755813888, -1099511627776,
+ -2199023255552, -4398046511104, -8796093022208, -17592186044416,
+ -35184372088832, -70368744177664, -140737488355328, -281474976710656,
+ -562949953421312, -1125899906842624, -2251799813685248,
+ -4503599627370496, -9007199254740992, -18014398509481984,
+ -36028797018963968, -72057594037927936, -144115188075855872,
+ -288230376151711744, -576460752303423488, -1152921504606846976,
+ -2305843009213693952, -4611686018427387904, -9223372036854775808, 0,
+ -4, -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192,
+ -16384, -32768, -65536, -131072, -262144, -524288, -1048576, -2097152,
+ -4194304, -8388608, -16777216, -33554432, -67108864, -134217728,
+ -268435456, -536870912, -1073741824, -2147483648, -4294967296,
+ -8589934592, -17179869184, -34359738368, -68719476736, -137438953472,
+ -274877906944, -549755813888, -1099511627776, -2199023255552,
+ -4398046511104, -8796093022208, -17592186044416, -35184372088832,
+ -70368744177664, -140737488355328, -281474976710656, -562949953421312,
+ -1125899906842624, -2251799813685248, -4503599627370496,
+ -9007199254740992, -18014398509481984, -36028797018963968,
+ -72057594037927936, -144115188075855872, -288230376151711744,
+ -576460752303423488, -1152921504606846976, -2305843009213693952,
+ -4611686018427387904, -9223372036854775808, 0, 0,
+ -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192,
+ -16384, -32768, -65536, -131072, -262144, -524288, -1048576, -2097152,
+ -4194304, -8388608, -16777216, -33554432, -67108864, -134217728,
+ -268435456, -536870912, -1073741824, -2147483648, -4294967296,
+ -8589934592, -17179869184, -34359738368, -68719476736, -137438953472,
+ -274877906944, -549755813888, -1099511627776, -2199023255552,
+ -4398046511104, -8796093022208, -17592186044416, -35184372088832,
+ -70368744177664, -140737488355328, -281474976710656, -562949953421312,
+ -1125899906842624, -2251799813685248, -4503599627370496,
+ -9007199254740992, -18014398509481984, -36028797018963968,
+ -72057594037927936, -144115188075855872, -288230376151711744,
+ -576460752303423488, -1152921504606846976, -2305843009213693952,
+ -4611686018427387904, -9223372036854775808, 0, 0, 0,
+ -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384,
+ -32768, -65536, -131072, -262144, -524288, -1048576, -2097152,
+ -4194304, -8388608, -16777216, -33554432, -67108864, -134217728,
+ -268435456, -536870912, -1073741824, -2147483648, -4294967296,
+ -8589934592, -17179869184, -34359738368, -68719476736, -137438953472,
+ -274877906944, -549755813888, -1099511627776, -2199023255552,
+ -4398046511104, -8796093022208, -17592186044416, -35184372088832,
+ -70368744177664, -140737488355328, -281474976710656, -562949953421312,
+ -1125899906842624, -2251799813685248, -4503599627370496,
+ -9007199254740992, -18014398509481984, -36028797018963968,
+ -72057594037927936, -144115188075855872, -288230376151711744,
+ -576460752303423488, -1152921504606846976, -2305843009213693952,
+ -4611686018427387904, -9223372036854775808, 0, 0, 0, 0,
+ -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768,
+ -65536, -131072, -262144, -524288, -1048576, -2097152, -4194304,
+ -8388608, -16777216, -33554432, -67108864, -134217728, -268435456,
+ -536870912, -1073741824, -2147483648, -4294967296, -8589934592,
+ -17179869184, -34359738368, -68719476736, -137438953472, -274877906944,
+ -549755813888, -1099511627776, -2199023255552, -4398046511104,
+ -8796093022208, -17592186044416, -35184372088832, -70368744177664,
+ -140737488355328, -281474976710656, -562949953421312,
+ -1125899906842624, -2251799813685248, -4503599627370496,
+ -9007199254740992, -18014398509481984, -36028797018963968,
+ -72057594037927936, -144115188075855872, -288230376151711744,
+ -576460752303423488, -1152921504606846976, -2305843009213693952,
+ -4611686018427387904, -9223372036854775808, 0, 0, 0, 0, 0,
+ -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768,
+ -65536, -131072, -262144, -524288, -1048576, -2097152, -4194304,
+ -8388608, -16777216, -33554432, -67108864, -134217728, -268435456,
+ -536870912, -1073741824, -2147483648, -4294967296, -8589934592,
+ -17179869184, -34359738368, -68719476736, -137438953472, -274877906944,
+ -549755813888, -1099511627776, -2199023255552, -4398046511104,
+ -8796093022208, -17592186044416, -35184372088832, -70368744177664,
+ -140737488355328, -281474976710656, -562949953421312,
+ -1125899906842624, -2251799813685248, -4503599627370496,
+ -9007199254740992, -18014398509481984, -36028797018963968,
+ -72057594037927936, -144115188075855872, -288230376151711744,
+ -576460752303423488, -1152921504606846976, -2305843009213693952,
+ -4611686018427387904, -9223372036854775808, 0, 0, 0, 0, 0, 0,
+ -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, -65536,
+ -131072, -262144, -524288, -1048576, -2097152, -4194304, -8388608,
+ -16777216, -33554432, -67108864, -134217728, -268435456, -536870912,
+ -1073741824, -2147483648, -4294967296, -8589934592, -17179869184,
+ -34359738368, -68719476736, -137438953472, -274877906944,
+ -549755813888, -1099511627776, -2199023255552, -4398046511104,
+ -8796093022208, -17592186044416, -35184372088832, -70368744177664,
+ -140737488355328, -281474976710656, -562949953421312,
+ -1125899906842624, -2251799813685248, -4503599627370496,
+ -9007199254740992, -18014398509481984, -36028797018963968,
+ -72057594037927936, -144115188075855872, -288230376151711744,
+ -576460752303423488, -1152921504606846976, -2305843009213693952,
+ -4611686018427387904, -9223372036854775808, 0, 0, 0, 0, 0, 0, 0
+ 255, 254, 252, 248, 240, 224, 192, 128,
+ 254, 252, 248, 240, 224, 192, 128, 0,
+ 252, 248, 240, 224, 192, 128, 0, 0,
+ 248, 240, 224, 192, 128, 0, 0, 0,
+ 240, 224, 192, 128, 0, 0, 0, 0,
+ 224, 192, 128, 0, 0, 0, 0, 0,
+ 192, 128, 0, 0, 0, 0, 0, 0,
+ 128, 0, 0, 0, 0, 0, 0, 0
+ 65535, 65534, 65532, 65528, 65520, 65504, 65472, 65408, 65280, 65024,
+ 64512, 63488, 61440, 57344, 49152, 32768,
+ 65534, 65532, 65528, 65520, 65504, 65472, 65408, 65280, 65024, 64512,
+ 63488, 61440, 57344, 49152, 32768, 0,
+ 65532, 65528, 65520, 65504, 65472, 65408, 65280, 65024, 64512, 63488,
+ 61440, 57344, 49152, 32768, 0, 0,
+ 65528, 65520, 65504, 65472, 65408, 65280, 65024, 64512, 63488, 61440,
+ 57344, 49152, 32768, 0, 0, 0,
+ 65520, 65504, 65472, 65408, 65280, 65024, 64512, 63488, 61440, 57344,
+ 49152, 32768, 0, 0, 0, 0,
+ 65504, 65472, 65408, 65280, 65024, 64512, 63488, 61440, 57344, 49152,
+ 32768, 0, 0, 0, 0, 0,
+ 65472, 65408, 65280, 65024, 64512, 63488, 61440, 57344, 49152, 32768,
+ 0, 0, 0, 0, 0, 0,
+ 65408, 65280, 65024, 64512, 63488, 61440, 57344, 49152, 32768, 0, 0, 0,
+ 0, 0, 0, 0
+ 4294967295, 4294967294, 4294967292, 4294967288, 4294967280, 4294967264,
+ 4294967232, 4294967168, 4294967040, 4294966784, 4294966272, 4294965248,
+ 4294963200, 4294959104, 4294950912, 4294934528, 4294901760, 4294836224,
+ 4294705152, 4294443008, 4293918720, 4292870144, 4290772992, 4286578688,
+ 4278190080, 4261412864, 4227858432, 4160749568, 4026531840, 3758096384,
+ 3221225472, 2147483648,
+ 4294967294, 4294967292, 4294967288, 4294967280, 4294967264, 4294967232,
+ 4294967168, 4294967040, 4294966784, 4294966272, 4294965248, 4294963200,
+ 4294959104, 4294950912, 4294934528, 4294901760, 4294836224, 4294705152,
+ 4294443008, 4293918720, 4292870144, 4290772992, 4286578688, 4278190080,
+ 4261412864, 4227858432, 4160749568, 4026531840, 3758096384, 3221225472,
+ 2147483648, 0,
+ 4294967292, 4294967288, 4294967280, 4294967264, 4294967232, 4294967168,
+ 4294967040, 4294966784, 4294966272, 4294965248, 4294963200, 4294959104,
+ 4294950912, 4294934528, 4294901760, 4294836224, 4294705152, 4294443008,
+ 4293918720, 4292870144, 4290772992, 4286578688, 4278190080, 4261412864,
+ 4227858432, 4160749568, 4026531840, 3758096384, 3221225472, 2147483648,
+ 0, 0,
+ 4294967288, 4294967280, 4294967264, 4294967232, 4294967168, 4294967040,
+ 4294966784, 4294966272, 4294965248, 4294963200, 4294959104, 4294950912,
+ 4294934528, 4294901760, 4294836224, 4294705152, 4294443008, 4293918720,
+ 4292870144, 4290772992, 4286578688, 4278190080, 4261412864, 4227858432,
+ 4160749568, 4026531840, 3758096384, 3221225472, 2147483648, 0, 0, 0,
+ 4294967280, 4294967264, 4294967232, 4294967168, 4294967040, 4294966784,
+ 4294966272, 4294965248, 4294963200, 4294959104, 4294950912, 4294934528,
+ 4294901760, 4294836224, 4294705152, 4294443008, 4293918720, 4292870144,
+ 4290772992, 4286578688, 4278190080, 4261412864, 4227858432, 4160749568,
+ 4026531840, 3758096384, 3221225472, 2147483648, 0, 0, 0, 0,
+ 4294967264, 4294967232, 4294967168, 4294967040, 4294966784, 4294966272,
+ 4294965248, 4294963200, 4294959104, 4294950912, 4294934528, 4294901760,
+ 4294836224, 4294705152, 4294443008, 4293918720, 4292870144, 4290772992,
+ 4286578688, 4278190080, 4261412864, 4227858432, 4160749568, 4026531840,
+ 3758096384, 3221225472, 2147483648, 0, 0, 0, 0, 0,
+ 4294967232, 4294967168, 4294967040, 4294966784, 4294966272, 4294965248,
+ 4294963200, 4294959104, 4294950912, 4294934528, 4294901760, 4294836224,
+ 4294705152, 4294443008, 4293918720, 4292870144, 4290772992, 4286578688,
+ 4278190080, 4261412864, 4227858432, 4160749568, 4026531840, 3758096384,
+ 3221225472, 2147483648, 0, 0, 0, 0, 0, 0,
+ 4294967168, 4294967040, 4294966784, 4294966272, 4294965248, 4294963200,
+ 4294959104, 4294950912, 4294934528, 4294901760, 4294836224, 4294705152,
+ 4294443008, 4293918720, 4292870144, 4290772992, 4286578688, 4278190080,
+ 4261412864, 4227858432, 4160749568, 4026531840, 3758096384, 3221225472,
+ 2147483648, 0, 0, 0, 0, 0, 0, 0
+ 18446744073709551615, 18446744073709551614, 18446744073709551612,
+ 18446744073709551608, 18446744073709551600, 18446744073709551584,
+ 18446744073709551552, 18446744073709551488, 18446744073709551360,
+ 18446744073709551104, 18446744073709550592, 18446744073709549568,
+ 18446744073709547520, 18446744073709543424, 18446744073709535232,
+ 18446744073709518848, 18446744073709486080, 18446744073709420544,
+ 18446744073709289472, 18446744073709027328, 18446744073708503040,
+ 18446744073707454464, 18446744073705357312, 18446744073701163008,
+ 18446744073692774400, 18446744073675997184, 18446744073642442752,
+ 18446744073575333888, 18446744073441116160, 18446744073172680704,
+ 18446744072635809792, 18446744071562067968, 18446744069414584320,
+ 18446744065119617024, 18446744056529682432, 18446744039349813248,
+ 18446744004990074880, 18446743936270598144, 18446743798831644672,
+ 18446743523953737728, 18446742974197923840, 18446741874686296064,
+ 18446739675663040512, 18446735277616529408, 18446726481523507200,
+ 18446708889337462784, 18446673704965373952, 18446603336221196288,
+ 18446462598732840960, 18446181123756130304, 18445618173802708992,
+ 18444492273895866368, 18442240474082181120, 18437736874454810624,
+ 18428729675200069632, 18410715276690587648, 18374686479671623680,
+ 18302628885633695744, 18158513697557839872, 17870283321406128128,
+ 17293822569102704640, 16140901064495857664, 13835058055282163712,
+ 9223372036854775808,
+ 18446744073709551614, 18446744073709551612, 18446744073709551608,
+ 18446744073709551600, 18446744073709551584, 18446744073709551552,
+ 18446744073709551488, 18446744073709551360, 18446744073709551104,
+ 18446744073709550592, 18446744073709549568, 18446744073709547520,
+ 18446744073709543424, 18446744073709535232, 18446744073709518848,
+ 18446744073709486080, 18446744073709420544, 18446744073709289472,
+ 18446744073709027328, 18446744073708503040, 18446744073707454464,
+ 18446744073705357312, 18446744073701163008, 18446744073692774400,
+ 18446744073675997184, 18446744073642442752, 18446744073575333888,
+ 18446744073441116160, 18446744073172680704, 18446744072635809792,
+ 18446744071562067968, 18446744069414584320, 18446744065119617024,
+ 18446744056529682432, 18446744039349813248, 18446744004990074880,
+ 18446743936270598144, 18446743798831644672, 18446743523953737728,
+ 18446742974197923840, 18446741874686296064, 18446739675663040512,
+ 18446735277616529408, 18446726481523507200, 18446708889337462784,
+ 18446673704965373952, 18446603336221196288, 18446462598732840960,
+ 18446181123756130304, 18445618173802708992, 18444492273895866368,
+ 18442240474082181120, 18437736874454810624, 18428729675200069632,
+ 18410715276690587648, 18374686479671623680, 18302628885633695744,
+ 18158513697557839872, 17870283321406128128, 17293822569102704640,
+ 16140901064495857664, 13835058055282163712, 9223372036854775808, 0,
+ 18446744073709551612, 18446744073709551608, 18446744073709551600,
+ 18446744073709551584, 18446744073709551552, 18446744073709551488,
+ 18446744073709551360, 18446744073709551104, 18446744073709550592,
+ 18446744073709549568, 18446744073709547520, 18446744073709543424,
+ 18446744073709535232, 18446744073709518848, 18446744073709486080,
+ 18446744073709420544, 18446744073709289472, 18446744073709027328,
+ 18446744073708503040, 18446744073707454464, 18446744073705357312,
+ 18446744073701163008, 18446744073692774400, 18446744073675997184,
+ 18446744073642442752, 18446744073575333888, 18446744073441116160,
+ 18446744073172680704, 18446744072635809792, 18446744071562067968,
+ 18446744069414584320, 18446744065119617024, 18446744056529682432,
+ 18446744039349813248, 18446744004990074880, 18446743936270598144,
+ 18446743798831644672, 18446743523953737728, 18446742974197923840,
+ 18446741874686296064, 18446739675663040512, 18446735277616529408,
+ 18446726481523507200, 18446708889337462784, 18446673704965373952,
+ 18446603336221196288, 18446462598732840960, 18446181123756130304,
+ 18445618173802708992, 18444492273895866368, 18442240474082181120,
+ 18437736874454810624, 18428729675200069632, 18410715276690587648,
+ 18374686479671623680, 18302628885633695744, 18158513697557839872,
+ 17870283321406128128, 17293822569102704640, 16140901064495857664,
+ 13835058055282163712, 9223372036854775808, 0, 0,
+ 18446744073709551608, 18446744073709551600, 18446744073709551584,
+ 18446744073709551552, 18446744073709551488, 18446744073709551360,
+ 18446744073709551104, 18446744073709550592, 18446744073709549568,
+ 18446744073709547520, 18446744073709543424, 18446744073709535232,
+ 18446744073709518848, 18446744073709486080, 18446744073709420544,
+ 18446744073709289472, 18446744073709027328, 18446744073708503040,
+ 18446744073707454464, 18446744073705357312, 18446744073701163008,
+ 18446744073692774400, 18446744073675997184, 18446744073642442752,
+ 18446744073575333888, 18446744073441116160, 18446744073172680704,
+ 18446744072635809792, 18446744071562067968, 18446744069414584320,
+ 18446744065119617024, 18446744056529682432, 18446744039349813248,
+ 18446744004990074880, 18446743936270598144, 18446743798831644672,
+ 18446743523953737728, 18446742974197923840, 18446741874686296064,
+ 18446739675663040512, 18446735277616529408, 18446726481523507200,
+ 18446708889337462784, 18446673704965373952, 18446603336221196288,
+ 18446462598732840960, 18446181123756130304, 18445618173802708992,
+ 18444492273895866368, 18442240474082181120, 18437736874454810624,
+ 18428729675200069632, 18410715276690587648, 18374686479671623680,
+ 18302628885633695744, 18158513697557839872, 17870283321406128128,
+ 17293822569102704640, 16140901064495857664, 13835058055282163712,
+ 9223372036854775808, 0, 0, 0,
+ 18446744073709551600, 18446744073709551584, 18446744073709551552,
+ 18446744073709551488, 18446744073709551360, 18446744073709551104,
+ 18446744073709550592, 18446744073709549568, 18446744073709547520,
+ 18446744073709543424, 18446744073709535232, 18446744073709518848,
+ 18446744073709486080, 18446744073709420544, 18446744073709289472,
+ 18446744073709027328, 18446744073708503040, 18446744073707454464,
+ 18446744073705357312, 18446744073701163008, 18446744073692774400,
+ 18446744073675997184, 18446744073642442752, 18446744073575333888,
+ 18446744073441116160, 18446744073172680704, 18446744072635809792,
+ 18446744071562067968, 18446744069414584320, 18446744065119617024,
+ 18446744056529682432, 18446744039349813248, 18446744004990074880,
+ 18446743936270598144, 18446743798831644672, 18446743523953737728,
+ 18446742974197923840, 18446741874686296064, 18446739675663040512,
+ 18446735277616529408, 18446726481523507200, 18446708889337462784,
+ 18446673704965373952, 18446603336221196288, 18446462598732840960,
+ 18446181123756130304, 18445618173802708992, 18444492273895866368,
+ 18442240474082181120, 18437736874454810624, 18428729675200069632,
+ 18410715276690587648, 18374686479671623680, 18302628885633695744,
+ 18158513697557839872, 17870283321406128128, 17293822569102704640,
+ 16140901064495857664, 13835058055282163712, 9223372036854775808, 0, 0,
+ 0, 0,
+ 18446744073709551584, 18446744073709551552, 18446744073709551488,
+ 18446744073709551360, 18446744073709551104, 18446744073709550592,
+ 18446744073709549568, 18446744073709547520, 18446744073709543424,
+ 18446744073709535232, 18446744073709518848, 18446744073709486080,
+ 18446744073709420544, 18446744073709289472, 18446744073709027328,
+ 18446744073708503040, 18446744073707454464, 18446744073705357312,
+ 18446744073701163008, 18446744073692774400, 18446744073675997184,
+ 18446744073642442752, 18446744073575333888, 18446744073441116160,
+ 18446744073172680704, 18446744072635809792, 18446744071562067968,
+ 18446744069414584320, 18446744065119617024, 18446744056529682432,
+ 18446744039349813248, 18446744004990074880, 18446743936270598144,
+ 18446743798831644672, 18446743523953737728, 18446742974197923840,
+ 18446741874686296064, 18446739675663040512, 18446735277616529408,
+ 18446726481523507200, 18446708889337462784, 18446673704965373952,
+ 18446603336221196288, 18446462598732840960, 18446181123756130304,
+ 18445618173802708992, 18444492273895866368, 18442240474082181120,
+ 18437736874454810624, 18428729675200069632, 18410715276690587648,
+ 18374686479671623680, 18302628885633695744, 18158513697557839872,
+ 17870283321406128128, 17293822569102704640, 16140901064495857664,
+ 13835058055282163712, 9223372036854775808, 0, 0, 0, 0, 0,
+ 18446744073709551552, 18446744073709551488, 18446744073709551360,
+ 18446744073709551104, 18446744073709550592, 18446744073709549568,
+ 18446744073709547520, 18446744073709543424, 18446744073709535232,
+ 18446744073709518848, 18446744073709486080, 18446744073709420544,
+ 18446744073709289472, 18446744073709027328, 18446744073708503040,
+ 18446744073707454464, 18446744073705357312, 18446744073701163008,
+ 18446744073692774400, 18446744073675997184, 18446744073642442752,
+ 18446744073575333888, 18446744073441116160, 18446744073172680704,
+ 18446744072635809792, 18446744071562067968, 18446744069414584320,
+ 18446744065119617024, 18446744056529682432, 18446744039349813248,
+ 18446744004990074880, 18446743936270598144, 18446743798831644672,
+ 18446743523953737728, 18446742974197923840, 18446741874686296064,
+ 18446739675663040512, 18446735277616529408, 18446726481523507200,
+ 18446708889337462784, 18446673704965373952, 18446603336221196288,
+ 18446462598732840960, 18446181123756130304, 18445618173802708992,
+ 18444492273895866368, 18442240474082181120, 18437736874454810624,
+ 18428729675200069632, 18410715276690587648, 18374686479671623680,
+ 18302628885633695744, 18158513697557839872, 17870283321406128128,
+ 17293822569102704640, 16140901064495857664, 13835058055282163712,
+ 9223372036854775808, 0, 0, 0, 0, 0, 0,
+ 18446744073709551488, 18446744073709551360, 18446744073709551104,
+ 18446744073709550592, 18446744073709549568, 18446744073709547520,
+ 18446744073709543424, 18446744073709535232, 18446744073709518848,
+ 18446744073709486080, 18446744073709420544, 18446744073709289472,
+ 18446744073709027328, 18446744073708503040, 18446744073707454464,
+ 18446744073705357312, 18446744073701163008, 18446744073692774400,
+ 18446744073675997184, 18446744073642442752, 18446744073575333888,
+ 18446744073441116160, 18446744073172680704, 18446744072635809792,
+ 18446744071562067968, 18446744069414584320, 18446744065119617024,
+ 18446744056529682432, 18446744039349813248, 18446744004990074880,
+ 18446743936270598144, 18446743798831644672, 18446743523953737728,
+ 18446742974197923840, 18446741874686296064, 18446739675663040512,
+ 18446735277616529408, 18446726481523507200, 18446708889337462784,
+ 18446673704965373952, 18446603336221196288, 18446462598732840960,
+ 18446181123756130304, 18445618173802708992, 18444492273895866368,
+ 18442240474082181120, 18437736874454810624, 18428729675200069632,
+ 18410715276690587648, 18374686479671623680, 18302628885633695744,
+ 18158513697557839872, 17870283321406128128, 17293822569102704640,
+ 16140901064495857664, 13835058055282163712, 9223372036854775808, 0, 0,
+ 0, 0, 0, 0, 0
+ 0, 0.0001, 0.0002, 0.0003, 0.0004, 0.0005, 0.0006, 0.0007,
+ 1, 1.0001, 1.0002, 1.0003, 1.0004, 1.0005, 1.0006, 1.0007,
+ 2, 2.0001, 2.0002, 2.0003, 2.0004, 2.0005, 2.0006, 2.0007,
+ 3, 3.0001, 3.0002, 3.0003, 3.0004, 3.0005, 3.0006, 3.0007,
+ 4, 4.0001, 4.0002, 4.0003, 4.0004, 4.0005, 4.0006, 4.0007,
+ 5, 5.0001, 5.0002, 5.0003, 5.0004, 5.0005, 5.0006, 5.0007,
+ 6, 6.0001, 6.0002, 6.0003, 6.0004, 6.0005, 6.0006, 6.0007,
+ 7, 7.0001, 7.0002, 7.0003, 7.0004, 7.0005, 7.0006, 7.0007 \ No newline at end of file