diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 00000000000..99d680b0ab4 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,2 @@ +blank_issues_enabled: false + diff --git a/HDF5Examples/config/cmake/runExecute.cmake b/HDF5Examples/config/cmake/runExecute.cmake index b78e0152363..406ed251291 100644 --- a/HDF5Examples/config/cmake/runExecute.cmake +++ b/HDF5Examples/config/cmake/runExecute.cmake @@ -42,7 +42,6 @@ macro (STREAM_STRINGS stream strings_out) string(REPLACE ";" "\;" ${strings_out} "${${strings_out}}") # break the string into lines at newlines string(REPLACE "\n" ";" ${strings_out} "${${strings_out}}") - message(STATUS "After macro replace, read_out = ${${strings_out}}") # Remove last entry list(POP_BACK ${strings_out}) endmacro() diff --git a/config/cmake/HDFLibMacros.cmake b/config/cmake/HDFLibMacros.cmake index 452dbfe8a87..e187a88f738 100644 --- a/config/cmake/HDFLibMacros.cmake +++ b/config/cmake/HDFLibMacros.cmake @@ -43,7 +43,9 @@ macro (EXTERNAL_ZLIB_LIBRARY compress_type) FetchContent_MakeAvailable(HDF5_ZLIB) - add_library(${HDF_PACKAGE_NAMESPACE}zlib-static ALIAS zlib-static) + if (HDF_PACKAGE_NAMESPACE) + add_library(${HDF_PACKAGE_NAMESPACE}zlib-static ALIAS zlib-static) + endif () set (H5_ZLIB_STATIC_LIBRARY "${HDF_PACKAGE_NAMESPACE}zlib-static") set (H5_ZLIB_LIBRARIES ${H5_ZLIB_STATIC_LIBRARY}) if (HDF5_USE_ZLIB_NG) @@ -85,8 +87,10 @@ macro (EXTERNAL_SZIP_LIBRARY compress_type encoding) endif () FetchContent_MakeAvailable(SZIP) - add_library (${HDF_PACKAGE_NAMESPACE}szaec-static ALIAS szaec-static) - add_library (${HDF_PACKAGE_NAMESPACE}aec-static ALIAS aec-static) + if (HDF_PACKAGE_NAMESPACE) + add_library (${HDF_PACKAGE_NAMESPACE}szaec-static ALIAS szaec-static) + add_library (${HDF_PACKAGE_NAMESPACE}aec-static ALIAS aec-static) + endif () set (H5_SZIP_STATIC_LIBRARY "${HDF_PACKAGE_NAMESPACE}szaec-static;${HDF_PACKAGE_NAMESPACE}aec-static") set (H5_SZIP_LIBRARIES ${H5_SZIP_STATIC_LIBRARY}) diff --git a/config/cmake/runExecute.cmake b/config/cmake/runExecute.cmake index cb9d2aeb30f..4c4f0ea7669 100644 --- a/config/cmake/runExecute.cmake +++ b/config/cmake/runExecute.cmake @@ -42,7 +42,6 @@ macro (STREAM_STRINGS stream strings_out) string(REPLACE ";" "\;" ${strings_out} "${${strings_out}}") # break the string into lines at newlines string(REPLACE "\n" ";" ${strings_out} "${${strings_out}}") - message(STATUS "After macro replace, read_out = ${${strings_out}}") # Remove last entry list(POP_BACK ${strings_out}) endmacro() diff --git a/config/examples/HDF5AsSubdirMacros.cmake b/config/examples/HDF5AsSubdirMacros.cmake index 8738a9d2ea3..234a2860643 100644 --- a/config/examples/HDF5AsSubdirMacros.cmake +++ b/config/examples/HDF5AsSubdirMacros.cmake @@ -60,7 +60,9 @@ macro (EXTERNAL_HDF5_LIBRARY compress_type) add_subdirectory(${hdf5lib_SOURCE_DIR} ${hdf5lib_BINARY_DIR}) endif() - add_library(${HDF_PACKAGE_NAMESPACE}hdf5lib-static ALIAS hdf5-static) + if (HDF_PACKAGE_NAMESPACE) + add_library(${HDF_PACKAGE_NAMESPACE}hdf5lib-static ALIAS hdf5-static) + endif() set (H5LIB_STATIC_LIBRARY "${HDF_PACKAGE_NAMESPACE}hdf5lib-static") set (H5LIB_LIBRARIES ${H5LIB_STATIC_LIBRARY}) set (H5LIB_TOOLS ${hdf5lib_BINARY_DIR}/bin}) diff --git a/java/test/CMakeLists.txt b/java/test/CMakeLists.txt index 93b39bc7495..b9d5d8ce268 100644 --- a/java/test/CMakeLists.txt +++ b/java/test/CMakeLists.txt @@ -104,12 +104,12 @@ HDFTEST_COPY_FILE("${PROJECT_SOURCE_DIR}/h5ex_g_iterate.orig" "${PROJECT_BINARY_ HDFTEST_COPY_FILE("${PROJECT_SOURCE_DIR}/h5ex_g_iterate.orig" "${PROJECT_BINARY_DIR}/h5ex_g_iterateL2.hdf" "${HDF5_JAVA_TEST_LIB_TARGET}_files") HDFTEST_COPY_FILE("${PROJECT_SOURCE_DIR}/h5ex_g_iterate.orig" "${PROJECT_BINARY_DIR}/h5ex_g_iterateO1.hdf" "${HDF5_JAVA_TEST_LIB_TARGET}_files") HDFTEST_COPY_FILE("${PROJECT_SOURCE_DIR}/h5ex_g_iterate.orig" "${PROJECT_BINARY_DIR}/h5ex_g_iterateO2.hdf" "${HDF5_JAVA_TEST_LIB_TARGET}_files") -HDFTEST_COPY_FILE("${HDF5_TOOLS_TST_DIR}/h5dump/testfiles/trefer_reg.h5" "${PROJECT_BINARY_DIR}/trefer_reg.h5" "${HDF5_JAVA_TEST_LIB_TARGET}_files") -HDFTEST_COPY_FILE("${HDF5_TOOLS_TST_DIR}/h5dump/testfiles/trefer_attr.h5" "${PROJECT_BINARY_DIR}/trefer_attr.h5" "${HDF5_JAVA_TEST_LIB_TARGET}_files") -HDFTEST_COPY_FILE("${HDF5_TOOLS_TST_DIR}/h5dump/testfiles/tdatareg.h5" "${PROJECT_BINARY_DIR}/tdatareg.h5" "${HDF5_JAVA_TEST_LIB_TARGET}_files") -HDFTEST_COPY_FILE("${HDF5_TOOLS_TST_DIR}/h5dump/testfiles/tattrreg.h5" "${PROJECT_BINARY_DIR}/tattrreg.h5" "${HDF5_JAVA_TEST_LIB_TARGET}_files") -HDFTEST_COPY_FILE("${HDF5_TOOLS_TST_DIR}/h5dump/testfiles/tintsattrs.h5" "${PROJECT_BINARY_DIR}/tintsattrs.h5" "${HDF5_JAVA_TEST_LIB_TARGET}_files") -HDFTEST_COPY_FILE("${HDF5_TOOLS_TST_DIR}/h5dump/testfiles/tfloatsattrs.h5" "${PROJECT_BINARY_DIR}/tfloatsattrs.h5" "${HDF5_JAVA_TEST_LIB_TARGET}_files") +HDFTEST_COPY_FILE("${HDF5_TOOLS_TST_DIR}/testfiles/trefer_reg.h5" "${PROJECT_BINARY_DIR}/trefer_reg.h5" "${HDF5_JAVA_TEST_LIB_TARGET}_files") +HDFTEST_COPY_FILE("${HDF5_TOOLS_TST_DIR}/testfiles/trefer_attr.h5" "${PROJECT_BINARY_DIR}/trefer_attr.h5" "${HDF5_JAVA_TEST_LIB_TARGET}_files") +HDFTEST_COPY_FILE("${HDF5_TOOLS_TST_DIR}/testfiles/tdatareg.h5" "${PROJECT_BINARY_DIR}/tdatareg.h5" "${HDF5_JAVA_TEST_LIB_TARGET}_files") +HDFTEST_COPY_FILE("${HDF5_TOOLS_TST_DIR}/testfiles/tattrreg.h5" "${PROJECT_BINARY_DIR}/tattrreg.h5" "${HDF5_JAVA_TEST_LIB_TARGET}_files") +HDFTEST_COPY_FILE("${HDF5_TOOLS_TST_DIR}/testfiles/tintsattrs.h5" "${PROJECT_BINARY_DIR}/tintsattrs.h5" "${HDF5_JAVA_TEST_LIB_TARGET}_files") +HDFTEST_COPY_FILE("${HDF5_TOOLS_TST_DIR}/testfiles/tfloatsattrs.h5" "${PROJECT_BINARY_DIR}/tfloatsattrs.h5" "${HDF5_JAVA_TEST_LIB_TARGET}_files") add_custom_target(${HDF5_JAVA_TEST_LIB_TARGET}_files ALL COMMENT "Copying files needed by ${HDF5_JAVA_TEST_LIB_TARGET} tests" DEPENDS ${${HDF5_JAVA_TEST_LIB_TARGET}_files_list}) diff --git a/tools/test/CMakeLists.txt b/tools/test/CMakeLists.txt index 8f265cc821a..43d488e503e 100644 --- a/tools/test/CMakeLists.txt +++ b/tools/test/CMakeLists.txt @@ -9,6 +9,7 @@ set (HDF5_TOOLS h5jam h5repack h5stat + h5ls ) set (HDF5_TOOLS_MISC @@ -40,10 +41,10 @@ if (HDF5_BUILD_GENERATORS) foreach(tool ${HDF5_TOOLS};${HDF5_TOOLS_MISC}) if (${tool} IN_LIST HDF5_TOOLS_MISC) add_library(${tool}gentest OBJECT ${HDF5_TOOLS_TEST_SOURCE_DIR}/misc/${tool}gentest.c) - target_include_directories (${tool}gentest PRIVATE "${HDF5_SRC_INCLUDE_DIRS};${HDF5_TEST_SRC_DIR};${HDF5_TOOLS_TST_DIR};${HDF5_TOOLS_ROOT_DIR}/misc;${HDF5_TOOLS_ROOT_DIR}/lib;${HDF5_SRC_BINARY_DIR};$<$:${MPI_C_INCLUDE_DIRS}>") + target_include_directories (${tool}gentest PRIVATE "${HDF5_SRC_INCLUDE_DIRS};${HDF5_TEST_SRC_DIR};${HDF5_TOOLS_TST_DIR};${HDF5_TOOLS_ROOT_DIR}/misc;${HDF5_TOOLS_ROOT_DIR}/lib;${HDF5_SRC_BINARY_DIR};$<$:${MPI_C_INCLUDE_DIRS}>") else() add_library(${tool}gentest OBJECT ${HDF5_TOOLS_TEST_SOURCE_DIR}/${tool}/${tool}gentest.c) - target_include_directories (${tool}gentest PRIVATE "${HDF5_SRC_INCLUDE_DIRS};${HDF5_TEST_SRC_DIR};${HDF5_TOOLS_TST_DIR};${HDF5_TOOLS_ROOT_DIR}/lib;${HDF5_SRC_BINARY_DIR};$<$:${MPI_C_INCLUDE_DIRS}>") + target_include_directories (${tool}gentest PRIVATE "${HDF5_SRC_INCLUDE_DIRS};${HDF5_TEST_SRC_DIR};${HDF5_TOOLS_TST_DIR};${HDF5_TOOLS_ROOT_DIR}/lib;${HDF5_SRC_BINARY_DIR};$<$:${MPI_C_INCLUDE_DIRS}>") endif() if (HDF5_BUILD_STATIC_TOOLS) diff --git a/tools/test/h5copy/CMakeTests.cmake b/tools/test/h5copy/CMakeTests.cmake index cb8662b447e..d941bb5e958 100644 --- a/tools/test/h5copy/CMakeTests.cmake +++ b/tools/test/h5copy/CMakeTests.cmake @@ -20,12 +20,12 @@ # Copy all the HDF5 files from the source directory into the test directory # -------------------------------------------------------------------- set (LIST_HDF5_TEST_FILES - h5copy_extlinks_src.h5 - h5copy_extlinks_trg.h5 - h5copy_ref.h5 - h5copytst.h5 - tudfilter.h5 - tudfilter2.h5 + h5copy_extlinks_src.h5 + h5copy_extlinks_trg.h5 + h5copy_ref.h5 + h5copytst.h5 + tudfilter.h5 + tudfilter2.h5 ) set (LIST_OTHER_TEST_FILES @@ -40,14 +40,15 @@ file (MAKE_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles") + foreach (listfiles ${LIST_HDF5_TEST_FILES}) - HDFTEST_COPY_FILE("${PROJECT_SOURCE_DIR}/testfiles/${listfiles}" "${PROJECT_BINARY_DIR}/testfiles/${listfiles}" "h5copy_files") + HDFTEST_COPY_FILE("${HDF5_TOOLS_TST_DIR}/testfiles/${listfiles}" "${PROJECT_BINARY_DIR}/testfiles/${listfiles}" "h5copy_files") endforeach () foreach (listothers ${LIST_OTHER_TEST_FILES}) HDFTEST_COPY_FILE("${PROJECT_SOURCE_DIR}/expected/${listothers}" "${PROJECT_BINARY_DIR}/testfiles/${listothers}" "h5copy_files") endforeach () - add_custom_target(h5copy_files ALL COMMENT "Copying files needed by h5copy tests" DEPENDS ${h5copy_files_list}) + add_custom_target(h5copy_files ALL COMMENT "Copying files needed by h5copy tests" DEPENDS ${h5copy_files_list}) ############################################################################## ############################################################################## diff --git a/tools/test/h5diff/CMakeTests.cmake b/tools/test/h5diff/CMakeTests.cmake index 61adeb92a1b..3e73489edb2 100644 --- a/tools/test/h5diff/CMakeTests.cmake +++ b/tools/test/h5diff/CMakeTests.cmake @@ -336,21 +336,21 @@ # copy test files from source to build dir # foreach (h5_tstfiles ${LIST_DIFF_TEST_FILES}) - HDFTEST_COPY_FILE("${PROJECT_SOURCE_DIR}/testfiles/${h5_tstfiles}" "${PROJECT_BINARY_DIR}/testfiles/${h5_tstfiles}" "h5diff_files") + HDFTEST_COPY_FILE("${HDF5_TOOLS_TST_DIR}/testfiles/${h5_tstfiles}" "${PROJECT_BINARY_DIR}/testfiles/${h5_tstfiles}" "h5diff_files") if (H5_HAVE_PARALLEL) - HDFTEST_COPY_FILE("${PROJECT_SOURCE_DIR}/testfiles/${h5_tstfiles}" "${PROJECT_BINARY_DIR}/PAR/testfiles/${h5_tstfiles}" "h5diff_files") + HDFTEST_COPY_FILE("${HDF5_TOOLS_TST_DIR}/testfiles/${h5_tstfiles}" "${PROJECT_BINARY_DIR}/PAR/testfiles/${h5_tstfiles}" "h5diff_files") endif () endforeach () foreach (h5_tstfiles ${LIST_VDS_TEST_FILES}) - HDFTEST_COPY_FILE("${HDF5_TOOLS_TST_DIR}/h5dump/testfiles/vds/${h5_tstfiles}" "${PROJECT_BINARY_DIR}/testfiles/${h5_tstfiles}" "h5diff_files") + HDFTEST_COPY_FILE("${HDF5_TOOLS_TST_DIR}/testfiles/vds/${h5_tstfiles}" "${PROJECT_BINARY_DIR}/testfiles/${h5_tstfiles}" "h5diff_files") if (H5_HAVE_PARALLEL) - HDFTEST_COPY_FILE("${HDF5_TOOLS_TST_DIR}/h5dump/testfiles/vds/${h5_tstfiles}" "${PROJECT_BINARY_DIR}/PAR/testfiles/${h5_tstfiles}" "h5diff_files") + HDFTEST_COPY_FILE("${HDF5_TOOLS_TST_DIR}/testfiles/vds/${h5_tstfiles}" "${PROJECT_BINARY_DIR}/PAR/testfiles/${h5_tstfiles}" "h5diff_files") endif () endforeach () foreach (h5_tstfiles ${LIST_HDF5_TEST_FILES}) - HDFTEST_COPY_FILE("${HDF5_TOOLS_TST_DIR}/h5dump/testfiles/${h5_tstfiles}" "${PROJECT_BINARY_DIR}/testfiles/${h5_tstfiles}" "h5diff_files") + HDFTEST_COPY_FILE("${HDF5_TOOLS_TST_DIR}/testfiles/${h5_tstfiles}" "${PROJECT_BINARY_DIR}/testfiles/${h5_tstfiles}" "h5diff_files") if (H5_HAVE_PARALLEL) - HDFTEST_COPY_FILE("${HDF5_TOOLS_TST_DIR}/h5dump/testfiles/${h5_tstfiles}" "${PROJECT_BINARY_DIR}/PAR/testfiles/${h5_tstfiles}" "h5diff_files") + HDFTEST_COPY_FILE("${HDF5_TOOLS_TST_DIR}/testfiles/${h5_tstfiles}" "${PROJECT_BINARY_DIR}/PAR/testfiles/${h5_tstfiles}" "h5diff_files") endif () endforeach () foreach (h5_tstfiles ${LIST_OTHER_TEST_FILES}) @@ -360,9 +360,9 @@ endif () endforeach () # copy second version of tvlstr.h5 - HDFTEST_COPY_FILE("${HDF5_TOOLS_TST_DIR}/h5dump/testfiles/tvlstr.h5" "${PROJECT_BINARY_DIR}/testfiles/tvlstr2.h5" "h5diff_files") + HDFTEST_COPY_FILE("${HDF5_TOOLS_TST_DIR}/testfiles/tvlstr.h5" "${PROJECT_BINARY_DIR}/testfiles/tvlstr2.h5" "h5diff_files") if (H5_HAVE_PARALLEL) - HDFTEST_COPY_FILE("${HDF5_TOOLS_TST_DIR}/h5dump/testfiles/tvlstr.h5" "${PROJECT_BINARY_DIR}/PAR/testfiles/tvlstr2.h5" "h5diff_files") + HDFTEST_COPY_FILE("${HDF5_TOOLS_TST_DIR}/testfiles/tvlstr.h5" "${PROJECT_BINARY_DIR}/PAR/testfiles/tvlstr2.h5" "h5diff_files") endif () @@ -760,7 +760,7 @@ ADD_H5_TEST (h5diff_51 1 -v ${FILE4} ${FILE4} dset1a dset1b) ADD_H5_TEST (h5diff_52 1 -v ${FILE4} ${FILE4} dset2a dset2b) # 5.3 -ADD_H5_TEST (h5diff_53 1 -v ${FILE4} ${FILE4} dset3a dset4b) +ADD_H5_TEST (h5diff_53 1 -v ${FILE4} ${FILE4} dset3a dset3b) # 5.4 ADD_H5_TEST (h5diff_54 1 -v ${FILE4} ${FILE4} dset4a dset4b) diff --git a/tools/test/h5diff/expected/h5diff_53.txt b/tools/test/h5diff/expected/h5diff_53.txt index 554d71ab015..555647af8a8 100644 --- a/tools/test/h5diff/expected/h5diff_53.txt +++ b/tools/test/h5diff/expected/h5diff_53.txt @@ -1,6 +1,6 @@ -dataset: and +dataset: and size: [3x2] [3x2] -position dset3a dset4b difference +position dset3a dset3b difference ------------------------------------------------------------ [ 1 0 ] 1 3 2 [ 1 1 ] 1 4 3 diff --git a/tools/test/h5diff/expected/h5diff_540.txt b/tools/test/h5diff/expected/h5diff_540.txt index bd77944bbdd..c48458dff6e 100644 --- a/tools/test/h5diff/expected/h5diff_540.txt +++ b/tools/test/h5diff/expected/h5diff_540.txt @@ -22,6 +22,54 @@ position attr1 of attr1 of difference [ 1 ] 10 15 5 [ 1 ] 10.5 15.5 5 8 differences found +attribute: > and > +size: [2] [2] +position attr2 of attr2 of difference +------------------------------------------------------------ +[ 0 ] 0 5 5 +[ 0 ] 0 5 5 +[ 1 ] 10 15 5 +[ 1 ] 10.5 15.5 5 +[ 1 ] 10 15 5 +[ 1 ] 10.5 15.5 5 +6 differences found +attribute: > and > +size: [2] [2] +position attr3 of attr3 of difference +------------------------------------------------------------ +[ 0 ] 0 5 5 +[ 0 ] 0 5 5 +[ 0 ] 10 15 5 +[ 0 ] 10.5 15.5 5 +[ 0 ] 10 15 5 +[ 0 ] 10.5 15.5 5 +[ 1 ] 0 5 5 +[ 1 ] 0 5 5 +[ 1 ] 10 15 5 +[ 1 ] 10.5 15.5 5 +[ 1 ] 10 15 5 +[ 1 ] 10.5 15.5 5 +12 differences found +attribute: > and > +size: [2] [2] +position attr4 of attr4 of difference +------------------------------------------------------------ +[ 0 ] 0 5 5 +[ 0 ] 0 5 5 +[ 0 ] 0 5 5 +[ 0 ] 10 15 5 +[ 0 ] 10.5 15.5 5 +[ 1 ] 10 15 5 +[ 1 ] 0 5 5 +[ 1 ] 0 5 5 +[ 1 ] 10 15 5 +[ 1 ] 10.5 15.5 5 +[ 1 ] 10 15 5 +[ 1 ] 0 5 5 +[ 1 ] 0 5 5 +[ 1 ] 10 15 5 +[ 1 ] 10.5 15.5 5 +15 differences found dataset: and size: [2] [2] position dset1 dset1 difference diff --git a/tools/test/h5diff/h5diffgentest.c b/tools/test/h5diff/h5diffgentest.c index db39b5d56ea..600e0bceef4 100644 --- a/tools/test/h5diff/h5diffgentest.c +++ b/tools/test/h5diff/h5diffgentest.c @@ -8560,7 +8560,7 @@ test_double_epsilon(const char *fname1, const char *fname2) wdata[i][j] = 0.0; /* dataset */ - if (write_dset(fid1, 2, dims1, "dataset", H5T_IEEE_F64LE, wdata) < 0) + if (write_dset(fid1, 2, dims1, "DS1", H5T_IEEE_F64LE, wdata) < 0) PROGRAM_ERROR; /* @@ -8571,7 +8571,7 @@ test_double_epsilon(const char *fname1, const char *fname2) wdata[i][j] = (double)1.e-19; /* dataset */ - if (write_dset(fid2, 2, dims1, "dataset", H5T_IEEE_F64LE, wdata) < 0) + if (write_dset(fid2, 2, dims1, "DS1", H5T_IEEE_F64LE, wdata) < 0) PROGRAM_ERROR; error: diff --git a/tools/test/h5diff/testfiles/tudfilter.h5 b/tools/test/h5diff/testfiles/tudfilter.h5 deleted file mode 100644 index 081b0004878..00000000000 Binary files a/tools/test/h5diff/testfiles/tudfilter.h5 and /dev/null differ diff --git a/tools/test/h5diff/testfiles/tudfilter2.h5 b/tools/test/h5diff/testfiles/tudfilter2.h5 deleted file mode 100644 index 081b0004878..00000000000 Binary files a/tools/test/h5diff/testfiles/tudfilter2.h5 and /dev/null differ diff --git a/tools/test/h5dump/CMakeTests.cmake b/tools/test/h5dump/CMakeTests.cmake index 559331c3e73..822c9fffd6a 100644 --- a/tools/test/h5dump/CMakeTests.cmake +++ b/tools/test/h5dump/CMakeTests.cmake @@ -384,7 +384,7 @@ # copy test files from source dir to test dir # foreach (tst_h5_file ${HDF5_REFERENCE_TEST_FILES}) - HDFTEST_COPY_FILE("${PROJECT_SOURCE_DIR}/testfiles/${tst_h5_file}" "${PROJECT_BINARY_DIR}/testfiles/std/${tst_h5_file}" "h5dump_std_files") + HDFTEST_COPY_FILE("${HDF5_TOOLS_TST_DIR}/testfiles/${tst_h5_file}" "${PROJECT_BINARY_DIR}/testfiles/std/${tst_h5_file}" "h5dump_std_files") endforeach () foreach (tst_exp_file ${HDF5_REFERENCE_EXP_FILES}) diff --git a/tools/test/h5dump/CMakeTestsPBITS.cmake b/tools/test/h5dump/CMakeTestsPBITS.cmake index 2b09d0fd920..55595bbeb7e 100644 --- a/tools/test/h5dump/CMakeTestsPBITS.cmake +++ b/tools/test/h5dump/CMakeTestsPBITS.cmake @@ -82,7 +82,7 @@ ) foreach (pbits_h5_file ${HDF5_REFERENCE_TEST_PBITS}) - HDFTEST_COPY_FILE("${PROJECT_SOURCE_DIR}/testfiles/${pbits_h5_file}" "${PROJECT_BINARY_DIR}/testfiles/pbits/${pbits_h5_file}" "h5dump_pbits_files") + HDFTEST_COPY_FILE("${HDF5_TOOLS_TST_DIR}/testfiles/${pbits_h5_file}" "${PROJECT_BINARY_DIR}/testfiles/pbits/${pbits_h5_file}" "h5dump_pbits_files") endforeach () foreach (ddl_pbits ${HDF5_REFERENCE_PBITS}) diff --git a/tools/test/h5dump/CMakeTestsVDS.cmake b/tools/test/h5dump/CMakeTestsVDS.cmake index 6d5c4b2ced5..cb316d04305 100644 --- a/tools/test/h5dump/CMakeTestsVDS.cmake +++ b/tools/test/h5dump/CMakeTestsVDS.cmake @@ -82,11 +82,11 @@ ) foreach (vds_h5_file ${HDF5_REFERENCE_TEST_VDS}) - HDFTEST_COPY_FILE("${PROJECT_SOURCE_DIR}/testfiles/vds/${vds_h5_file}" "${PROJECT_BINARY_DIR}/testfiles/vds/${vds_h5_file}" "h5dump_vds_files") + HDFTEST_COPY_FILE("${HDF5_TOOLS_TST_DIR}/testfiles/vds/${vds_h5_file}" "${PROJECT_BINARY_DIR}/testfiles/vds/${vds_h5_file}" "h5dump_vds_files") endforeach () foreach (vds_h5_file ${HDF5_REFERENCE_PREFIX_VDS}) - HDFTEST_COPY_FILE("${PROJECT_SOURCE_DIR}/testfiles/vds/${vds_h5_file}" "${PROJECT_BINARY_DIR}/testfiles/vds/prefix/${vds_h5_file}" "h5dump_vds_files") + HDFTEST_COPY_FILE("${HDF5_TOOLS_TST_DIR}/testfiles/vds/${vds_h5_file}" "${PROJECT_BINARY_DIR}/testfiles/vds/prefix/${vds_h5_file}" "h5dump_vds_files") endforeach () foreach (ddl_vds ${HDF5_REFERENCE_VDS}) diff --git a/tools/test/h5dump/CMakeTestsXML.cmake b/tools/test/h5dump/CMakeTestsXML.cmake index 97b30582680..2e38f949664 100644 --- a/tools/test/h5dump/CMakeTestsXML.cmake +++ b/tools/test/h5dump/CMakeTestsXML.cmake @@ -151,11 +151,11 @@ ) foreach (tst_xml_h5_file ${HDF5_XML_REFERENCE_TEST_FILES}) - HDFTEST_COPY_FILE("${PROJECT_SOURCE_DIR}/testfiles/${tst_xml_h5_file}" "${PROJECT_BINARY_DIR}/testfiles/xml/${tst_xml_h5_file}" "h5dump_xml_files") + HDFTEST_COPY_FILE("${HDF5_TOOLS_TST_DIR}/testfiles/${tst_xml_h5_file}" "${PROJECT_BINARY_DIR}/testfiles/xml/${tst_xml_h5_file}" "h5dump_xml_files") endforeach () foreach (tst_xmlonly_h5_file ${HDF5_XML_REFERENCE_ONLY_FILES}) - HDFTEST_COPY_FILE("${PROJECT_SOURCE_DIR}/testfiles/xml/${tst_xmlonly_h5_file}" "${PROJECT_BINARY_DIR}/testfiles/xml/${tst_xmlonly_h5_file}" "h5dump_xml_files") + HDFTEST_COPY_FILE("${HDF5_TOOLS_TST_DIR}/testfiles/xml/${tst_xmlonly_h5_file}" "${PROJECT_BINARY_DIR}/testfiles/xml/${tst_xmlonly_h5_file}" "h5dump_xml_files") endforeach () foreach (tst_xml_other_file ${HDF5_XML_REFERENCE_FILES}) diff --git a/tools/test/h5dump/h5dumpgentest.c b/tools/test/h5dump/h5dumpgentest.c index a52c611a515..f0be42e6f7b 100644 --- a/tools/test/h5dump/h5dumpgentest.c +++ b/tools/test/h5dump/h5dumpgentest.c @@ -118,6 +118,17 @@ #define FILE95 "tcomplex.h5" #define FILE96 "tcomplex_be.h5" #endif +#define FILE97 "trefer_attr.h5" +#define FILE98 "tattr4_be.h5" +#define FILE99 "tno-subset.h5" +#define F99_DSET "AHFINDERDIRECT::ah_centroid_t[0] it=0 tl=0" +#define FILE100 "trefer_compat.h5" +#define FILE101 "trefer_grp.h5" +#define FILE102 "trefer_obj_del.h5" +#define FILE103 "trefer_obj.h5" +#define FILE104 "trefer_param.h5" +#define FILE105 "trefer_reg.h5" +#define FILE106 "trefer_reg_1d.h5" #define ONION_TEST_FIXNAME_SIZE 1024 #define ONION_TEST_PAGE_SIZE (uint32_t)32 @@ -745,7 +756,7 @@ gent_softlink2(void) * dset1 */ /* Create a new dataset as sample object */ - dset1 = H5Dcreate2(fileid1, "/dset1", H5T_NATIVE_INT, dataspace, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); + dset1 = H5Dcreate2(fileid1, "/dset1", H5T_STD_I32BE, dataspace, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); if (dset1 < 0) { fprintf(stderr, "Error: %s> H5Dcreate2 failed.\n", FILE4_1); status = FAIL; @@ -2554,8 +2565,8 @@ gent_nestcomp(void) s2_tid = H5Tcreate(H5T_COMPOUND, sizeof(s2_t)); H5Tinsert(s2_tid, "a_name", HOFFSET(s2_t, a), H5T_NATIVE_INT); - H5Tinsert(s2_tid, "c_name", HOFFSET(s2_t, c), H5T_NATIVE_DOUBLE); H5Tinsert(s2_tid, "b_name", HOFFSET(s2_t, b), H5T_NATIVE_FLOAT); + H5Tinsert(s2_tid, "c_name", HOFFSET(s2_t, c), H5T_NATIVE_DOUBLE); /* Insert compound member created above */ H5Tinsert(s2_tid, "d_name", HOFFSET(s2_t, d), cmp_tid); @@ -5088,7 +5099,7 @@ gent_compound_complex(void) { /* Structure and array for compound types */ typedef struct Array1Struct { - int a; + int32_t a; const char *b[F41_DIMb]; char c[F41_ARRAY_DIMc]; short d[F41_ARRAY_DIMd1][F41_ARRAY_DIMd2]; @@ -5108,10 +5119,13 @@ gent_compound_complex(void) char chararray[F41_ARRAY_DIMc] = {'H', 'e', 'l', 'l', 'o', '!'}; hid_t Array1Structid; /* File datatype identifier */ + hid_t Array1Structid_native; /* Datatype identifier for memory buffer */ hid_t array_tid; /* Array datatype handle */ hid_t array1_tid; /* Array datatype handle */ hid_t array2_tid; /* Array datatype handle */ hid_t array4_tid; /* Array datatype handle */ + hid_t array2_tid_native; /* Array datatype handle */ + hid_t array4_tid_native; /* Array datatype handle */ hid_t datafile, dataset; /* Datafile/dataset handles */ hid_t dataspace; /* Dataspace handle */ herr_t H5_ATTR_NDEBUG_UNUSED status; /* Error checking variable */ @@ -5173,12 +5187,12 @@ gent_compound_complex(void) status = H5Tset_size(array1_tid, F41_ARRAY_DIMc); assert(status >= 0); - /* Create the array data type for the character array */ - array2_tid = H5Tarray_create2(H5T_NATIVE_SHORT, F41_ARRAY_RANKd, array_dimd); + /* Create the array data type for the short array */ + array2_tid = H5Tarray_create2(H5T_STD_I16BE, F41_ARRAY_RANKd, array_dimd); assert(array2_tid >= 0); - /* Create the array data type for the character array */ - array4_tid = H5Tarray_create2(H5T_NATIVE_DOUBLE, F41_ARRAY_RANK, array_dimf); + /* Create the array data type for the double array */ + array4_tid = H5Tarray_create2(H5T_IEEE_F64BE, F41_ARRAY_RANK, array_dimf); assert(array4_tid >= 0); /* Create the memory data type */ @@ -5186,7 +5200,7 @@ gent_compound_complex(void) assert(Array1Structid >= 0); /* Insert the arrays and variables into the structure */ - status = H5Tinsert(Array1Structid, "a_name", HOFFSET(Array1Struct, a), H5T_NATIVE_INT); + status = H5Tinsert(Array1Structid, "a_name", HOFFSET(Array1Struct, a), H5T_STD_I32BE); assert(status >= 0); status = H5Tinsert(Array1Structid, "b_name", HOFFSET(Array1Struct, b), str_array_id); @@ -5198,7 +5212,7 @@ gent_compound_complex(void) status = H5Tinsert(Array1Structid, "d_name", HOFFSET(Array1Struct, d), array2_tid); assert(status >= 0); - status = H5Tinsert(Array1Structid, "e_name", HOFFSET(Array1Struct, e), H5T_NATIVE_FLOAT); + status = H5Tinsert(Array1Structid, "e_name", HOFFSET(Array1Struct, e), H5T_IEEE_F32BE); assert(status >= 0); status = H5Tinsert(Array1Structid, "f_name", HOFFSET(Array1Struct, f), array4_tid); @@ -5207,18 +5221,52 @@ gent_compound_complex(void) status = H5Tinsert(Array1Structid, "g_name", HOFFSET(Array1Struct, g), H5T_NATIVE_CHAR); assert(status >= 0); + /* Create the native datatype for writing */ + array2_tid_native = H5Tarray_create2(H5T_NATIVE_SHORT, F41_ARRAY_RANKd, array_dimd); + assert(array2_tid >= 0); + + array4_tid_native = H5Tarray_create2(H5T_NATIVE_DOUBLE, F41_ARRAY_RANK, array_dimf); + assert(array4_tid >= 0); + + Array1Structid_native = H5Tcreate(H5T_COMPOUND, sizeof(Array1Struct)); + assert(Array1Structid_native >= 0); + + status = H5Tinsert(Array1Structid_native, "a_name", HOFFSET(Array1Struct, a), H5T_NATIVE_INT32); + assert(status >= 0); + + status = H5Tinsert(Array1Structid_native, "b_name", HOFFSET(Array1Struct, b), str_array_id); + assert(status >= 0); + + status = H5Tinsert(Array1Structid_native, "c_name", HOFFSET(Array1Struct, c), array1_tid); + assert(status >= 0); + + status = H5Tinsert(Array1Structid_native, "d_name", HOFFSET(Array1Struct, d), array2_tid_native); + assert(status >= 0); + + status = H5Tinsert(Array1Structid_native, "e_name", HOFFSET(Array1Struct, e), H5T_NATIVE_FLOAT); + assert(status >= 0); + + status = H5Tinsert(Array1Structid_native, "f_name", HOFFSET(Array1Struct, f), array4_tid_native); + assert(status >= 0); + + status = H5Tinsert(Array1Structid_native, "g_name", HOFFSET(Array1Struct, g), H5T_NATIVE_CHAR); + assert(status >= 0); + /* Create the dataset */ dataset = H5Dcreate2(datafile, F41_DATASETNAME, Array1Structid, dataspace, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); /* Write data to the dataset */ - status = H5Dwrite(dataset, Array1Structid, H5S_ALL, H5S_ALL, H5P_DEFAULT, Array1); + status = H5Dwrite(dataset, Array1Structid_native, H5S_ALL, H5S_ALL, H5P_DEFAULT, Array1); assert(status >= 0); /* Release resources */ status = H5Tclose(Array1Structid); assert(status >= 0); + status = H5Tclose(Array1Structid_native); + assert(status >= 0); + status = H5Tclose(array_tid); assert(status >= 0); @@ -5228,9 +5276,15 @@ gent_compound_complex(void) status = H5Tclose(array2_tid); assert(status >= 0); + status = H5Tclose(array2_tid_native); + assert(status >= 0); + status = H5Tclose(array4_tid); assert(status >= 0); + status = H5Tclose(array4_tid_native); + assert(status >= 0); + status = H5Tclose(str_array_id); assert(status >= 0); @@ -5883,7 +5937,7 @@ gent_fcontents(void) fid = H5Fcreate(FILE46, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT); assert(fid >= 0); - write_dset(fid, 1, dims, "dset", H5T_NATIVE_INT, buf); + write_dset(fid, 1, dims, "dset", H5T_STD_I32BE, buf); /*------------------------------------------------------------------------- * links @@ -6317,42 +6371,53 @@ gent_aindices(void) void gent_longlinks(void) { - hid_t fid = (-1); /* File ID */ - hid_t gid = (-1); /* Group ID */ - hid_t H5_ATTR_NDEBUG_UNUSED gid2 = (-1); /* Datatype ID */ - char *objname = NULL; /* Name of object [Long] */ - size_t u; /* Local index variable */ + hid_t fid = H5I_INVALID_HID; /* File ID */ + hid_t grp_a = H5I_INVALID_HID; /* Group ID */ + hid_t grp_b = H5I_INVALID_HID; /* Group ID */ + char *objname = NULL; /* Name of object [Long] */ + const char *grp1_name = "grp1"; + size_t u = 0; /* Local index variable */ /* Create files */ - fid = H5Fcreate(FILE51, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT); - assert(fid >= 0); + if ((fid = H5Fcreate(FILE51, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT)) < 0) + fprintf(stderr, "Failed to create file %s\n", FILE51); - /* Create group with short name in file (used as target for hard links) */ - gid = H5Gcreate2(fid, "grp1", H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); - assert(gid >= 0); + assert(fid >= 0); /* Construct very long file name */ - objname = (char *)malloc((size_t)(F51_MAX_NAME_LEN + 1)); + if ((objname = (char *)malloc((size_t)(F51_MAX_NAME_LEN + 1))) == NULL) + fprintf(stderr, "Failed to allocate memory for long link name\n"); + assert(objname); + for (u = 0; u < F51_MAX_NAME_LEN; u++) objname[u] = 'a'; objname[F51_MAX_NAME_LEN] = '\0'; - /* Create hard link to existing object */ - assert(H5Lcreate_hard(fid, "grp1", fid, objname, H5P_DEFAULT, H5P_DEFAULT) >= 0); + /* Create a group with a long name */ + if ((grp_a = H5Gcreate2(fid, objname, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT)) < 0) + fprintf(stderr, "failed to create top-level group with long name\n"); + + /* Create hard link to top-level group with long name */ + if (H5Lcreate_hard(fid, objname, fid, grp1_name, H5P_DEFAULT, H5P_DEFAULT) < 0) + fprintf(stderr, "Failed to create hard link with long name\n"); - /* Create soft link to existing object */ objname[0] = 'b'; - assert(H5Lcreate_soft("grp1", fid, objname, H5P_DEFAULT, H5P_DEFAULT) >= 0); + /* Create a subgroup with a distinct long name */ + if ((grp_b = H5Gcreate2(grp_a, objname, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT)) < 0) + fprintf(stderr, "failed to create subgroup with long name\n"); - /* Create group with long name in existing group */ - gid2 = H5Gcreate2(gid, objname, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); - assert(gid2 >= 0); + /* Create soft link with a long name to existing group */ + if (H5Lcreate_soft(grp1_name, fid, objname, H5P_DEFAULT, H5P_DEFAULT) < 0) + fprintf(stderr, "Failed to create soft link with long name\n"); /* Close objects */ - assert(H5Gclose(gid2) >= 0); - assert(H5Gclose(gid) >= 0); - assert(H5Fclose(fid) >= 0); + if (H5Gclose(grp_a) < 0) + fprintf(stderr, "Failed to close top-level group with long name\n"); + if (H5Gclose(grp_b) < 0) + fprintf(stderr, "Failed to close subgroup with long name\n"); + if (H5Fclose(fid) < 0) + fprintf(stderr, "Failed to close file\n"); /* Release memory */ free(objname); @@ -6381,7 +6446,14 @@ gent_ldouble(void) if ((sid = H5Screate_simple(1, dims, NULL)) < 0) goto error; - if ((tid = H5Tcopy(H5T_NATIVE_LDOUBLE)) < 0) + /* For cross-system compatibility, manually specify long double type's attributes */ + if ((tid = H5Tcopy(H5T_NATIVE_FLOAT)) < 0) + goto error; + + if (H5Tset_size(tid, 16) < 0) + goto error; + + if (H5Tset_precision(tid, 80) < 0) goto error; if (H5Tget_size(tid) == 0) @@ -6390,7 +6462,7 @@ gent_ldouble(void) if ((did = H5Dcreate2(fid, "dset", tid, sid, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT)) < 0) goto error; - if (H5Dwrite(did, tid, H5S_ALL, H5S_ALL, H5P_DEFAULT, buf) < 0) + if (H5Dwrite(did, H5T_NATIVE_LDOUBLE, H5S_ALL, H5S_ALL, H5P_DEFAULT, buf) < 0) goto error; if (H5Sclose(sid) < 0) @@ -6421,7 +6493,9 @@ gent_ldouble_scalar(void) { hid_t fid; hid_t did; - hid_t tid; + hid_t tid1; + hid_t tid2; + hid_t tid3; hid_t sid; hsize_t dims[1] = {6}; long double buf[6] = {0.0L, 1.0L, 2.0L, 3.0L, 4.0L, 5.0L}; @@ -6432,21 +6506,38 @@ gent_ldouble_scalar(void) if ((sid = H5Screate(H5S_SCALAR)) < 0) goto error; - if ((tid = H5Tarray_create2(H5T_NATIVE_LDOUBLE, 1, dims)) < 0) + if ((tid1 = H5Tcopy(H5T_NATIVE_FLOAT)) < 0) goto error; - if (H5Tget_size(tid) == 0) + if (H5Tset_size(tid1, 16) < 0) goto error; - if ((did = H5Dcreate2(fid, "dset", tid, sid, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT)) < 0) + if (H5Tset_precision(tid1, 80) < 0) + goto error; + + if ((tid2 = H5Tarray_create2(tid1, 1, dims)) < 0) + goto error; + + if (H5Tget_size(tid2) == 0) + goto error; + + /* Third datatype to describe our local buffer for write */ + if ((tid3 = H5Tarray_create2(H5T_NATIVE_LDOUBLE, 1, dims)) < 0) + goto error; + + if ((did = H5Dcreate2(fid, "dset", tid2, sid, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT)) < 0) goto error; - if (H5Dwrite(did, tid, H5S_ALL, H5S_ALL, H5P_DEFAULT, buf) < 0) + if (H5Dwrite(did, tid3, H5S_ALL, H5S_ALL, H5P_DEFAULT, buf) < 0) goto error; if (H5Sclose(sid) < 0) goto error; - if (H5Tclose(tid) < 0) + if (H5Tclose(tid1) < 0) + goto error; + if (H5Tclose(tid2) < 0) + goto error; + if (H5Tclose(tid3) < 0) goto error; if (H5Dclose(did) < 0) goto error; @@ -7156,7 +7247,7 @@ gent_extlinks(void) H5Gclose(gid); sid = H5Screate_simple(1, dims, NULL); - did = H5Dcreate2(target_fid, "dset", H5T_NATIVE_INT, sid, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); + did = H5Dcreate2(target_fid, "dset", H5T_STD_I32LE, sid, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); H5Dwrite(did, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT, buf); H5Dclose(did); H5Sclose(sid); @@ -7437,7 +7528,7 @@ gent_packedbits(void) space = H5Screate_simple(2, dims, NULL); dataset = H5Dcreate2(fid, F66_DATASETU64, H5T_STD_U64LE, space, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); - valu64bits = (uint64_t)~0Lu; /* all 1s */ + memset(&valu64bits, 0xFF, sizeof(uint64_t)); /* all 1s */ for (i = 0; i < dims[0]; i++) { dsetu64->arr[i][0] = valu64bits; for (j = 1; j < dims[1]; j++) @@ -7509,7 +7600,7 @@ gent_packedbits(void) space = H5Screate_simple(2, dims, NULL); dataset = H5Dcreate2(fid, F66_DATASETS64, H5T_STD_I64LE, space, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); - val64bits = (int64_t)~0L; /* all 1s */ + memset(&val64bits, 0xFF, sizeof(int64_t)); /* all 1s */ for (i = 0; i < dims[0]; i++) { dset64->arr[i][0] = val64bits; for (j = 1; j < dims[1]; j++) @@ -7587,7 +7678,7 @@ gent_attr_intsize(void) int16_t arr[F66_XDIM][F66_YDIM16]; } *dset16; struct { - int32_t arr[F66_XDIM][F66_YDIM64]; + int32_t arr[F66_XDIM][F66_YDIM32]; } *dset32; struct { int64_t arr[F66_XDIM][F66_YDIM64]; @@ -7684,7 +7775,7 @@ gent_attr_intsize(void) space = H5Screate_simple(2, dims, NULL); attr = H5Acreate2(root, F66_DATASETU64, H5T_STD_U64LE, space, H5P_DEFAULT, H5P_DEFAULT); - valu64bits = (uint64_t)~0Lu; /* all 1s */ + memset(&valu64bits, 0xFF, sizeof(uint64_t)); /* all 1s */ for (i = 0; i < dims[0]; i++) { dsetu64->arr[i][0] = valu64bits; for (j = 1; j < dims[1]; j++) { @@ -7760,7 +7851,7 @@ gent_attr_intsize(void) space = H5Screate_simple(2, dims, NULL); attr = H5Acreate2(root, F66_DATASETS64, H5T_STD_I64LE, space, H5P_DEFAULT, H5P_DEFAULT); - val64bits = (int64_t)~0L; /* all 1s */ + memset(&val64bits, 0xFF, sizeof(int64_t)); /* all 1s */ for (i = 0; i < dims[0]; i++) { dset64->arr[i][0] = val64bits; for (j = 1; j < dims[1]; j++) { @@ -8029,7 +8120,7 @@ gent_compound_intsizes(void) dims[0] = F70_XDIM; dims[1] = F70_YDIM64; - valu64bits = (uint64_t)~0Lu; /* all 1s */ + memset(&valu64bits, 0xFF, sizeof(uint64_t)); /* all 1s */ for (n = 0; n < (int)dims[0]; n++) { Array1[m].dsetu64[n][0] = valu64bits; for (o = 1; o < (int)dims[1]; o++) @@ -8077,7 +8168,7 @@ gent_compound_intsizes(void) dims[0] = F70_XDIM; dims[1] = F70_YDIM64; - val64bits = (int64_t)~0L; /* all 1s */ + memset(&val64bits, 0xFF, sizeof(int64_t)); /* all 1s */ for (n = 0; n < (int)dims[0]; n++) { Array1[m].dset64[n][0] = val64bits; for (o = 1; o < (int)dims[1]; o++) @@ -8110,20 +8201,20 @@ gent_compound_intsizes(void) array64_tid = H5Tarray_create2(H5T_NATIVE_LONG, F70_ARRAY_RANK, array_dim64); assert(array64_tid >= 0); - /* Create the array data type for the 8 bits signed int array */ + /* Create the array data type for the 8 bits unsigned int array */ arrayu8_tid = H5Tarray_create2(H5T_NATIVE_UCHAR, F70_ARRAY_RANK, array_dim8); assert(arrayu8_tid >= 0); - /* Create the array data type for the 16 bits signed int array */ + /* Create the array data type for the 16 bits unsigned int array */ arrayu16_tid = H5Tarray_create2(H5T_NATIVE_USHORT, F70_ARRAY_RANK, array_dim16); assert(arrayu16_tid >= 0); - /* Create the array data type for the 32 bits signed int array */ + /* Create the array data type for the 32 bits unsigned int array */ arrayu32_tid = H5Tarray_create2(H5T_NATIVE_UINT, F70_ARRAY_RANK, array_dim32); assert(arrayu32_tid >= 0); - /* Create the array data type for the 64 bits signed int array */ - arrayu64_tid = H5Tarray_create2(H5T_NATIVE_ULONG, F70_ARRAY_RANK, array_dim64); + /* Create the array data type for the 64 bits unsigned int array */ + arrayu64_tid = H5Tarray_create2(H5T_STD_U64LE, F70_ARRAY_RANK, array_dim64); assert(arrayu64_tid >= 0); /* Create the array data type for the 32 bits double array */ @@ -8314,7 +8405,7 @@ gent_compound_attr_intsizes(void) dims[0] = F70_XDIM; dims[1] = F70_YDIM64; - valu64bits = (uint64_t)~0Lu; /* all 1s */ + memset(&valu64bits, 0xFF, sizeof(uint64_t)); /* all 1s */ for (n = 0; n < (int)dims[0]; n++) { Array1[m].dsetu64[n][0] = valu64bits; for (o = 1; o < (int)dims[1]; o++) { @@ -8366,7 +8457,7 @@ gent_compound_attr_intsizes(void) dims[0] = F70_XDIM; dims[1] = F70_YDIM64; - val64bits = (int64_t)~0L; /* all 1s */ + memset(&val64bits, 0xFF, sizeof(int64_t)); /* all 1s */ for (n = 0; n < (int)dims[0]; n++) { Array1[m].dset64[n][0] = val64bits; for (o = 1; o < (int)dims[1]; o++) { @@ -8400,20 +8491,20 @@ gent_compound_attr_intsizes(void) array64_tid = H5Tarray_create2(H5T_NATIVE_LONG, F70_ARRAY_RANK, array_dim64); assert(array64_tid >= 0); - /* Create the array data type for the 8 bits signed int array */ + /* Create the array data type for the 8 bits unsigned int array */ arrayu8_tid = H5Tarray_create2(H5T_NATIVE_UCHAR, F70_ARRAY_RANK, array_dim8); assert(arrayu8_tid >= 0); - /* Create the array data type for the 16 bits signed int array */ + /* Create the array data type for the 16 bits unsigned int array */ arrayu16_tid = H5Tarray_create2(H5T_NATIVE_USHORT, F70_ARRAY_RANK, array_dim16); assert(arrayu16_tid >= 0); - /* Create the array data type for the 32 bits signed int array */ + /* Create the array data type for the 32 bits unsigned int array */ arrayu32_tid = H5Tarray_create2(H5T_NATIVE_UINT, F70_ARRAY_RANK, array_dim32); assert(arrayu32_tid >= 0); - /* Create the array data type for the 64 bits signed int array */ - arrayu64_tid = H5Tarray_create2(H5T_NATIVE_ULONG, F70_ARRAY_RANK, array_dim64); + /* Create the array data type for the 64 bits unsigned int array */ + arrayu64_tid = H5Tarray_create2(H5T_STD_U64LE, F70_ARRAY_RANK, array_dim64); assert(arrayu64_tid >= 0); /* Create the array data type for the 32 bits double array */ @@ -8802,7 +8893,7 @@ gent_intscalars(void) 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 */ + memset(&valu64bits, 0xFF, sizeof(uint64_t)); /* all 1s */ for (i = 0; i < dims[0]; i++) { dsetu64->arr[i][0] = valu64bits; for (j = 1; j < dims[1]; j++) { @@ -8882,7 +8973,7 @@ gent_intscalars(void) 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 */ + memset(&val64bits, 0xFF, sizeof(int64_t)); /* all 1s */ for (i = 0; i < dims[0]; i++) { dset64->arr[i][0] = val64bits; for (j = 1; j < dims[1]; j++) { @@ -9064,7 +9155,7 @@ gent_attr_intscalars(void) 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 */ + memset(&valu64bits, 0xFF, sizeof(uint64_t)); /* all 1s */ for (i = 0; i < dims[0]; i++) { dsetu64->arr[i][0] = valu64bits; for (j = 1; j < dims[1]; j++) { @@ -9144,7 +9235,7 @@ gent_attr_intscalars(void) 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 */ + memset(&val64bits, 0xFF, sizeof(int64_t)); /* all 1s */ for (i = 0; i < dims[0]; i++) { dset64->arr[i][0] = val64bits; for (j = 1; j < dims[1]; j++) { @@ -9221,7 +9312,6 @@ gent_string_scalars(void) string[i][j] = (char)(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); @@ -9323,7 +9413,7 @@ gent_compound_int_array(void) /* Array of 64 bits unsigned int */ dims[0] = F76_DIM64; - valu64bits = (uint64_t)~0Lu; /* all 1s */ + memset(&valu64bits, 0xFF, sizeof(uint64_t)); /* all 1s */ for (n = 0; n < (int)dims[0]; n++) { Cmpd1[m].dsetu64[n] = valu64bits; valu64bits <<= 1; @@ -9359,7 +9449,7 @@ gent_compound_int_array(void) /* Array of 64 bits signed int */ dims[0] = F76_DIM64; - val64bits = (int64_t)~0L; /* all 1s */ + memset(&val64bits, 0xFF, sizeof(int64_t)); /* all 1s */ for (n = 0; n < (int)dims[0]; n++) { Cmpd1[m].dset64[n] = val64bits; val64bits <<= 1; @@ -9385,7 +9475,7 @@ gent_compound_int_array(void) assert(array32_tid >= 0); /* Create the array data type for the 64 bits signed int array */ - array64_tid = H5Tarray_create2(H5T_NATIVE_LONG, F76_ARRAY_RANK, array_dim64); + array64_tid = H5Tarray_create2(H5T_STD_I64LE, F76_ARRAY_RANK, array_dim64); assert(array64_tid >= 0); /* Create the array data type for the 8 bits signed int array */ @@ -9401,7 +9491,7 @@ gent_compound_int_array(void) assert(arrayu32_tid >= 0); /* Create the array data type for the 64 bits signed int array */ - arrayu64_tid = H5Tarray_create2(H5T_NATIVE_ULONG, F76_ARRAY_RANK, array_dim64); + arrayu64_tid = H5Tarray_create2(H5T_STD_U64LE, F76_ARRAY_RANK, array_dim64); assert(arrayu64_tid >= 0); /* Create the array data type for the 32 bits double array */ @@ -9502,14 +9592,16 @@ void gent_compound_ints(void) { hid_t fid, dataset, space; - uint8_t valu8bits = (uint8_t)~0u; /* all 1s */ - uint16_t valu16bits = (uint16_t)~0u; /* all 1s */ - uint32_t valu32bits = (uint32_t)~0u; /* all 1s */ - uint64_t valu64bits = (uint64_t)~0Lu; /* all 1s */ - int8_t val8bits = (int8_t)~0; /* all 1s */ - int16_t val16bits = (int16_t)~0; /* all 1s */ - int32_t val32bits = (int32_t)~0; /* all 1s */ - int64_t val64bits = (int64_t)~0L; /* all 1s */ + uint8_t valu8bits = (uint8_t)~0u; /* all 1s */ + uint16_t valu16bits = (uint16_t)~0u; /* all 1s */ + uint32_t valu32bits = (uint32_t)~0u; /* all 1s */ + uint64_t valu64bits; + int8_t val8bits = (int8_t)~0; /* all 1s */ + int16_t val16bits = (int16_t)~0; /* all 1s */ + int32_t val32bits = (int32_t)~0; /* all 1s */ + int64_t val64bits = (int64_t)~0L; /* all 1s */ + + memset(&valu64bits, 0xFF, sizeof(uint64_t)); /* all 1s */ /* Structure and array for compound types */ typedef struct Cmpd1Struct { uint8_t dsetu8; @@ -9576,7 +9668,7 @@ gent_compound_ints(void) /* Array of 64 bits unsigned int */ if ((m % F76_DIM64) == 0) - valu64bits = (uint64_t)~0Lu; /* all 1s */ + memset(&valu64bits, 0xFF, sizeof(uint64_t)); /* all 1s */ Cmpd1[m].dsetu64 = valu64bits; Cmpd2[m].dsetu64 = valu64bits; valu64bits <<= 1; @@ -9604,7 +9696,7 @@ gent_compound_ints(void) /* Array of 64 bits signed int */ if ((m % F76_DIM64) == 0) - val64bits = (int64_t)~0L; /* all 1s */ + memset(&val64bits, 0xFF, sizeof(int64_t)); /* all 1s */ Cmpd1[m].dset64 = val64bits; Cmpd2[m].dset64 = val64bits; val64bits <<= 1; @@ -9636,7 +9728,7 @@ gent_compound_ints(void) status = H5Tinsert(Cmpd1Structid, F76_DATASETU32, HOFFSET(Cmpd1Struct, dsetu32), H5T_NATIVE_UINT); assert(status >= 0); - status = H5Tinsert(Cmpd1Structid, F76_DATASETU64, HOFFSET(Cmpd1Struct, dsetu64), H5T_NATIVE_ULONG); + status = H5Tinsert(Cmpd1Structid, F76_DATASETU64, HOFFSET(Cmpd1Struct, dsetu64), H5T_STD_U64LE); assert(status >= 0); status = H5Tinsert(Cmpd1Structid, F76_DATASETS08, HOFFSET(Cmpd1Struct, dset8), H5T_NATIVE_SCHAR); @@ -9648,7 +9740,7 @@ gent_compound_ints(void) status = H5Tinsert(Cmpd1Structid, F76_DATASETS32, HOFFSET(Cmpd1Struct, dset32), H5T_NATIVE_INT); assert(status >= 0); - status = H5Tinsert(Cmpd1Structid, F76_DATASETS64, HOFFSET(Cmpd1Struct, dset64), H5T_NATIVE_LONG); + status = H5Tinsert(Cmpd1Structid, F76_DATASETS64, HOFFSET(Cmpd1Struct, dset64), H5T_STD_I64LE); assert(status >= 0); status = H5Tinsert(Cmpd1Structid, F76_DUMMYDBL, HOFFSET(Cmpd1Struct, dsetdbl), H5T_NATIVE_DOUBLE); @@ -9680,7 +9772,7 @@ gent_compound_ints(void) assert(Cmpd2Structid >= 0); /* Insert the arrays and variables into the structure */ - status = H5Tinsert(Cmpd2Structid, F76_DATASETU64, HOFFSET(Cmpd2Struct, dsetu64), H5T_NATIVE_ULONG); + status = H5Tinsert(Cmpd2Structid, F76_DATASETU64, HOFFSET(Cmpd2Struct, dsetu64), H5T_STD_I64LE); assert(status >= 0); status = H5Tinsert(Cmpd2Structid, F76_DATASETU32, HOFFSET(Cmpd2Struct, dsetu32), H5T_NATIVE_UINT); @@ -9692,7 +9784,7 @@ gent_compound_ints(void) status = H5Tinsert(Cmpd2Structid, F76_DATASETU08, HOFFSET(Cmpd2Struct, dsetu8), H5T_NATIVE_UCHAR); assert(status >= 0); - status = H5Tinsert(Cmpd2Structid, F76_DATASETS64, HOFFSET(Cmpd2Struct, dset64), H5T_NATIVE_LONG); + status = H5Tinsert(Cmpd2Structid, F76_DATASETS64, HOFFSET(Cmpd2Struct, dset64), H5T_STD_I64LE); assert(status >= 0); status = H5Tinsert(Cmpd2Structid, F76_DATASETS32, HOFFSET(Cmpd2Struct, dset32), H5T_NATIVE_INT); @@ -9882,7 +9974,7 @@ gent_intattrscalars(void) 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 */ + memset(&valu64bits, 0xFF, sizeof(uint64_t)); /* all 1s */ for (i = 0; i < dims[0]; i++) { dsetu64->arr[i][0] = valu64bits; for (j = 1; j < dims[1]; j++) { @@ -9978,7 +10070,7 @@ gent_intattrscalars(void) 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 */ + memset(&val64bits, 0xFF, sizeof(int64_t)); /* all 1s */ for (i = 0; i < dims[0]; i++) { dset64->arr[i][0] = val64bits; for (j = 1; j < dims[1]; j++) { @@ -10209,7 +10301,7 @@ gent_intsattrs(void) space = H5Screate_simple(2, dims, NULL); dataset = H5Dcreate2(fid, F66_DATASETU64, H5T_STD_U64LE, space, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); - valu64bits = (uint64_t)~0Lu; /* all 1s */ + memset(&valu64bits, 0xFF, sizeof(uint64_t)); /* all 1s */ for (i = 0; i < dims[0]; i++) { dsetu64->arr[i][0] = valu64bits; asetu64[i * dims[1]] = dsetu64->arr[i][0]; @@ -10321,7 +10413,7 @@ gent_intsattrs(void) space = H5Screate_simple(2, dims, NULL); dataset = H5Dcreate2(fid, F66_DATASETS64, H5T_STD_I64LE, space, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); - val64bits = (int64_t)~0L; /* all 1s */ + memset(&val64bits, 0xFF, sizeof(int64_t)); /* all 1s */ for (i = 0; i < dims[0]; i++) { dset64->arr[i][0] = val64bits; aset64[i * dims[1]] = dset64->arr[i][0]; @@ -10438,7 +10530,13 @@ gent_floatsattrs(void) fid = H5Fcreate(FILE89, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT); - if ((tid = H5Tcopy(H5T_NATIVE_LDOUBLE)) < 0) + if ((tid = H5Tcopy(H5T_NATIVE_FLOAT)) < 0) + goto error; + + if (H5Tset_size(tid, 16) < 0) + goto error; + + if (H5Tset_precision(tid, 80) < 0) goto error; if (H5Tget_size(tid) == 0) @@ -10458,7 +10556,7 @@ gent_floatsattrs(void) dset32->arr[i][j] = (float)(j * dims[0] + i) / (float)F89_YDIM32; aset32[i * dims[1] + j] = dset32->arr[i][j]; } - val32bits -= (float)1; + val32bits = (float)(F89_YDIM32 - i - 1); } H5Dwrite(dataset, H5T_IEEE_F32LE, H5S_ALL, H5S_ALL, H5P_DEFAULT, dset32); @@ -10486,7 +10584,7 @@ gent_floatsattrs(void) dset64->arr[i][j] = (double)(j * dims[0] + i) / (double)F89_YDIM64; aset64[i * dims[1] + j] = dset64->arr[i][j]; } - val64bits -= (double)1; + val64bits = (double)(F89_YDIM64 - i - 1); } H5Dwrite(dataset, H5T_IEEE_F64LE, H5S_ALL, H5S_ALL, H5P_DEFAULT, dset64); @@ -10514,15 +10612,15 @@ gent_floatsattrs(void) dset128->arr[i][j] = (long double)(j * dims[0] + i) / (long double)F89_YDIM128; aset128[i * dims[1] + j] = dset128->arr[i][j]; } - val128bits -= (long double)1; + val128bits = (long double)(F89_YDIM128 - i - 1); } - H5Dwrite(dataset, tid, H5S_ALL, H5S_ALL, H5P_DEFAULT, dset128); + H5Dwrite(dataset, H5T_NATIVE_LDOUBLE, H5S_ALL, H5S_ALL, H5P_DEFAULT, dset128->arr); /* Attribute of 128 bits long double */ adims[0] = F89_XDIM * F89_YDIM128; aspace = H5Screate_simple(1, adims, NULL); attr = H5Acreate2(dataset, F89_DATASETF128, tid, aspace, H5P_DEFAULT, H5P_DEFAULT); - H5Awrite(attr, tid, aset128); + H5Awrite(attr, H5T_NATIVE_LDOUBLE, aset128); H5Aclose(attr); H5Sclose(aspace); H5Sclose(space); @@ -11501,7 +11599,7 @@ gent_onion_1d_dset(void) wdata[0][i] = i; /* Create a new file using the default properties */ - if ((file = H5Fcreate(paths->canon, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT)) < 0) + if ((file = H5Fcreate(paths->canon, H5F_ACC_TRUNC, H5P_DEFAULT, onion_info.backing_fapl_id)) < 0) goto error; /* Create dataspace with unlimited dimensions */ @@ -11663,7 +11761,8 @@ gent_onion_create_delete_objects(void) hsize_t chunk[2] = {4, 4}; int wdata[4][4]; - int fillval; + int fillval; + char onion_revfile_path[1024]; /* Set up */ if ((onion_info.backing_fapl_id = H5Pcreate(H5P_FILE_ACCESS)) < 0) @@ -11691,7 +11790,7 @@ gent_onion_create_delete_objects(void) /* * Create a new file using the default properties. */ - if ((file = H5Fcreate(paths->canon, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT)) < 0) + if ((file = H5Fcreate(paths->canon, H5F_ACC_TRUNC, H5P_DEFAULT, onion_info.backing_fapl_id)) < 0) goto error; /* @@ -11934,7 +12033,7 @@ gent_onion_dset_extension(void) wdata[i][j] = i + j; /* Create a new file using the default properties */ - if ((file = H5Fcreate(paths->canon, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT)) < 0) + if ((file = H5Fcreate(paths->canon, H5F_ACC_TRUNC, H5P_DEFAULT, onion_info.backing_fapl_id)) < 0) goto error; /* Create dataspace with unlimited dimensions */ @@ -12116,7 +12215,7 @@ gent_float16(void) aset16[i * dims[1] + j] = dset16->arr[i][j]; } - val16bits -= (H5__Float16)1; + val16bits = (H5__Float16)(F93_YDIM - i - 1); } H5Dwrite(dataset, H5T_IEEE_F16LE, H5S_ALL, H5S_ALL, H5P_DEFAULT, dset16); @@ -12186,7 +12285,7 @@ gent_float16_be(void) aset16[i * dims[1] + j] = dset16->arr[i][j]; } - val16bits -= (H5__Float16)1; + val16bits = (H5__Float16)(F94_YDIM - i - 1); } H5Dwrite(dataset, H5T_IEEE_F16LE, H5S_ALL, H5S_ALL, H5P_DEFAULT, dset16); @@ -12271,7 +12370,9 @@ gent_complex(void) dset_fc->arr[i][0] = H5_CMPLXF(val_float, 0.0F); for (size_t j = 1; j < dims[1]; j++) { - float part_val = (float)(j * dims[0] + i) / (float)F95_YDIM; + /* Use extra precision to avoid inaccuracies at -O3 on the intel compiler */ + double part_val_double = (double)(j * dims[0] + i) / (double)F95_YDIM; + float part_val = (float)part_val_double; dset_fc->arr[i][j] = H5_CMPLXF(part_val, part_val); } @@ -12306,12 +12407,14 @@ gent_complex(void) dset_dc->arr[i][0] = H5_CMPLX(val_double, 0.0); for (size_t j = 1; j < dims[1]; j++) { - double part_val = (double)(j * dims[0] + i) / (double)F95_YDIM; + /* Use extra precision to avoid inaccuracies at -O3 on the intel compiler */ + double part_val_double = (double)(j * dims[0] + i) / (double)F95_YDIM; + float part_val = (float)part_val_double; dset_dc->arr[i][j] = H5_CMPLX(part_val, part_val); } - val_double -= (double)1; + val_double = (double)(F95_YDIM - i - 1); } H5Dwrite(dataset, H5T_NATIVE_DOUBLE_COMPLEX, H5S_ALL, H5S_ALL, H5P_DEFAULT, dset_dc); @@ -12341,7 +12444,9 @@ gent_complex(void) dset_ldc->arr[i][0] = H5_CMPLXL(val_ldouble, 0.0L); for (size_t j = 1; j < dims[1]; j++) { - long double part_val = (long double)(j * dims[0] + i) / (long double)F95_YDIM; + /* Use extra precision to avoid inaccuracies at -O3 on the intel compiler */ + double part_val_double = (double)(j * dims[0] + i) / (double)F95_YDIM; + float part_val = (float)part_val_double; dset_ldc->arr[i][j] = H5_CMPLXL(part_val, part_val); } @@ -12373,7 +12478,9 @@ gent_complex(void) dset_fc->arr[i][0] = H5_CMPLXF(val_float, 0.0F); for (size_t j = 1; j < dims[1]; j++) { - float part_val = (float)(j * dims[0] + i) / (float)F95_YDIM; + /* Use extra precision to avoid inaccuracies at -O3 on the intel compiler */ + double part_val_double = (double)(j * dims[0] + i) / (double)F95_YDIM; + float part_val = (float)part_val_double; dset_fc->arr[i][j] = H5_CMPLXF(part_val, part_val); } @@ -12408,7 +12515,9 @@ gent_complex(void) ((H5_float_complex *)dset_var_fc->arr[i].p)[0] = H5_CMPLXF(val_float, 0.0F); for (size_t j = 1; j < dims[1]; j++) { - float part_val = (float)(j * dims[0] + i) / (float)F95_YDIM; + /* Use extra precision to avoid inaccuracies at -O3 on the intel compiler */ + double part_val_double = (double)(j * dims[0] + i) / (double)F95_YDIM; + float part_val = (float)part_val_double; ((H5_float_complex *)dset_var_fc->arr[i].p)[j] = H5_CMPLXF(part_val, part_val); } @@ -12442,7 +12551,9 @@ gent_complex(void) dset_fc->arr[i][0] = H5_CMPLXF(val_float, 0.0F); for (size_t j = 1; j < dims[1]; j++) { - float part_val = (float)(j * dims[0] + i) / (float)F95_YDIM; + /* Use extra precision to avoid inaccuracies at -O3 on the intel compiler */ + double part_val_double = (double)(j * dims[0] + i) / (double)F95_YDIM; + float part_val = (float)part_val_double; dset_fc->arr[i][j] = H5_CMPLXF(part_val, part_val); } @@ -12522,7 +12633,9 @@ gent_complex_be(void) dset_fc->arr[i][0] = H5_CMPLXF(val_float, 0.0F); for (size_t j = 1; j < dims[1]; j++) { - float part_val = (float)(j * dims[0] + i) / (float)F96_YDIM; + /* Use extra precision to avoid inaccuracies at -O3 on the intel compiler */ + double part_val_double = (double)(j * dims[0] + i) / (double)F96_YDIM; + float part_val = (float)part_val_double; dset_fc->arr[i][j] = H5_CMPLXF(part_val, part_val); } @@ -12624,7 +12737,9 @@ gent_complex_be(void) dset_fc->arr[i][0] = H5_CMPLXF(val_float, 0.0F); for (size_t j = 1; j < dims[1]; j++) { - float part_val = (float)(j * dims[0] + i) / (float)F96_YDIM; + /* Use extra precision to avoid inaccuracies at -O3 on the intel compiler */ + double part_val_double = (double)(j * dims[0] + i) / (double)F96_YDIM; + float part_val = (float)part_val_double; dset_fc->arr[i][j] = H5_CMPLXF(part_val, part_val); } @@ -12659,7 +12774,9 @@ gent_complex_be(void) ((H5_float_complex *)dset_var_fc->arr[i].p)[0] = H5_CMPLXF(val_float, 0.0F); for (size_t j = 1; j < dims[1]; j++) { - float part_val = (float)(j * dims[0] + i) / (float)F96_YDIM; + /* Use extra precision to avoid inaccuracies at -O3 on the intel compiler */ + double part_val_double = (double)(j * dims[0] + i) / (double)F96_YDIM; + float part_val = (float)part_val_double; ((H5_float_complex *)dset_var_fc->arr[i].p)[j] = H5_CMPLXF(part_val, part_val); } @@ -12693,7 +12810,9 @@ gent_complex_be(void) dset_fc->arr[i][0] = H5_CMPLXF(val_float, 0.0F); for (size_t j = 1; j < dims[1]; j++) { - float part_val = (float)(j * dims[0] + i) / (float)F96_YDIM; + /* Use extra precision to avoid inaccuracies at -O3 on the intel compiler */ + double part_val_double = (double)(j * dims[0] + i) / (double)F96_YDIM; + float part_val = (float)part_val_double; dset_fc->arr[i][j] = H5_CMPLXF(part_val, part_val); } @@ -12713,4 +12832,552 @@ gent_complex_be(void) H5Sclose(space); H5Fclose(fid); } -#endif \ No newline at end of file +#endif + +void +gent_trefer_attr(void) +{ + hid_t file_id = H5I_INVALID_HID; + hid_t group_id = H5I_INVALID_HID; + hid_t dataset1_id = H5I_INVALID_HID; + hid_t dataset2_id = H5I_INVALID_HID; + hid_t dataset3_id = H5I_INVALID_HID; + hid_t datatype_id = H5I_INVALID_HID; + hid_t attr1_id = H5I_INVALID_HID; + hid_t attr2_id = H5I_INVALID_HID; + hid_t attr3_id = H5I_INVALID_HID; + hid_t dataspace_id = H5I_INVALID_HID; + hsize_t dims[1] = {4}; + H5R_ref_t refs[4]; + + unsigned int zeros[4] = {0, 0, 0, 0}; + unsigned char zeros_u8[4] = {0, 0, 0, 0}; + unsigned int attr1_data[4] = {0, 3, 6, 9}; + unsigned int attr2_data[4] = {1, 4, 7, 10}; + unsigned int attr3_data[4] = {2, 5, 8, 11}; + + file_id = H5Fcreate(FILE97, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT); + + group_id = H5Gcreate2(file_id, "Group1", H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); + + dataspace_id = H5Screate_simple(1, dims, NULL); + + /* Initialize datasets and attributes that will be referenced */ + dataset1_id = + H5Dcreate2(group_id, "Dataset1", H5T_STD_U32LE, dataspace_id, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); + H5Dwrite(dataset1_id, H5T_STD_U32LE, H5S_ALL, H5S_ALL, H5P_DEFAULT, zeros); + + attr1_id = H5Acreate2(dataset1_id, "Attr1", H5T_STD_U32LE, dataspace_id, H5P_DEFAULT, H5P_DEFAULT); + H5Awrite(attr1_id, H5T_STD_U32LE, attr1_data); + + dataset2_id = + H5Dcreate2(group_id, "Dataset2", H5T_STD_U8LE, dataspace_id, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); + H5Dwrite(dataset2_id, H5T_STD_U8LE, H5S_ALL, H5S_ALL, H5P_DEFAULT, zeros_u8); + + attr2_id = H5Acreate2(group_id, "Attr2", H5T_STD_U32LE, dataspace_id, H5P_DEFAULT, H5P_DEFAULT); + H5Awrite(attr2_id, H5T_STD_U32LE, attr2_data); + + datatype_id = H5Tcreate(H5T_COMPOUND, sizeof(int) * 2 + sizeof(float)); + H5Tinsert(datatype_id, "a", 0, H5T_STD_I32LE); + H5Tinsert(datatype_id, "b", sizeof(int), H5T_STD_I32LE); + H5Tinsert(datatype_id, "c", sizeof(int) * 2, H5T_IEEE_F32LE); + H5Tcommit2(group_id, "Datatype1", datatype_id, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); + + attr3_id = H5Acreate2(datatype_id, "Attr3", H5T_STD_U32LE, dataspace_id, H5P_DEFAULT, H5P_DEFAULT); + H5Awrite(attr3_id, H5T_STD_U32LE, attr3_data); + + /* Create Dataset3 in root group to hold references */ + dataset3_id = + H5Dcreate2(file_id, "Dataset3", H5T_STD_REF, dataspace_id, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); + + H5Rcreate_attr(file_id, "/Group1/Dataset1", "Attr1", H5P_DEFAULT, &refs[0]); + /* Create reference to Dataset2's Attr1 (which doesn't exist) */ + H5Rcreate_attr(file_id, "/Group1/Dataset2", "Attr1", H5P_DEFAULT, &refs[1]); + H5Rcreate_attr(file_id, "/Group1", "Attr2", H5P_DEFAULT, &refs[2]); + H5Rcreate_attr(file_id, "/Group1/Datatype1", "Attr3", H5P_DEFAULT, &refs[3]); + + H5Dwrite(dataset3_id, H5T_STD_REF, H5S_ALL, H5S_ALL, H5P_DEFAULT, refs); + + /* Cleanup */ + for (int i = 0; i < 4; i++) { + H5Rdestroy(&refs[i]); + } + + H5Aclose(attr1_id); + H5Aclose(attr2_id); + H5Dclose(dataset1_id); + H5Dclose(dataset2_id); + H5Dclose(dataset3_id); + H5Tclose(datatype_id); + H5Sclose(dataspace_id); + H5Gclose(group_id); + H5Fclose(file_id); + + return; +} + +void +gent_tattr4_be(void) +{ + hid_t file_id = H5I_INVALID_HID; + hid_t dataspace_id = H5I_INVALID_HID; + hid_t attr_dataspace_id = H5I_INVALID_HID; + hid_t dataset_id = H5I_INVALID_HID; + hid_t attr_id = H5I_INVALID_HID; + hid_t type_id = H5I_INVALID_HID; + hsize_t dims[1] = {1}; + char attr_data[] = "1234"; + float data_value = 0.0f; + char attr_name[10] = {0}; + + file_id = H5Fcreate(FILE98, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT); + + dataspace_id = H5Screate_simple(1, dims, NULL); + + dataset_id = + H5Dcreate2(file_id, "data", H5T_IEEE_F32BE, dataspace_id, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); + + H5Dwrite(dataset_id, H5T_IEEE_F32BE, H5S_ALL, H5S_ALL, H5P_DEFAULT, &data_value); + + attr_dataspace_id = H5Screate(H5S_SCALAR); + + type_id = H5Tcopy(H5T_C_S1); + H5Tset_size(type_id, 4); + H5Tset_strpad(type_id, H5T_STR_NULLTERM); + H5Tset_cset(type_id, H5T_CSET_ASCII); + + for (int i = 0; i < 9; i++) { + sprintf(attr_name, "attr%d", i); + + attr_id = H5Acreate2(file_id, attr_name, type_id, attr_dataspace_id, H5P_DEFAULT, H5P_DEFAULT); + + H5Awrite(attr_id, type_id, attr_data); + + H5Aclose(attr_id); + } + + H5Tclose(type_id); + H5Sclose(attr_dataspace_id); + H5Dclose(dataset_id); + H5Sclose(dataspace_id); + H5Fclose(file_id); +} + +void +gent_tno_subset(void) +{ + hid_t file_id = H5I_INVALID_HID; + hid_t dataset_id = H5I_INVALID_HID; + hid_t dataspace_id = H5I_INVALID_HID; + hsize_t dims[2] = {1, 1}; + int data[1][1] = {{0}}; + + file_id = H5Fcreate(FILE99, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT); + dataspace_id = H5Screate_simple(2, dims, NULL); + dataset_id = + H5Dcreate2(file_id, F99_DSET, H5T_STD_I32LE, dataspace_id, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); + H5Dwrite(dataset_id, H5T_STD_I32LE, H5S_ALL, H5S_ALL, H5P_DEFAULT, data); + + H5Dclose(dataset_id); + H5Sclose(dataspace_id); + H5Fclose(file_id); + + return; +} + +void +gent_trefer_compat(void) +{ + hid_t file_id = H5I_INVALID_HID; + hid_t group_id = H5I_INVALID_HID; + hid_t type_id = H5I_INVALID_HID; + hid_t space_id = H5I_INVALID_HID; + hid_t dset1_id = H5I_INVALID_HID; + hid_t dset2_id = H5I_INVALID_HID; + hid_t dset3_id = H5I_INVALID_HID; + hid_t dset4_id = H5I_INVALID_HID; + hsize_t dims1[2] = {10, 10}; + hsize_t dims3[1] = {4}; + hsize_t dims4[1] = {2}; + hsize_t start[2] = {2, 2}; + hsize_t count[2] = {6, 6}; + hsize_t coord[10][2] = {{6, 9}, {2, 2}, {8, 4}, {1, 6}, {2, 8}, {3, 2}, {0, 4}, {9, 0}, {7, 1}, {3, 3}}; + uint32_t data1[10][10]; + uint8_t data2[10][10]; + hobj_ref_t ref_data[4]; + hdset_reg_ref_t reg_data[2]; + + memset(data1, 0, sizeof(data1)); + memset(data2, 0, sizeof(data2)); + + file_id = H5Fcreate(FILE100, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT); + + group_id = H5Gcreate2(file_id, "Group1", H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); + + type_id = H5Tcreate(H5T_COMPOUND, 4 + 4 * 2 + 4); + H5Tinsert(type_id, "a", 0, H5T_STD_I32LE); + H5Tinsert(type_id, "b", sizeof(int), H5T_STD_I32LE); + H5Tinsert(type_id, "c", sizeof(int) * 2, H5T_IEEE_F32LE); + H5Tcommit2(group_id, "Datatype1", type_id, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); + + space_id = H5Screate_simple(2, dims1, NULL); + + dset1_id = + H5Dcreate2(group_id, "Dataset1", H5T_STD_U32LE, space_id, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); + H5Dwrite(dset1_id, H5T_STD_U32LE, H5S_ALL, H5S_ALL, H5P_DEFAULT, data1); + + dset2_id = + H5Dcreate2(group_id, "Dataset2", H5T_STD_U8LE, space_id, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); + H5Dwrite(dset2_id, H5T_STD_U8LE, H5S_ALL, H5S_ALL, H5P_DEFAULT, data2); + + H5Sclose(space_id); + + space_id = H5Screate_simple(1, dims3, NULL); + dset3_id = + H5Dcreate2(file_id, "Dataset3", H5T_STD_REF_OBJ, space_id, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); + + H5Rcreate(&ref_data[0], file_id, "/Group1/Dataset1", H5R_OBJECT, -1); + H5Rcreate(&ref_data[1], file_id, "/Group1/Dataset2", H5R_OBJECT, -1); + H5Rcreate(&ref_data[2], file_id, "/Group1", H5R_OBJECT, -1); + H5Rcreate(&ref_data[3], file_id, "/Group1/Datatype1", H5R_OBJECT, -1); + + H5Dwrite(dset3_id, H5T_STD_REF_OBJ, H5S_ALL, H5S_ALL, H5P_DEFAULT, ref_data); + H5Sclose(space_id); + + space_id = H5Screate_simple(1, dims4, NULL); + dset4_id = + H5Dcreate2(file_id, "Dataset4", H5T_STD_REF_DSETREG, space_id, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); + + space_id = H5Dget_space(dset1_id); + H5Sselect_hyperslab(space_id, H5S_SELECT_SET, start, NULL, count, NULL); + H5Rcreate(®_data[0], file_id, "/Group1/Dataset1", H5R_DATASET_REGION, space_id); + H5Sclose(space_id); + + space_id = H5Dget_space(dset2_id); + H5Sselect_elements(space_id, H5S_SELECT_SET, 10, (const hsize_t *)coord); + H5Rcreate(®_data[1], file_id, "/Group1/Dataset2", H5R_DATASET_REGION, space_id); + + space_id = H5Dget_space(dset4_id); + H5Dwrite(dset4_id, H5T_STD_REF_DSETREG, H5S_ALL, H5S_ALL, H5P_DEFAULT, reg_data); + + H5Sclose(space_id); + H5Dclose(dset1_id); + H5Dclose(dset2_id); + H5Dclose(dset3_id); + H5Dclose(dset4_id); + H5Tclose(type_id); + H5Gclose(group_id); + H5Fclose(file_id); + + return; +} + +void +gent_trefer_grp(void) +{ + hid_t file_id = H5I_INVALID_HID; + hid_t group_id = H5I_INVALID_HID; + hid_t group3_id = H5I_INVALID_HID; + hid_t dset_id = H5I_INVALID_HID; + hid_t space_id = H5I_INVALID_HID; + H5R_ref_t ref; + + file_id = H5Fcreate(FILE101, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT); + + group_id = H5Gcreate2(file_id, "group", H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); + group3_id = H5Gcreate2(group_id, "group3", H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); + + space_id = H5Screate(H5S_SCALAR); + dset_id = H5Dcreate2(file_id, "dset", H5T_STD_REF, space_id, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); + + H5Rcreate_object(file_id, "/group", H5P_DEFAULT, &ref); + H5Dwrite(dset_id, H5T_STD_REF, H5S_ALL, H5S_ALL, H5P_DEFAULT, &ref); + + H5Rdestroy(&ref); + H5Sclose(space_id); + H5Dclose(dset_id); + H5Gclose(group3_id); + H5Gclose(group_id); + H5Fclose(file_id); +} + +void +gent_trefer_obj_del(void) +{ + hid_t file_id = H5I_INVALID_HID; + hid_t dset1_id = H5I_INVALID_HID; + hid_t dset2_id = H5I_INVALID_HID; + hid_t space_id = H5I_INVALID_HID; + H5R_ref_t ref; + + file_id = H5Fcreate(FILE102, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT); + + space_id = H5Screate(H5S_SCALAR); + + dset1_id = + H5Dcreate2(file_id, "Dataset1", H5T_STD_I32LE, space_id, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); + + dset2_id = H5Dcreate2(file_id, "Dataset2", H5T_STD_REF, space_id, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); + + H5Rcreate_object(file_id, "/Dataset1", H5P_DEFAULT, &ref); + + H5Dwrite(dset2_id, H5T_STD_REF, H5S_ALL, H5S_ALL, H5P_DEFAULT, &ref); + + H5Dclose(dset1_id); + + H5Ldelete(file_id, "Dataset1", H5P_DEFAULT); + + H5Rdestroy(&ref); + H5Sclose(space_id); + H5Dclose(dset2_id); + H5Fclose(file_id); + + return; +} + +void +gent_trefer_obj(void) +{ + hid_t file_id = H5I_INVALID_HID; + hid_t group_id = H5I_INVALID_HID; + hid_t type_id = H5I_INVALID_HID; + hid_t space_id = H5I_INVALID_HID; + hid_t dset1_id = H5I_INVALID_HID; + hid_t dset2_id = H5I_INVALID_HID; + hid_t dset3_id = H5I_INVALID_HID; + hid_t dset4_id = H5I_INVALID_HID; + hid_t dset5_id = H5I_INVALID_HID; + hid_t dset6_id = H5I_INVALID_HID; + hsize_t dims[1] = {1}; + uint32_t data1[1] = {0}; + uint8_t data2[1] = {0}; + H5R_ref_t ref_data3[1]; + hobj_ref_t ref_data4[1]; + H5R_ref_t ref_data5[1]; + hdset_reg_ref_t ref_data6[1]; + + file_id = H5Fcreate(FILE103, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT); + + group_id = H5Gcreate2(file_id, "Group1", H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); + + type_id = H5Tcreate(H5T_COMPOUND, sizeof(int) * 2 + sizeof(float)); + H5Tinsert(type_id, "a", 0, H5T_STD_I32LE); + H5Tinsert(type_id, "b", sizeof(int), H5T_STD_I32LE); + H5Tinsert(type_id, "c", sizeof(int) * 2, H5T_IEEE_F32LE); + H5Tcommit2(group_id, "Datatype1", type_id, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); + + space_id = H5Screate_simple(1, dims, NULL); + + dset1_id = + H5Dcreate2(group_id, "Dataset1", H5T_STD_U32LE, space_id, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); + H5Dwrite(dset1_id, H5T_STD_U32LE, H5S_ALL, H5S_ALL, H5P_DEFAULT, data1); + + dset2_id = + H5Dcreate2(group_id, "Dataset2", H5T_STD_U8LE, space_id, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); + H5Dwrite(dset2_id, H5T_STD_U8LE, H5S_ALL, H5S_ALL, H5P_DEFAULT, data2); + + dset3_id = H5Dcreate2(file_id, "Dataset3", H5T_STD_REF, space_id, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); + H5Rcreate_object(file_id, "/Group1/Dataset1", H5P_DEFAULT, &ref_data3[0]); + H5Dwrite(dset3_id, H5T_STD_REF, H5S_ALL, H5S_ALL, H5P_DEFAULT, ref_data3); + + dset4_id = + H5Dcreate2(file_id, "Dataset4", H5T_STD_REF_OBJ, space_id, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); + H5Rcreate(&ref_data4[0], file_id, "/Group1/Dataset1", H5R_OBJECT, -1); + H5Dwrite(dset4_id, H5T_STD_REF_OBJ, H5S_ALL, H5S_ALL, H5P_DEFAULT, ref_data4); + + dset5_id = H5Dcreate2(file_id, "Dataset5", H5T_STD_REF, space_id, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); + H5Sselect_none(space_id); + H5Rcreate_region(file_id, "/Group1/Dataset1", space_id, H5P_DEFAULT, &ref_data5[0]); + H5Dwrite(dset5_id, H5T_STD_REF, H5S_ALL, H5S_ALL, H5P_DEFAULT, ref_data5); + + dset6_id = + H5Dcreate2(file_id, "Dataset6", H5T_STD_REF_DSETREG, space_id, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); + H5Rcreate(&ref_data6[0], file_id, "/Group1/Dataset1", H5R_DATASET_REGION, space_id); + H5Dwrite(dset6_id, H5T_STD_REF_DSETREG, H5S_ALL, H5S_ALL, H5P_DEFAULT, ref_data6); + + H5Rdestroy(&ref_data3[0]); + H5Rdestroy(&ref_data5[0]); + + H5Dclose(dset1_id); + H5Dclose(dset2_id); + H5Dclose(dset3_id); + H5Dclose(dset4_id); + H5Dclose(dset5_id); + H5Dclose(dset6_id); + H5Tclose(type_id); + H5Sclose(space_id); + H5Gclose(group_id); + H5Fclose(file_id); +} + +void +gent_trefer_param(void) +{ + hid_t file_id = H5I_INVALID_HID; + hid_t group_id = H5I_INVALID_HID; + hid_t type_id = H5I_INVALID_HID; + hid_t space_id = H5I_INVALID_HID; + hid_t dset1_id = H5I_INVALID_HID; + hid_t dset2_id = H5I_INVALID_HID; + hid_t dset3_id = H5I_INVALID_HID; + hid_t attr_id = H5I_INVALID_HID; + hsize_t dims[1] = {4}; + uint32_t data1[4] = {0, 3, 6, 9}; + uint8_t data2[4] = {0, 0, 0, 0}; + H5R_ref_t ref_data[4]; + + file_id = H5Fcreate(FILE104, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT); + + group_id = H5Gcreate2(file_id, "Group1", H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); + + H5Oset_comment(group_id, "Foo!"); + + space_id = H5Screate_simple(1, dims, NULL); + + dset1_id = + H5Dcreate2(group_id, "Dataset1", H5T_STD_U32LE, space_id, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); + H5Dwrite(dset1_id, H5T_STD_U32LE, H5S_ALL, H5S_ALL, H5P_DEFAULT, data1); + + dset2_id = + H5Dcreate2(group_id, "Dataset2", H5T_STD_U8LE, space_id, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); + H5Dwrite(dset2_id, H5T_STD_U8LE, H5S_ALL, H5S_ALL, H5P_DEFAULT, data2); + + attr_id = H5Acreate2(dset2_id, "Attr", H5T_STD_U32LE, space_id, H5P_DEFAULT, H5P_DEFAULT); + H5Awrite(attr_id, H5T_STD_U32LE, data1); + H5Aclose(attr_id); + + type_id = H5Tcreate(H5T_COMPOUND, sizeof(int) * 2 + sizeof(float)); + H5Tinsert(type_id, "a", 0, H5T_STD_I32LE); + H5Tinsert(type_id, "b", sizeof(int), H5T_STD_I32LE); + H5Tinsert(type_id, "c", sizeof(int) * 2, H5T_IEEE_F32LE); + H5Tcommit2(group_id, "Datatype1", type_id, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); + + dset3_id = H5Dcreate2(file_id, "Dataset3", H5T_STD_REF, space_id, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); + + memset(ref_data, 0, sizeof(ref_data)); + H5Dwrite(dset3_id, H5T_STD_REF, H5S_ALL, H5S_ALL, H5P_DEFAULT, ref_data); + + H5Dclose(dset1_id); + H5Dclose(dset2_id); + H5Dclose(dset3_id); + H5Tclose(type_id); + H5Sclose(space_id); + H5Gclose(group_id); + H5Fclose(file_id); +} + +void +gent_trefer_reg(void) +{ + hid_t file_id = H5I_INVALID_HID; + hid_t space_id = H5I_INVALID_HID; + hid_t dset1_id = H5I_INVALID_HID; + hid_t dset2_id = H5I_INVALID_HID; + hid_t dset_na_id = H5I_INVALID_HID; + hid_t space2_id = H5I_INVALID_HID; + hsize_t dims1[1] = {4}; + hsize_t dims2[2] = {10, 10}; + hsize_t dims_na[1] = {1}; + hsize_t start[2] = {2, 2}; + hsize_t count[2] = {6, 6}; + hsize_t coord[10][2] = {{6, 9}, {2, 2}, {8, 4}, {1, 6}, {2, 8}, {3, 2}, {0, 4}, {9, 0}, {7, 1}, {3, 3}}; + uint8_t data2[10][10]; + H5R_ref_t ref_data[4]; + H5R_ref_t null_ref; + int i, j, n; + + for (i = 0, n = 0; i < 10; i++) + for (j = 0; j < 10; j++, n += 3) + data2[i][j] = (uint8_t)(n % 256); + + file_id = H5Fcreate(FILE105, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT); + + space2_id = H5Screate_simple(2, dims2, NULL); + dset2_id = + H5Dcreate2(file_id, "Dataset2", H5T_STD_U8LE, space2_id, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); + H5Dwrite(dset2_id, H5T_STD_U8LE, H5S_ALL, H5S_ALL, H5P_DEFAULT, data2); + + space_id = H5Screate_simple(1, dims1, NULL); + dset1_id = H5Dcreate2(file_id, "Dataset1", H5T_STD_REF, space_id, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); + + H5Sselect_hyperslab(space2_id, H5S_SELECT_SET, start, NULL, count, NULL); + H5Rcreate_region(file_id, "/Dataset2", space2_id, H5P_DEFAULT, &ref_data[0]); + + H5Sselect_none(space2_id); + H5Sselect_elements(space2_id, H5S_SELECT_SET, 10, (const hsize_t *)coord); + H5Rcreate_region(file_id, "/Dataset2", space2_id, H5P_DEFAULT, &ref_data[1]); + + H5Sselect_none(space2_id); + H5Rcreate_region(file_id, "/Dataset2", space2_id, H5P_DEFAULT, &ref_data[2]); + H5Rcreate_region(file_id, "/Dataset2", space2_id, H5P_DEFAULT, &ref_data[3]); + + H5Dwrite(dset1_id, H5T_STD_REF, H5S_ALL, H5S_ALL, H5P_DEFAULT, ref_data); + + space_id = H5Screate_simple(1, dims_na, NULL); + dset_na_id = H5Dcreate2(file_id, "DS_NA", H5T_STD_REF, space_id, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); + + memset(&null_ref, 0, sizeof(null_ref)); + H5Dwrite(dset_na_id, H5T_STD_REF, H5S_ALL, H5S_ALL, H5P_DEFAULT, &null_ref); + + H5Rdestroy(&ref_data[0]); + H5Rdestroy(&ref_data[1]); + H5Rdestroy(&ref_data[2]); + H5Rdestroy(&ref_data[3]); + + H5Sclose(space_id); + H5Sclose(space2_id); + H5Dclose(dset1_id); + H5Dclose(dset2_id); + H5Dclose(dset_na_id); + H5Fclose(file_id); +} + +void +gent_trefer_reg_1d(void) +{ + hid_t file_id = H5I_INVALID_HID; + hid_t space_id = H5I_INVALID_HID; + hid_t dset1_id = H5I_INVALID_HID; + hid_t dset2_id = H5I_INVALID_HID; + hid_t dspace_id = H5I_INVALID_HID; + hsize_t dims[1] = {100}; + hsize_t dims_ref[1] = {2}; + unsigned char data[100]; + H5R_ref_t refs[2]; + hsize_t start[1] = {2}; + hsize_t stride[1] = {5}; + hsize_t count[1] = {15}; + hsize_t block[1] = {2}; + hsize_t coord[10] = {16, 22, 38, 41, 52, 63, 70, 89, 97, 3}; + + file_id = H5Fcreate(FILE106, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT); + + for (int i = 0; i < 100; i++) { + data[i] = (unsigned char)(i * 3 % 256); + } + + space_id = H5Screate_simple(1, dims, NULL); + dset2_id = H5Dcreate2(file_id, "Dataset2", H5T_STD_U8LE, space_id, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); + H5Dwrite(dset2_id, H5T_NATIVE_UCHAR, H5S_ALL, H5S_ALL, H5P_DEFAULT, data); + + H5Sselect_hyperslab(space_id, H5S_SELECT_SET, start, stride, count, block); + H5Rcreate_region(file_id, "Dataset2", space_id, H5P_DEFAULT, &refs[0]); + + H5Sselect_none(space_id); + H5Sselect_elements(space_id, H5S_SELECT_SET, 10, coord); + H5Rcreate_region(file_id, "Dataset2", space_id, H5P_DEFAULT, &refs[1]); + dspace_id = H5Screate_simple(1, dims_ref, NULL); + + dset1_id = H5Dcreate2(file_id, "Dataset1", H5T_STD_REF, dspace_id, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); + H5Dwrite(dset1_id, H5T_STD_REF, H5S_ALL, H5S_ALL, H5P_DEFAULT, refs); + + H5Rdestroy(&refs[0]); + H5Rdestroy(&refs[1]); + H5Sclose(dspace_id); + H5Sclose(space_id); + H5Dclose(dset1_id); + H5Dclose(dset2_id); + H5Fclose(file_id); + + return; +} diff --git a/tools/test/h5dump/h5dumpgentest.h b/tools/test/h5dump/h5dumpgentest.h index 1bfa8469bc6..4814d508484 100644 --- a/tools/test/h5dump/h5dumpgentest.h +++ b/tools/test/h5dump/h5dumpgentest.h @@ -125,4 +125,14 @@ void gent_float16_be(void); void gent_complex(void); void gent_complex_be(void); +void gent_trefer_attr(void); +void gent_tattr4_be(void); +void gent_tno_subset(void); +void gent_trefer_compat(void); +void gent_trefer_grp(void); +void gent_trefer_obj_del(void); +void gent_trefer_obj(void); +void gent_trefer_param(void); +void gent_trefer_reg(void); +void gent_trefer_reg_1d(void); #endif /* H5DUMP_GENTEST_H */ \ No newline at end of file diff --git a/tools/test/h5dump/testfiles/tudfilter.h5 b/tools/test/h5dump/testfiles/tudfilter.h5 deleted file mode 100644 index 081b0004878..00000000000 Binary files a/tools/test/h5dump/testfiles/tudfilter.h5 and /dev/null differ diff --git a/tools/test/h5format_convert/CMakeTests.cmake b/tools/test/h5format_convert/CMakeTests.cmake index 9483d178423..ec3e6ea34d6 100644 --- a/tools/test/h5format_convert/CMakeTests.cmake +++ b/tools/test/h5format_convert/CMakeTests.cmake @@ -84,7 +84,7 @@ endforeach () foreach (h5_file ${HDF5_REFERENCE_TEST_FILES}) - HDFTEST_COPY_FILE("${PROJECT_SOURCE_DIR}/testfiles/${h5_file}" "${PROJECT_BINARY_DIR}/testfiles/${h5_file}" "h5fc_files") + HDFTEST_COPY_FILE("${HDF5_TOOLS_TST_DIR}/testfiles/${h5_file}" "${PROJECT_BINARY_DIR}/testfiles/${h5_file}" "h5fc_files") endforeach () add_custom_target(h5fc_files ALL COMMENT "Copying files needed by h5fc tests" DEPENDS ${h5fc_files_list}) @@ -104,7 +104,7 @@ if (${testfile}) add_test ( NAME H5FC-${testname}-${testfile}-tmpfile - COMMAND ${CMAKE_COMMAND} -E copy_if_different ${HDF5_TOOLS_TEST_H5FC_SOURCE_DIR}/testfiles/${testfile} ./testfiles/${testname}-tmp.h5 + COMMAND ${CMAKE_COMMAND} -E copy_if_different ${HDF5_TOOLS_TST_DIR}/testfiles/${testfile} ./testfiles/${testname}-tmp.h5 ) set_tests_properties (H5FC-${testname}-${testfile}-tmpfile PROPERTIES DEPENDS H5FC-${testname}-${testfile}-clear-objects @@ -168,7 +168,7 @@ ) add_test ( NAME H5FC-${testname}-${testfile}-tmpfile - COMMAND ${CMAKE_COMMAND} -E copy_if_different ${HDF5_TOOLS_TEST_H5FC_SOURCE_DIR}/testfiles/${testfile} ./testfiles/${testname}-tmp.h5 + COMMAND ${CMAKE_COMMAND} -E copy_if_different ${HDF5_TOOLS_TST_DIR}/testfiles/${testfile} ./testfiles/${testname}-tmp.h5 ) set_tests_properties (H5FC-${testname}-${testfile}-tmpfile PROPERTIES DEPENDS H5FC-${testname}-${testfile}-clear-object @@ -210,7 +210,7 @@ ) add_test ( NAME H5FC-${testname}-${testfile}-tmpfile - COMMAND ${CMAKE_COMMAND} -E copy_if_different ${HDF5_TOOLS_TEST_H5FC_SOURCE_DIR}/testfiles/${testfile} ./testfiles/${testname}-tmp.h5 + COMMAND ${CMAKE_COMMAND} -E copy_if_different ${HDF5_TOOLS_TST_DIR}/testfiles/${testfile} ./testfiles/${testname}-tmp.h5 ) set_tests_properties (H5FC-${testname}-${testfile}-tmpfile PROPERTIES DEPENDS H5FC-${testname}-${testfile}-clear-objects @@ -265,7 +265,7 @@ ) add_test ( NAME H5FC-${testname}-tmpfile - COMMAND ${CMAKE_COMMAND} -E copy_if_different ${HDF5_TOOLS_TEST_H5FC_SOURCE_DIR}/testfiles/${testfile} ./testfiles/${testname}-tmp.h5 + COMMAND ${CMAKE_COMMAND} -E copy_if_different ${HDF5_TOOLS_TST_DIR}/testfiles/${testfile} ./testfiles/${testname}-tmp.h5 ) set_tests_properties (H5FC-${testname}-tmpfile PROPERTIES FIXTURES_REQUIRED clear_H5FC-${testname} @@ -319,7 +319,7 @@ ) add_test ( NAME H5FC_TEST_CHECK_IDX-${testname}-tmpfile - COMMAND ${CMAKE_COMMAND} -E copy_if_different ${HDF5_TOOLS_TEST_H5FC_SOURCE_DIR}/testfiles/${testfile} ./testfiles/${testname}-tmp.h5 + COMMAND ${CMAKE_COMMAND} -E copy_if_different ${HDF5_TOOLS_TST_DIR}/testfiles/${testfile} ./testfiles/${testname}-tmp.h5 ) set_tests_properties (H5FC_TEST_CHECK_IDX-${testname}-tmpfile PROPERTIES DEPENDS "H5FC_TEST_CHECK_IDX-${testname}-clear-objects" @@ -373,7 +373,7 @@ ) add_test ( NAME H5FC_H5DUMP_CHECK-${testname}-tmpfile - COMMAND ${CMAKE_COMMAND} -E copy_if_different ${HDF5_TOOLS_TEST_H5FC_SOURCE_DIR}/testfiles/${testname}.h5 ./testfiles/${testname}-tmp.h5 + COMMAND ${CMAKE_COMMAND} -E copy_if_different ${HDF5_TOOLS_TST_DIR}/testfiles/${testname}.h5 ./testfiles/${testname}-tmp.h5 ) set_tests_properties (H5FC_H5DUMP_CHECK-${testname}-tmpfile PROPERTIES DEPENDS "H5FC_H5DUMP_CHECK-${testname}-clear-objects" diff --git a/tools/test/h5gentest.c b/tools/test/h5gentest.c index 7e26d24f630..0f92bc0fb9e 100644 --- a/tools/test/h5gentest.c +++ b/tools/test/h5gentest.c @@ -22,6 +22,7 @@ #include "h5repackgentest.h" #include "h5statgentest.h" #include "h5repartgentest.h" +#include "h5lsgentest.h" static int gen_h5copy_files(void) @@ -262,6 +263,17 @@ gen_h5dump_files(void) gent_complex_be(); #endif + gent_trefer_attr(); + gent_tattr4_be(); + gent_tno_subset(); + gent_trefer_compat(); + gent_trefer_grp(); + gent_trefer_obj_del(); + gent_trefer_obj(); + gent_trefer_param(); + gent_trefer_reg(); + gent_trefer_reg_1d(); + return nerrors; } @@ -379,6 +391,54 @@ gen_h5repart_files(void) return EXIT_SUCCESS; } +static int +gen_h5ls_files(void) +{ + int nerrors = 0; + + gent_udfilter(H5LS_UDFILTER_FILE); + + gent_all(); + gent_group(); + gent_dataset(); + gent_softlink(); + gent_softlink2(); + gent_str(); + + gent_vldatatypes(); + gent_compound_dt(); + gent_datareg(); + gent_empty(); + gent_hardlink(); + gent_loop(); + gent_nestcomp(); + + gent_group_comments(); + gent_array1(); + gent_attr_all(); + gent_attrreg(); + + gent_extlink(); + gent_extlinks(); + gent_null_space_group(); + + gent_udlink(); + +#ifdef H5_HAVE__FLOAT_16 + gent_float16(); + gent_float16_be(); +#endif +#ifdef H5_HAVE_COMPLEX_NUMBERS + gent_complex(); + gent_complex_be(); +#endif + + nerrors += (gent_tdset() < 0 ? 1 : 0); + gent_dataset_idx(); + + return nerrors; +} + /*------------------------------------------------------------------------- * Function: usage * @@ -404,6 +464,7 @@ usage(void) printf(" --h5repack Generate h5repack test files\n"); printf(" --h5stat Generate h5stat test files\n"); printf(" --h5repart Generate h5repart test files\n"); + printf(" --h5ls Generate h5ls test files\n"); return; } @@ -414,29 +475,24 @@ int main(int argc, char *argv[]) { /* command-line options: short and long-named parameters */ - static const char *s_opts = "hacdufjrsp"; - static struct h5_long_options l_opts[] = {{"help", no_arg, 'h'}, - {"all", no_arg, 'a'}, - {"h5copy", no_arg, 'c'}, - {"h5diff", no_arg, 'd'}, - {"h5dump", no_arg, 'u'}, - {"h5fc", no_arg, 'f'}, - {"h5jam", no_arg, 'j'}, - {"h5repack", no_arg, 'r'}, - {"h5stat", no_arg, 's'}, - {"h5repart", no_arg, 'p'}, - {NULL, 0, 0}}; - int i; - int opt; - bool run_all = false; - bool run_h5copy = false; - bool run_h5diff = false; - bool run_h5dump = false; - bool run_h5fc = false; - bool run_h5jam = false; - bool run_h5repack = false; - bool run_h5stat = false; - bool run_h5repart = false; + static const char *s_opts = "hacdufjrspl"; + static struct h5_long_options l_opts[] = { + {"help", no_arg, 'h'}, {"all", no_arg, 'a'}, {"h5copy", no_arg, 'c'}, + {"h5diff", no_arg, 'd'}, {"h5dump", no_arg, 'u'}, {"h5fc", no_arg, 'f'}, + {"h5jam", no_arg, 'j'}, {"h5repack", no_arg, 'r'}, {"h5stat", no_arg, 's'}, + {"h5repart", no_arg, 'p'}, {"h5ls", no_arg, 'l'}, {NULL, 0, 0}}; + int i; + int opt; + bool run_all = false; + bool run_h5copy = false; + bool run_h5diff = false; + bool run_h5dump = false; + bool run_h5fc = false; + bool run_h5jam = false; + bool run_h5repack = false; + bool run_h5stat = false; + bool run_h5repart = false; + bool run_h5ls = false; /* Check for no command line parameters */ if (argc == 1) { @@ -476,6 +532,8 @@ main(int argc, char *argv[]) case 'p': run_h5repart = true; break; + case 'l': + run_h5ls = true; default: continue; } @@ -483,7 +541,7 @@ main(int argc, char *argv[]) } if (!run_all && !run_h5copy && !run_h5diff && !run_h5dump && !run_h5fc && !run_h5jam && !run_h5repack && - !run_h5stat && !run_h5repart) { + !run_h5stat && !run_h5repart && !run_h5ls) { usage(); return EXIT_FAILURE; } @@ -498,6 +556,7 @@ main(int argc, char *argv[]) gen_h5repack_files(); gen_h5stat_files(); gen_h5repart_files(); + gen_h5ls_files(); } else { if (run_h5copy) { @@ -524,6 +583,9 @@ main(int argc, char *argv[]) if (run_h5repart) { gen_h5repart_files(); } + if (run_h5ls) { + gen_h5ls_files(); + } } return EXIT_SUCCESS; diff --git a/tools/test/h5import/CMakeTests.cmake b/tools/test/h5import/CMakeTests.cmake index 6e6c960f6db..5944d2eb38b 100644 --- a/tools/test/h5import/CMakeTests.cmake +++ b/tools/test/h5import/CMakeTests.cmake @@ -88,11 +88,11 @@ endforeach () foreach (h5_file ${HDF5_REFERENCE_TEST_FILES}) - HDFTEST_COPY_FILE("${PROJECT_SOURCE_DIR}/testfiles/${h5_file}" "${PROJECT_BINARY_DIR}/testfiles/${h5_file}" "h5import_files") + HDFTEST_COPY_FILE("${HDF5_TOOLS_TST_DIR}/testfiles/${h5_file}" "${PROJECT_BINARY_DIR}/testfiles/${h5_file}" "h5import_files") endforeach () foreach (h5_file ${HDF5_TOOLS_TEST_FILES}) - HDFTEST_COPY_FILE("${HDF5_TOOLS_TST_DIR}/h5dump/testfiles/${h5_file}" "${PROJECT_BINARY_DIR}/testfiles/${h5_file}" "h5import_files") + HDFTEST_COPY_FILE("${HDF5_TOOLS_TST_DIR}/testfiles/${h5_file}" "${PROJECT_BINARY_DIR}/testfiles/${h5_file}" "h5import_files") endforeach () add_custom_target(h5import_files ALL COMMENT "Copying files needed by h5import tests" DEPENDS ${h5import_files_list}) diff --git a/tools/test/h5jam/CMakeTests.cmake b/tools/test/h5jam/CMakeTests.cmake index 60f3532f5a0..d5da659d488 100644 --- a/tools/test/h5jam/CMakeTests.cmake +++ b/tools/test/h5jam/CMakeTests.cmake @@ -33,7 +33,7 @@ file (MAKE_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles") foreach (h5_file ${HDF5_REFERENCE_TEST_FILES}) - HDFTEST_COPY_FILE("${PROJECT_SOURCE_DIR}/testfiles/${h5_file}" "${PROJECT_BINARY_DIR}/testfiles/${h5_file}" "h5jam_files") + HDFTEST_COPY_FILE("${HDF5_TOOLS_TST_DIR}/testfiles/${h5_file}" "${PROJECT_BINARY_DIR}/testfiles/${h5_file}" "h5jam_files") endforeach () foreach (txt_file ${HDF5_REFERENCE_TXT_FILES}) @@ -157,7 +157,7 @@ ) add_test ( NAME H5JAM-${testname}-UNJAM-SETUP - COMMAND ${CMAKE_COMMAND} -E copy_if_different ${HDF5_TOOLS_TEST_H5JAM_SOURCE_DIR}/testfiles/${setfile} ${PROJECT_BINARY_DIR}/${infile} + COMMAND ${CMAKE_COMMAND} -E copy_if_different ${HDF5_TOOLS_TST_DIR}/testfiles/${setfile} ${PROJECT_BINARY_DIR}/${infile} ) set_tests_properties (H5JAM-${testname}-UNJAM-SETUP PROPERTIES DEPENDS H5JAM-${testname}-UNJAM-SETUP-clear-objects) add_test ( diff --git a/tools/test/h5jam/testfiles/tall.h5 b/tools/test/h5jam/testfiles/tall.h5 deleted file mode 100644 index 918aeeeda41..00000000000 Binary files a/tools/test/h5jam/testfiles/tall.h5 and /dev/null differ diff --git a/tools/test/h5ls/CMakeTests.cmake b/tools/test/h5ls/CMakeTests.cmake index 5d1243923d7..27d6272f109 100644 --- a/tools/test/h5ls/CMakeTests.cmake +++ b/tools/test/h5ls/CMakeTests.cmake @@ -132,10 +132,10 @@ # copy the list of test files foreach (listlsfiles ${LIST_HDF5_TESTLS_FILES}) - HDFTEST_COPY_FILE("${PROJECT_SOURCE_DIR}/testfiles/${listlsfiles}" "${PROJECT_BINARY_DIR}/testfiles/${listlsfiles}" "h5ls_files") + HDFTEST_COPY_FILE("${HDF5_TOOLS_TST_DIR}/testfiles/${listlsfiles}" "${PROJECT_BINARY_DIR}/testfiles/${listlsfiles}" "h5ls_files") endforeach () foreach (listfiles ${LIST_HDF5_TEST_FILES}) - HDFTEST_COPY_FILE("${HDF5_TOOLS_TST_DIR}/h5dump/testfiles/${listfiles}" "${PROJECT_BINARY_DIR}/testfiles/${listfiles}" "h5ls_files") + HDFTEST_COPY_FILE("${HDF5_TOOLS_TST_DIR}/testfiles/${listfiles}" "${PROJECT_BINARY_DIR}/testfiles/${listfiles}" "h5ls_files") endforeach () foreach (listothers ${LIST_OTHER_TEST_FILES}) HDFTEST_COPY_FILE("${PROJECT_SOURCE_DIR}/expected/${listothers}" "${PROJECT_BINARY_DIR}/testfiles/${listothers}" "h5ls_files") diff --git a/tools/test/h5ls/CMakeTestsVDS.cmake b/tools/test/h5ls/CMakeTestsVDS.cmake index c8b31db42d2..9bb86617c40 100644 --- a/tools/test/h5ls/CMakeTestsVDS.cmake +++ b/tools/test/h5ls/CMakeTestsVDS.cmake @@ -58,7 +58,7 @@ # copy the list of test files foreach (listfiles ${LIST_HDF5_TEST_FILES}) - HDFTEST_COPY_FILE("${HDF5_TOOLS_TST_DIR}/h5dump/testfiles/vds/${listfiles}" "${PROJECT_BINARY_DIR}/testfiles/vds/${listfiles}" "h5ls_vds_files") + HDFTEST_COPY_FILE("${HDF5_TOOLS_TST_DIR}/testfiles/vds/${listfiles}" "${PROJECT_BINARY_DIR}/testfiles/vds/${listfiles}" "h5ls_vds_files") endforeach () foreach (listothers ${LIST_OTHER_TEST_FILES}) @@ -66,7 +66,7 @@ endforeach () foreach (listfiles ${LIST_HDF5_TEST_FILES}) - HDFTEST_COPY_FILE("${HDF5_TOOLS_TST_DIR}/h5dump/testfiles/vds/${listfiles}" "${PROJECT_BINARY_DIR}/testfiles/vds/prefix/${listfiles}" "h5ls_vds_files") + HDFTEST_COPY_FILE("${HDF5_TOOLS_TST_DIR}/testfiles/vds/${listfiles}" "${PROJECT_BINARY_DIR}/testfiles/vds/prefix/${listfiles}" "h5ls_vds_files") endforeach () foreach (listothers ${LIST_OTHER_TEST_FILES}) diff --git a/tools/test/h5ls/h5lsgentest.c b/tools/test/h5ls/h5lsgentest.c new file mode 100644 index 00000000000..6a04f25e3d9 --- /dev/null +++ b/tools/test/h5ls/h5lsgentest.c @@ -0,0 +1,104 @@ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * Copyright by The HDF Group. * + * All rights reserved. * + * * + * This file is part of HDF5. The full HDF5 copyright notice, including * + * terms governing use, modification, and redistribution, is contained in * + * the LICENSE file, which can be found at the root of the source code * + * distribution tree, or in https://www.hdfgroup.org/licenses. * + * If you do not have access to either file, you may request a copy from * + * help@hdfgroup.org. * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + +#include "hdf5.h" +#include "H5private.h" +#include "h5lsgentest.h" + +#define TDSET_FILENAME "tdset2.h5" + +herr_t +gent_tdset(void) +{ + hid_t file_id, dataset1_id, dataset2_id; + hid_t dataspace1_id, dataspace2_id; + hid_t datatype1_id, datatype2_id; + hid_t plist_id; + hsize_t dims1[2] = {10, 20}; + hsize_t maxdims1[2] = {H5S_UNLIMITED, 20}; + hsize_t dims2[2] = {30, 10}; + hsize_t maxdims2[2] = {30, H5S_UNLIMITED}; + hsize_t chunk_dims[2] = {5, 5}; + int i, j; + int data1[10][20]; + double data2[30][10]; + herr_t status = SUCCEED; + + /* Initialize data for dataset 1 */ + for (i = 0; i < 10; i++) { + for (j = 0; j < 20; j++) { + data1[i][j] = j; + } + } + + /* Initialize data for dataset 2 */ + for (i = 0; i < 30; i++) { + for (j = 0; j < 10; j++) { + data2[i][j] = (double)j; + } + } + + /* Create a new file using default properties */ + file_id = H5Fcreate(TDSET_FILENAME, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT); + + /* Create the data space for the first dataset */ + dataspace1_id = H5Screate_simple(2, dims1, maxdims1); + + /* Create the data space for the second dataset */ + dataspace2_id = H5Screate_simple(2, dims2, maxdims2); + + /* Create the dataset creation property list */ + plist_id = H5Pcreate(H5P_DATASET_CREATE); + + /* Set the chunk size */ + status = H5Pset_chunk(plist_id, 2, chunk_dims); + + /* Create the datatype for the first dataset (32-bit big-endian integer) */ + datatype1_id = H5Tcopy(H5T_STD_I32BE); + + /* Create the datatype for the second dataset (64-bit big-endian float) */ + datatype2_id = H5Tcopy(H5T_IEEE_F64BE); + + /* Create the first dataset */ + dataset1_id = + H5Dcreate2(file_id, "dset1", datatype1_id, dataspace1_id, H5P_DEFAULT, plist_id, H5P_DEFAULT); + + /* Write the first dataset */ + status = H5Dwrite(dataset1_id, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT, data1); + + /* Create the second dataset */ + dataset2_id = + H5Dcreate2(file_id, "dset2", datatype2_id, dataspace2_id, H5P_DEFAULT, plist_id, H5P_DEFAULT); + + /* Write the second dataset */ + status = H5Dwrite(dataset2_id, H5T_NATIVE_DOUBLE, H5S_ALL, H5S_ALL, H5P_DEFAULT, data2); + + /* Close the datasets */ + status = H5Dclose(dataset1_id); + status = H5Dclose(dataset2_id); + + /* Close the datatypes */ + status = H5Tclose(datatype1_id); + status = H5Tclose(datatype2_id); + + /* Close the dataspaces */ + status = H5Sclose(dataspace1_id); + status = H5Sclose(dataspace2_id); + + /* Close the property list */ + status = H5Pclose(plist_id); + + /* Close the file */ + status = H5Fclose(file_id); + + return status; +} \ No newline at end of file diff --git a/tools/test/h5ls/h5lsgentest.h b/tools/test/h5ls/h5lsgentest.h new file mode 100644 index 00000000000..c1cdebfb512 --- /dev/null +++ b/tools/test/h5ls/h5lsgentest.h @@ -0,0 +1,22 @@ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * Copyright by The HDF Group. * + * All rights reserved. * + * * + * This file is part of HDF5. The full HDF5 copyright notice, including * + * terms governing use, modification, and redistribution, is contained in * + * the LICENSE file, which can be found at the root of the source code * + * distribution tree, or in https://www.hdfgroup.org/licenses. * + * If you do not have access to either file, you may request a copy from * + * help@hdfgroup.org. * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + +#ifndef H5LS_GENTEST_H +#define H5LS_GENTEST_H + +#include "hdf5.h" + +#define H5LS_UDFILTER_FILE "tudfilter.h5" + +herr_t gent_tdset(void); + +#endif /* H5LS_GENTEST_H */ \ No newline at end of file diff --git a/tools/test/h5repack/CMakeTests.cmake b/tools/test/h5repack/CMakeTests.cmake index 36b6b4bbe82..2307b2568b9 100644 --- a/tools/test/h5repack/CMakeTests.cmake +++ b/tools/test/h5repack/CMakeTests.cmake @@ -19,7 +19,19 @@ # -------------------------------------------------------------------- # Copy all the HDF5 files from the source directory into the test directory # -------------------------------------------------------------------- - set (LIST_REPACK_TEST_FILES + set(LIST_REPACK_TEST_FILES + h5repack_f32le_ex-0.dat + h5repack_int32le_1d_ex-0.dat + h5repack_int32le_1d_ex-1.dat + h5repack_int32le_2d_ex-0.dat + h5repack_int32le_3d_ex-0.dat + h5repack_uint8be_ex-0.dat + h5repack_uint8be_ex-1.dat + h5repack_uint8be_ex-2.dat + h5repack_uint8be_ex-3.dat + ) + + set (LIST_REPACK_HDF5_TEST_FILES bounds_latest_latest.h5 h5repack_attr.h5 h5repack_attr_refs.h5 @@ -27,21 +39,16 @@ h5repack_early.h5 h5repack_ext.h5 h5repack_f32le.h5 - h5repack_f32le_ex-0.dat h5repack_f32le_ex.h5 h5repack_fill.h5 h5repack_filters.h5 h5repack_fletcher.h5 h5repack_hlink.h5 h5repack_int32le_1d.h5 - h5repack_int32le_1d_ex-0.dat - h5repack_int32le_1d_ex-1.dat h5repack_int32le_1d_ex.h5 h5repack_int32le_2d.h5 - h5repack_int32le_2d_ex-0.dat h5repack_int32le_2d_ex.h5 h5repack_int32le_3d.h5 - h5repack_int32le_3d_ex-0.dat h5repack_int32le_3d_ex.h5 h5repack_layout.h5 h5repack_layouto.h5 @@ -60,10 +67,6 @@ h5repack_soffset.h5 h5repack_szip.h5 h5repack_uint8be.h5 - h5repack_uint8be_ex-0.dat - h5repack_uint8be_ex-1.dat - h5repack_uint8be_ex-2.dat - h5repack_uint8be_ex-3.dat h5repack_uint8be_ex.h5 # fsm h5repack_aggr.h5 @@ -207,24 +210,28 @@ h5copy_extlinks_src-mergeprune.h5copy_extlinks_src.h5.ddl ) - foreach (h5_file ${LIST_REPACK_TEST_FILES}) + foreach (h5_file ${LIST_REPACK_HDF5_TEST_FILES}) + HDFTEST_COPY_FILE("${HDF5_TOOLS_TST_DIR}/testfiles/${h5_file}" "${PROJECT_BINARY_DIR}/testfiles/${h5_file}" "h5repack_files") + endforeach () + + foreach(h5_file ${LIST_REPACK_TEST_FILES}) HDFTEST_COPY_FILE("${PROJECT_SOURCE_DIR}/testfiles/${h5_file}" "${PROJECT_BINARY_DIR}/testfiles/${h5_file}" "h5repack_files") endforeach () foreach (h5_file ${LIST_COPY_TEST_FILES}) - HDFTEST_COPY_FILE("${HDF5_TOOLS_TST_DIR}/h5copy/testfiles/${h5_file}" "${PROJECT_BINARY_DIR}/testfiles/${h5_file}" "h5repack_files") + HDFTEST_COPY_FILE("${HDF5_TOOLS_TST_DIR}/testfiles/${h5_file}" "${PROJECT_BINARY_DIR}/testfiles/${h5_file}" "h5repack_files") endforeach () foreach (h5_file ${LIST_DIFF_TEST_FILES}) - HDFTEST_COPY_FILE("${HDF5_TOOLS_TST_DIR}/h5diff/testfiles/${h5_file}" "${PROJECT_BINARY_DIR}/testfiles/${h5_file}" "h5repack_files") + HDFTEST_COPY_FILE("${HDF5_TOOLS_TST_DIR}/testfiles/${h5_file}" "${PROJECT_BINARY_DIR}/testfiles/${h5_file}" "h5repack_files") endforeach () foreach (h5_file ${LIST_VDS_TEST_FILES}) - HDFTEST_COPY_FILE("${HDF5_TOOLS_TST_DIR}/h5dump/testfiles/vds/${h5_file}" "${PROJECT_BINARY_DIR}/testfiles/${h5_file}" "h5repack_files") + HDFTEST_COPY_FILE("${HDF5_TOOLS_TST_DIR}/testfiles/vds/${h5_file}" "${PROJECT_BINARY_DIR}/testfiles/${h5_file}" "h5repack_files") endforeach () foreach (h5_file ${LIST_HDF5_TEST_FILES}) - HDFTEST_COPY_FILE("${HDF5_TOOLS_TST_DIR}/h5dump/testfiles/${h5_file}" "${PROJECT_BINARY_DIR}/testfiles/${h5_file}" "h5repack_files") + HDFTEST_COPY_FILE("${HDF5_TOOLS_TST_DIR}/testfiles/${h5_file}" "${PROJECT_BINARY_DIR}/testfiles/${h5_file}" "h5repack_files") endforeach () foreach (h5_file ${LIST_OTHER_TEST_FILES}) diff --git a/tools/test/h5stat/CMakeTests.cmake b/tools/test/h5stat/CMakeTests.cmake index 066f8eddd30..8e630c4ac2b 100644 --- a/tools/test/h5stat/CMakeTests.cmake +++ b/tools/test/h5stat/CMakeTests.cmake @@ -69,7 +69,7 @@ endforeach () foreach (h5_file ${HDF5_REFERENCE_TEST_FILES}) - HDFTEST_COPY_FILE("${PROJECT_SOURCE_DIR}/testfiles/${h5_file}" "${PROJECT_BINARY_DIR}/${h5_file}" "h5stat_files") + HDFTEST_COPY_FILE("${HDF5_TOOLS_TST_DIR}/testfiles/${h5_file}" "${PROJECT_BINARY_DIR}/${h5_file}" "h5stat_files") endforeach () add_custom_target(h5stat_files ALL COMMENT "Copying files needed by h5stat tests" DEPENDS ${h5stat_files_list}) diff --git a/tools/test/misc/CMakeTestsClear.cmake b/tools/test/misc/CMakeTestsClear.cmake index 2e83563eade..59a95dee1e6 100644 --- a/tools/test/misc/CMakeTestsClear.cmake +++ b/tools/test/misc/CMakeTestsClear.cmake @@ -60,17 +60,17 @@ ) foreach (h5_file ${HDF5_TEST_FILES} ${HDF5_SEC2_TEST_FILES}) - HDFTEST_COPY_FILE("${PROJECT_SOURCE_DIR}/testfiles/${h5_file}" "${PROJECT_BINARY_DIR}/testfiles/${h5_file}" "h5clear_files") + HDFTEST_COPY_FILE("${HDF5_TOOLS_TST_DIR}/testfiles/${h5_file}" "${PROJECT_BINARY_DIR}/testfiles/${h5_file}" "h5clear_files") endforeach () foreach (h5_file ${HDF5_REFERENCE_TEST_FILES}) HDFTEST_COPY_FILE("${PROJECT_SOURCE_DIR}/expected/${h5_file}" "${PROJECT_BINARY_DIR}/testfiles/${h5_file}" "h5clear_files") endforeach () # make second copy of h5clear_sec2.h5 foreach (h5_file ${HDF5_SEC2_TEST_FILES}) - HDFTEST_COPY_FILE("${PROJECT_SOURCE_DIR}/testfiles/${h5_file}" "${PROJECT_BINARY_DIR}/testfiles/orig_${h5_file}" "h5clear_files") + HDFTEST_COPY_FILE("${HDF5_TOOLS_TST_DIR}/testfiles/${h5_file}" "${PROJECT_BINARY_DIR}/testfiles/orig_${h5_file}" "h5clear_files") endforeach () # make second copy of mod_h5clear_mdc_image.h5 - HDFTEST_COPY_FILE("${PROJECT_SOURCE_DIR}/testfiles/mod_h5clear_mdc_image.h5" "${PROJECT_BINARY_DIR}/testfiles/mod_h5clear_mdc_image2.h5" "h5clear_files") + HDFTEST_COPY_FILE("${HDF5_TOOLS_TST_DIR}/testfiles/mod_h5clear_mdc_image.h5" "${PROJECT_BINARY_DIR}/testfiles/mod_h5clear_mdc_image2.h5" "h5clear_files") add_custom_target(h5clear_files ALL COMMENT "Copying files needed by h5clear tests" DEPENDS ${h5clear_files_list}) ############################################################################## @@ -227,7 +227,7 @@ add_test ( NAME H5CLEAR_FILESIZE_TEST-copy_${testname} COMMAND ${CMAKE_COMMAND} -E copy_if_different - "${PROJECT_SOURCE_DIR}/testfiles/${testname}.h5" "${PROJECT_BINARY_DIR}/testfiles/${testname}.h5" + "${HDF5_TOOLS_TST_DIR}/testfiles/${testname}.h5" "${PROJECT_BINARY_DIR}/testfiles/${testname}.h5" ) set_tests_properties (H5CLEAR_FILESIZE_TEST-copy_${testname} PROPERTIES DEPENDS H5CLEAR_FILESIZE_TEST-${testname}-clear-objects @@ -299,7 +299,7 @@ add_test ( NAME H5CLEAR_FILESIZE_FAIL_TEST-copy_${testname} COMMAND ${CMAKE_COMMAND} -E copy_if_different - "${PROJECT_SOURCE_DIR}/testfiles/${testname}.h5" "${PROJECT_BINARY_DIR}/testfiles/${testname}.h5" + "${HDF5_TOOLS_TST_DIR}/testfiles/${testname}.h5" "${PROJECT_BINARY_DIR}/testfiles/${testname}.h5" ) set_tests_properties (H5CLEAR_FILESIZE_FAIL_TEST-copy_${testname} PROPERTIES DEPENDS H5CLEAR_FILESIZE_FAIL_TEST-${testname}-clear-objects @@ -369,7 +369,7 @@ add_test ( NAME H5CLEAR-clr_open_chk-copy_${testname}.h5 COMMAND ${CMAKE_COMMAND} -E copy_if_different - "${PROJECT_SOURCE_DIR}/testfiles/${testfile}.h5" "${PROJECT_BINARY_DIR}/testfiles/${testfile}.h5" + "${HDF5_TOOLS_TST_DIR}/testfiles/${testfile}.h5" "${PROJECT_BINARY_DIR}/testfiles/${testfile}.h5" ) # Initial file open fails OR diff --git a/tools/test/misc/CMakeTestsRepart.cmake b/tools/test/misc/CMakeTestsRepart.cmake index 2c885ad0ccf..639ff934c50 100644 --- a/tools/test/misc/CMakeTestsRepart.cmake +++ b/tools/test/misc/CMakeTestsRepart.cmake @@ -41,7 +41,7 @@ ) foreach (h5_file ${HDF5_REFERENCE_TEST_FILES}) - HDFTEST_COPY_FILE("${PROJECT_SOURCE_DIR}/testfiles/${h5_file}" "${PROJECT_BINARY_DIR}/${h5_file}" "h5repart_files") + HDFTEST_COPY_FILE("${HDF5_TOOLS_TST_DIR}/testfiles/${h5_file}" "${PROJECT_BINARY_DIR}/${h5_file}" "h5repart_files") endforeach () add_custom_target(h5repart_files ALL COMMENT "Copying files needed by h5repart tests" DEPENDS ${h5repart_files_list}) diff --git a/tools/test/h5dump/testfiles/3790_infinite_loop.h5 b/tools/test/testfiles/3790_infinite_loop.h5 similarity index 100% rename from tools/test/h5dump/testfiles/3790_infinite_loop.h5 rename to tools/test/testfiles/3790_infinite_loop.h5 diff --git a/tools/test/h5import/testfiles/binfp64.h5 b/tools/test/testfiles/binfp64.h5 similarity index 100% rename from tools/test/h5import/testfiles/binfp64.h5 rename to tools/test/testfiles/binfp64.h5 diff --git a/tools/test/h5import/testfiles/binin16.h5 b/tools/test/testfiles/binin16.h5 similarity index 100% rename from tools/test/h5import/testfiles/binin16.h5 rename to tools/test/testfiles/binin16.h5 diff --git a/tools/test/h5import/testfiles/binin32.h5 b/tools/test/testfiles/binin32.h5 similarity index 100% rename from tools/test/h5import/testfiles/binin32.h5 rename to tools/test/testfiles/binin32.h5 diff --git a/tools/test/h5import/testfiles/binin8.h5 b/tools/test/testfiles/binin8.h5 similarity index 100% rename from tools/test/h5import/testfiles/binin8.h5 rename to tools/test/testfiles/binin8.h5 diff --git a/tools/test/h5import/testfiles/binin8w.h5 b/tools/test/testfiles/binin8w.h5 similarity index 100% rename from tools/test/h5import/testfiles/binin8w.h5 rename to tools/test/testfiles/binin8w.h5 diff --git a/tools/test/h5import/testfiles/binuin16.h5 b/tools/test/testfiles/binuin16.h5 similarity index 100% rename from tools/test/h5import/testfiles/binuin16.h5 rename to tools/test/testfiles/binuin16.h5 diff --git a/tools/test/h5import/testfiles/binuin32.h5 b/tools/test/testfiles/binuin32.h5 similarity index 100% rename from tools/test/h5import/testfiles/binuin32.h5 rename to tools/test/testfiles/binuin32.h5 diff --git a/tools/test/h5repack/testfiles/bounds_latest_latest.h5 b/tools/test/testfiles/bounds_latest_latest.h5 similarity index 100% rename from tools/test/h5repack/testfiles/bounds_latest_latest.h5 rename to tools/test/testfiles/bounds_latest_latest.h5 diff --git a/tools/test/h5dump/testfiles/charsets.h5 b/tools/test/testfiles/charsets.h5 similarity index 100% rename from tools/test/h5dump/testfiles/charsets.h5 rename to tools/test/testfiles/charsets.h5 diff --git a/tools/test/h5diff/testfiles/compounds_array_vlen1.h5 b/tools/test/testfiles/compounds_array_vlen1.h5 similarity index 64% rename from tools/test/h5diff/testfiles/compounds_array_vlen1.h5 rename to tools/test/testfiles/compounds_array_vlen1.h5 index 398026cb141..cbb41a05a82 100644 Binary files a/tools/test/h5diff/testfiles/compounds_array_vlen1.h5 and b/tools/test/testfiles/compounds_array_vlen1.h5 differ diff --git a/tools/test/h5diff/testfiles/compounds_array_vlen2.h5 b/tools/test/testfiles/compounds_array_vlen2.h5 similarity index 63% rename from tools/test/h5diff/testfiles/compounds_array_vlen2.h5 rename to tools/test/testfiles/compounds_array_vlen2.h5 index f6f0868c6ce..c6f2b6a365b 100644 Binary files a/tools/test/h5diff/testfiles/compounds_array_vlen2.h5 and b/tools/test/testfiles/compounds_array_vlen2.h5 differ diff --git a/tools/test/h5dump/testfiles/err_attr_dspace.h5 b/tools/test/testfiles/err_attr_dspace.h5 similarity index 100% rename from tools/test/h5dump/testfiles/err_attr_dspace.h5 rename to tools/test/testfiles/err_attr_dspace.h5 diff --git a/tools/test/misc/testfiles/family_file00000.h5 b/tools/test/testfiles/family_file00000.h5 similarity index 100% rename from tools/test/misc/testfiles/family_file00000.h5 rename to tools/test/testfiles/family_file00000.h5 diff --git a/tools/test/misc/testfiles/family_file00001.h5 b/tools/test/testfiles/family_file00001.h5 similarity index 100% rename from tools/test/misc/testfiles/family_file00001.h5 rename to tools/test/testfiles/family_file00001.h5 diff --git a/tools/test/misc/testfiles/family_file00002.h5 b/tools/test/testfiles/family_file00002.h5 similarity index 100% rename from tools/test/misc/testfiles/family_file00002.h5 rename to tools/test/testfiles/family_file00002.h5 diff --git a/tools/test/misc/testfiles/family_file00003.h5 b/tools/test/testfiles/family_file00003.h5 similarity index 100% rename from tools/test/misc/testfiles/family_file00003.h5 rename to tools/test/testfiles/family_file00003.h5 diff --git a/tools/test/misc/testfiles/family_file00004.h5 b/tools/test/testfiles/family_file00004.h5 similarity index 100% rename from tools/test/misc/testfiles/family_file00004.h5 rename to tools/test/testfiles/family_file00004.h5 diff --git a/tools/test/misc/testfiles/family_file00005.h5 b/tools/test/testfiles/family_file00005.h5 similarity index 100% rename from tools/test/misc/testfiles/family_file00005.h5 rename to tools/test/testfiles/family_file00005.h5 diff --git a/tools/test/misc/testfiles/family_file00006.h5 b/tools/test/testfiles/family_file00006.h5 similarity index 100% rename from tools/test/misc/testfiles/family_file00006.h5 rename to tools/test/testfiles/family_file00006.h5 diff --git a/tools/test/misc/testfiles/family_file00007.h5 b/tools/test/testfiles/family_file00007.h5 similarity index 100% rename from tools/test/misc/testfiles/family_file00007.h5 rename to tools/test/testfiles/family_file00007.h5 diff --git a/tools/test/misc/testfiles/family_file00008.h5 b/tools/test/testfiles/family_file00008.h5 similarity index 100% rename from tools/test/misc/testfiles/family_file00008.h5 rename to tools/test/testfiles/family_file00008.h5 diff --git a/tools/test/misc/testfiles/family_file00009.h5 b/tools/test/testfiles/family_file00009.h5 similarity index 100% rename from tools/test/misc/testfiles/family_file00009.h5 rename to tools/test/testfiles/family_file00009.h5 diff --git a/tools/test/misc/testfiles/family_file00010.h5 b/tools/test/testfiles/family_file00010.h5 similarity index 100% rename from tools/test/misc/testfiles/family_file00010.h5 rename to tools/test/testfiles/family_file00010.h5 diff --git a/tools/test/misc/testfiles/family_file00011.h5 b/tools/test/testfiles/family_file00011.h5 similarity index 100% rename from tools/test/misc/testfiles/family_file00011.h5 rename to tools/test/testfiles/family_file00011.h5 diff --git a/tools/test/misc/testfiles/family_file00012.h5 b/tools/test/testfiles/family_file00012.h5 similarity index 100% rename from tools/test/misc/testfiles/family_file00012.h5 rename to tools/test/testfiles/family_file00012.h5 diff --git a/tools/test/misc/testfiles/family_file00013.h5 b/tools/test/testfiles/family_file00013.h5 similarity index 100% rename from tools/test/misc/testfiles/family_file00013.h5 rename to tools/test/testfiles/family_file00013.h5 diff --git a/tools/test/misc/testfiles/family_file00014.h5 b/tools/test/testfiles/family_file00014.h5 similarity index 100% rename from tools/test/misc/testfiles/family_file00014.h5 rename to tools/test/testfiles/family_file00014.h5 diff --git a/tools/test/misc/testfiles/family_file00015.h5 b/tools/test/testfiles/family_file00015.h5 similarity index 100% rename from tools/test/misc/testfiles/family_file00015.h5 rename to tools/test/testfiles/family_file00015.h5 diff --git a/tools/test/misc/testfiles/family_file00016.h5 b/tools/test/testfiles/family_file00016.h5 similarity index 100% rename from tools/test/misc/testfiles/family_file00016.h5 rename to tools/test/testfiles/family_file00016.h5 diff --git a/tools/test/misc/testfiles/family_file00017.h5 b/tools/test/testfiles/family_file00017.h5 similarity index 100% rename from tools/test/misc/testfiles/family_file00017.h5 rename to tools/test/testfiles/family_file00017.h5 diff --git a/tools/test/h5dump/testfiles/file_space.h5 b/tools/test/testfiles/file_space.h5 similarity index 100% rename from tools/test/h5dump/testfiles/file_space.h5 rename to tools/test/testfiles/file_space.h5 diff --git a/tools/test/h5dump/testfiles/filter_fail.h5 b/tools/test/testfiles/filter_fail.h5 similarity index 100% rename from tools/test/h5dump/testfiles/filter_fail.h5 rename to tools/test/testfiles/filter_fail.h5 diff --git a/tools/test/misc/testfiles/h5clear_fsm_persist_equal.h5 b/tools/test/testfiles/h5clear_fsm_persist_equal.h5 similarity index 100% rename from tools/test/misc/testfiles/h5clear_fsm_persist_equal.h5 rename to tools/test/testfiles/h5clear_fsm_persist_equal.h5 diff --git a/tools/test/misc/testfiles/h5clear_fsm_persist_greater.h5 b/tools/test/testfiles/h5clear_fsm_persist_greater.h5 similarity index 100% rename from tools/test/misc/testfiles/h5clear_fsm_persist_greater.h5 rename to tools/test/testfiles/h5clear_fsm_persist_greater.h5 diff --git a/tools/test/misc/testfiles/h5clear_fsm_persist_less.h5 b/tools/test/testfiles/h5clear_fsm_persist_less.h5 similarity index 100% rename from tools/test/misc/testfiles/h5clear_fsm_persist_less.h5 rename to tools/test/testfiles/h5clear_fsm_persist_less.h5 diff --git a/tools/test/misc/testfiles/h5clear_fsm_persist_noclose.h5 b/tools/test/testfiles/h5clear_fsm_persist_noclose.h5 similarity index 100% rename from tools/test/misc/testfiles/h5clear_fsm_persist_noclose.h5 rename to tools/test/testfiles/h5clear_fsm_persist_noclose.h5 diff --git a/tools/test/misc/testfiles/h5clear_fsm_persist_user_equal.h5 b/tools/test/testfiles/h5clear_fsm_persist_user_equal.h5 similarity index 100% rename from tools/test/misc/testfiles/h5clear_fsm_persist_user_equal.h5 rename to tools/test/testfiles/h5clear_fsm_persist_user_equal.h5 diff --git a/tools/test/misc/testfiles/h5clear_fsm_persist_user_greater.h5 b/tools/test/testfiles/h5clear_fsm_persist_user_greater.h5 similarity index 100% rename from tools/test/misc/testfiles/h5clear_fsm_persist_user_greater.h5 rename to tools/test/testfiles/h5clear_fsm_persist_user_greater.h5 diff --git a/tools/test/misc/testfiles/h5clear_fsm_persist_user_less.h5 b/tools/test/testfiles/h5clear_fsm_persist_user_less.h5 similarity index 100% rename from tools/test/misc/testfiles/h5clear_fsm_persist_user_less.h5 rename to tools/test/testfiles/h5clear_fsm_persist_user_less.h5 diff --git a/tools/test/misc/testfiles/h5clear_log_v3.h5 b/tools/test/testfiles/h5clear_log_v3.h5 similarity index 100% rename from tools/test/misc/testfiles/h5clear_log_v3.h5 rename to tools/test/testfiles/h5clear_log_v3.h5 diff --git a/tools/test/misc/testfiles/h5clear_mdc_image.h5 b/tools/test/testfiles/h5clear_mdc_image.h5 similarity index 100% rename from tools/test/misc/testfiles/h5clear_mdc_image.h5 rename to tools/test/testfiles/h5clear_mdc_image.h5 diff --git a/tools/test/misc/testfiles/h5clear_sec2_v0.h5 b/tools/test/testfiles/h5clear_sec2_v0.h5 similarity index 100% rename from tools/test/misc/testfiles/h5clear_sec2_v0.h5 rename to tools/test/testfiles/h5clear_sec2_v0.h5 diff --git a/tools/test/misc/testfiles/h5clear_sec2_v2.h5 b/tools/test/testfiles/h5clear_sec2_v2.h5 similarity index 100% rename from tools/test/misc/testfiles/h5clear_sec2_v2.h5 rename to tools/test/testfiles/h5clear_sec2_v2.h5 diff --git a/tools/test/misc/testfiles/h5clear_sec2_v3.h5 b/tools/test/testfiles/h5clear_sec2_v3.h5 similarity index 100% rename from tools/test/misc/testfiles/h5clear_sec2_v3.h5 rename to tools/test/testfiles/h5clear_sec2_v3.h5 diff --git a/tools/test/misc/testfiles/h5clear_status_noclose.h5 b/tools/test/testfiles/h5clear_status_noclose.h5 similarity index 100% rename from tools/test/misc/testfiles/h5clear_status_noclose.h5 rename to tools/test/testfiles/h5clear_status_noclose.h5 diff --git a/tools/test/h5copy/testfiles/h5copy_extlinks_src.h5 b/tools/test/testfiles/h5copy_extlinks_src.h5 similarity index 100% rename from tools/test/h5copy/testfiles/h5copy_extlinks_src.h5 rename to tools/test/testfiles/h5copy_extlinks_src.h5 diff --git a/tools/test/h5copy/testfiles/h5copy_extlinks_trg.h5 b/tools/test/testfiles/h5copy_extlinks_trg.h5 similarity index 100% rename from tools/test/h5copy/testfiles/h5copy_extlinks_trg.h5 rename to tools/test/testfiles/h5copy_extlinks_trg.h5 diff --git a/tools/test/h5copy/testfiles/h5copy_ref.h5 b/tools/test/testfiles/h5copy_ref.h5 similarity index 100% rename from tools/test/h5copy/testfiles/h5copy_ref.h5 rename to tools/test/testfiles/h5copy_ref.h5 diff --git a/tools/test/h5copy/testfiles/h5copytst.h5 b/tools/test/testfiles/h5copytst.h5 similarity index 100% rename from tools/test/h5copy/testfiles/h5copytst.h5 rename to tools/test/testfiles/h5copytst.h5 diff --git a/tools/test/h5copy/testfiles/h5copytst_new.h5 b/tools/test/testfiles/h5copytst_new.h5 similarity index 100% rename from tools/test/h5copy/testfiles/h5copytst_new.h5 rename to tools/test/testfiles/h5copytst_new.h5 diff --git a/tools/test/h5diff/testfiles/h5diff_attr1.h5 b/tools/test/testfiles/h5diff_attr1.h5 similarity index 100% rename from tools/test/h5diff/testfiles/h5diff_attr1.h5 rename to tools/test/testfiles/h5diff_attr1.h5 diff --git a/tools/test/h5diff/testfiles/h5diff_attr2.h5 b/tools/test/testfiles/h5diff_attr2.h5 similarity index 100% rename from tools/test/h5diff/testfiles/h5diff_attr2.h5 rename to tools/test/testfiles/h5diff_attr2.h5 diff --git a/tools/test/h5diff/testfiles/h5diff_attr3.h5 b/tools/test/testfiles/h5diff_attr3.h5 similarity index 100% rename from tools/test/h5diff/testfiles/h5diff_attr3.h5 rename to tools/test/testfiles/h5diff_attr3.h5 diff --git a/tools/test/h5diff/testfiles/h5diff_attr_v_level1.h5 b/tools/test/testfiles/h5diff_attr_v_level1.h5 similarity index 100% rename from tools/test/h5diff/testfiles/h5diff_attr_v_level1.h5 rename to tools/test/testfiles/h5diff_attr_v_level1.h5 diff --git a/tools/test/h5diff/testfiles/h5diff_attr_v_level2.h5 b/tools/test/testfiles/h5diff_attr_v_level2.h5 similarity index 100% rename from tools/test/h5diff/testfiles/h5diff_attr_v_level2.h5 rename to tools/test/testfiles/h5diff_attr_v_level2.h5 diff --git a/tools/test/h5diff/testfiles/h5diff_basic1.h5 b/tools/test/testfiles/h5diff_basic1.h5 similarity index 100% rename from tools/test/h5diff/testfiles/h5diff_basic1.h5 rename to tools/test/testfiles/h5diff_basic1.h5 diff --git a/tools/test/h5diff/testfiles/h5diff_basic2.h5 b/tools/test/testfiles/h5diff_basic2.h5 similarity index 100% rename from tools/test/h5diff/testfiles/h5diff_basic2.h5 rename to tools/test/testfiles/h5diff_basic2.h5 diff --git a/tools/test/h5diff/testfiles/h5diff_comp_vl_strs.h5 b/tools/test/testfiles/h5diff_comp_vl_strs.h5 similarity index 100% rename from tools/test/h5diff/testfiles/h5diff_comp_vl_strs.h5 rename to tools/test/testfiles/h5diff_comp_vl_strs.h5 diff --git a/tools/test/h5diff/testfiles/h5diff_danglelinks1.h5 b/tools/test/testfiles/h5diff_danglelinks1.h5 similarity index 100% rename from tools/test/h5diff/testfiles/h5diff_danglelinks1.h5 rename to tools/test/testfiles/h5diff_danglelinks1.h5 diff --git a/tools/test/h5diff/testfiles/h5diff_danglelinks2.h5 b/tools/test/testfiles/h5diff_danglelinks2.h5 similarity index 100% rename from tools/test/h5diff/testfiles/h5diff_danglelinks2.h5 rename to tools/test/testfiles/h5diff_danglelinks2.h5 diff --git a/tools/test/h5diff/testfiles/h5diff_dset1.h5 b/tools/test/testfiles/h5diff_dset1.h5 similarity index 100% rename from tools/test/h5diff/testfiles/h5diff_dset1.h5 rename to tools/test/testfiles/h5diff_dset1.h5 diff --git a/tools/test/h5diff/testfiles/h5diff_dset2.h5 b/tools/test/testfiles/h5diff_dset2.h5 similarity index 100% rename from tools/test/h5diff/testfiles/h5diff_dset2.h5 rename to tools/test/testfiles/h5diff_dset2.h5 diff --git a/tools/test/h5diff/testfiles/h5diff_dset3.h5 b/tools/test/testfiles/h5diff_dset3.h5 similarity index 100% rename from tools/test/h5diff/testfiles/h5diff_dset3.h5 rename to tools/test/testfiles/h5diff_dset3.h5 diff --git a/tools/test/h5diff/testfiles/h5diff_dset_zero_dim_size1.h5 b/tools/test/testfiles/h5diff_dset_zero_dim_size1.h5 similarity index 100% rename from tools/test/h5diff/testfiles/h5diff_dset_zero_dim_size1.h5 rename to tools/test/testfiles/h5diff_dset_zero_dim_size1.h5 diff --git a/tools/test/h5diff/testfiles/h5diff_dset_zero_dim_size2.h5 b/tools/test/testfiles/h5diff_dset_zero_dim_size2.h5 similarity index 100% rename from tools/test/h5diff/testfiles/h5diff_dset_zero_dim_size2.h5 rename to tools/test/testfiles/h5diff_dset_zero_dim_size2.h5 diff --git a/tools/test/h5diff/testfiles/h5diff_dtypes.h5 b/tools/test/testfiles/h5diff_dtypes.h5 similarity index 100% rename from tools/test/h5diff/testfiles/h5diff_dtypes.h5 rename to tools/test/testfiles/h5diff_dtypes.h5 diff --git a/tools/test/h5diff/testfiles/h5diff_empty.h5 b/tools/test/testfiles/h5diff_empty.h5 similarity index 100% rename from tools/test/h5diff/testfiles/h5diff_empty.h5 rename to tools/test/testfiles/h5diff_empty.h5 diff --git a/tools/test/h5diff/testfiles/h5diff_enum_invalid_values.h5 b/tools/test/testfiles/h5diff_enum_invalid_values.h5 similarity index 100% rename from tools/test/h5diff/testfiles/h5diff_enum_invalid_values.h5 rename to tools/test/testfiles/h5diff_enum_invalid_values.h5 diff --git a/tools/test/h5diff/testfiles/h5diff_eps1.h5 b/tools/test/testfiles/h5diff_eps1.h5 similarity index 100% rename from tools/test/h5diff/testfiles/h5diff_eps1.h5 rename to tools/test/testfiles/h5diff_eps1.h5 diff --git a/tools/test/h5diff/testfiles/h5diff_eps2.h5 b/tools/test/testfiles/h5diff_eps2.h5 similarity index 100% rename from tools/test/h5diff/testfiles/h5diff_eps2.h5 rename to tools/test/testfiles/h5diff_eps2.h5 diff --git a/tools/test/h5diff/testfiles/h5diff_exclude1-1.h5 b/tools/test/testfiles/h5diff_exclude1-1.h5 similarity index 100% rename from tools/test/h5diff/testfiles/h5diff_exclude1-1.h5 rename to tools/test/testfiles/h5diff_exclude1-1.h5 diff --git a/tools/test/h5diff/testfiles/h5diff_exclude1-2.h5 b/tools/test/testfiles/h5diff_exclude1-2.h5 similarity index 100% rename from tools/test/h5diff/testfiles/h5diff_exclude1-2.h5 rename to tools/test/testfiles/h5diff_exclude1-2.h5 diff --git a/tools/test/h5diff/testfiles/h5diff_exclude2-1.h5 b/tools/test/testfiles/h5diff_exclude2-1.h5 similarity index 100% rename from tools/test/h5diff/testfiles/h5diff_exclude2-1.h5 rename to tools/test/testfiles/h5diff_exclude2-1.h5 diff --git a/tools/test/h5diff/testfiles/h5diff_exclude2-2.h5 b/tools/test/testfiles/h5diff_exclude2-2.h5 similarity index 100% rename from tools/test/h5diff/testfiles/h5diff_exclude2-2.h5 rename to tools/test/testfiles/h5diff_exclude2-2.h5 diff --git a/tools/test/h5diff/testfiles/h5diff_exclude3-1.h5 b/tools/test/testfiles/h5diff_exclude3-1.h5 similarity index 100% rename from tools/test/h5diff/testfiles/h5diff_exclude3-1.h5 rename to tools/test/testfiles/h5diff_exclude3-1.h5 diff --git a/tools/test/h5diff/testfiles/h5diff_exclude3-2.h5 b/tools/test/testfiles/h5diff_exclude3-2.h5 similarity index 100% rename from tools/test/h5diff/testfiles/h5diff_exclude3-2.h5 rename to tools/test/testfiles/h5diff_exclude3-2.h5 diff --git a/tools/test/h5diff/testfiles/h5diff_ext2softlink_src.h5 b/tools/test/testfiles/h5diff_ext2softlink_src.h5 similarity index 100% rename from tools/test/h5diff/testfiles/h5diff_ext2softlink_src.h5 rename to tools/test/testfiles/h5diff_ext2softlink_src.h5 diff --git a/tools/test/h5diff/testfiles/h5diff_ext2softlink_trg.h5 b/tools/test/testfiles/h5diff_ext2softlink_trg.h5 similarity index 100% rename from tools/test/h5diff/testfiles/h5diff_ext2softlink_trg.h5 rename to tools/test/testfiles/h5diff_ext2softlink_trg.h5 diff --git a/tools/test/h5diff/testfiles/h5diff_extlink_src.h5 b/tools/test/testfiles/h5diff_extlink_src.h5 similarity index 100% rename from tools/test/h5diff/testfiles/h5diff_extlink_src.h5 rename to tools/test/testfiles/h5diff_extlink_src.h5 diff --git a/tools/test/h5diff/testfiles/h5diff_extlink_trg.h5 b/tools/test/testfiles/h5diff_extlink_trg.h5 similarity index 100% rename from tools/test/h5diff/testfiles/h5diff_extlink_trg.h5 rename to tools/test/testfiles/h5diff_extlink_trg.h5 diff --git a/tools/test/h5diff/testfiles/h5diff_grp_recurse1.h5 b/tools/test/testfiles/h5diff_grp_recurse1.h5 similarity index 100% rename from tools/test/h5diff/testfiles/h5diff_grp_recurse1.h5 rename to tools/test/testfiles/h5diff_grp_recurse1.h5 diff --git a/tools/test/h5diff/testfiles/h5diff_grp_recurse2.h5 b/tools/test/testfiles/h5diff_grp_recurse2.h5 similarity index 100% rename from tools/test/h5diff/testfiles/h5diff_grp_recurse2.h5 rename to tools/test/testfiles/h5diff_grp_recurse2.h5 diff --git a/tools/test/h5diff/testfiles/h5diff_grp_recurse_ext1.h5 b/tools/test/testfiles/h5diff_grp_recurse_ext1.h5 similarity index 100% rename from tools/test/h5diff/testfiles/h5diff_grp_recurse_ext1.h5 rename to tools/test/testfiles/h5diff_grp_recurse_ext1.h5 diff --git a/tools/test/h5diff/testfiles/h5diff_grp_recurse_ext2-1.h5 b/tools/test/testfiles/h5diff_grp_recurse_ext2-1.h5 similarity index 100% rename from tools/test/h5diff/testfiles/h5diff_grp_recurse_ext2-1.h5 rename to tools/test/testfiles/h5diff_grp_recurse_ext2-1.h5 diff --git a/tools/test/h5diff/testfiles/h5diff_grp_recurse_ext2-2.h5 b/tools/test/testfiles/h5diff_grp_recurse_ext2-2.h5 similarity index 100% rename from tools/test/h5diff/testfiles/h5diff_grp_recurse_ext2-2.h5 rename to tools/test/testfiles/h5diff_grp_recurse_ext2-2.h5 diff --git a/tools/test/h5diff/testfiles/h5diff_grp_recurse_ext2-3.h5 b/tools/test/testfiles/h5diff_grp_recurse_ext2-3.h5 similarity index 100% rename from tools/test/h5diff/testfiles/h5diff_grp_recurse_ext2-3.h5 rename to tools/test/testfiles/h5diff_grp_recurse_ext2-3.h5 diff --git a/tools/test/h5diff/testfiles/h5diff_hyper1.h5 b/tools/test/testfiles/h5diff_hyper1.h5 similarity index 100% rename from tools/test/h5diff/testfiles/h5diff_hyper1.h5 rename to tools/test/testfiles/h5diff_hyper1.h5 diff --git a/tools/test/h5diff/testfiles/h5diff_hyper2.h5 b/tools/test/testfiles/h5diff_hyper2.h5 similarity index 100% rename from tools/test/h5diff/testfiles/h5diff_hyper2.h5 rename to tools/test/testfiles/h5diff_hyper2.h5 diff --git a/tools/test/h5diff/testfiles/h5diff_linked_softlink.h5 b/tools/test/testfiles/h5diff_linked_softlink.h5 similarity index 100% rename from tools/test/h5diff/testfiles/h5diff_linked_softlink.h5 rename to tools/test/testfiles/h5diff_linked_softlink.h5 diff --git a/tools/test/h5diff/testfiles/h5diff_links.h5 b/tools/test/testfiles/h5diff_links.h5 similarity index 100% rename from tools/test/h5diff/testfiles/h5diff_links.h5 rename to tools/test/testfiles/h5diff_links.h5 diff --git a/tools/test/h5diff/testfiles/h5diff_onion_dset_1d.h5 b/tools/test/testfiles/h5diff_onion_dset_1d.h5 similarity index 100% rename from tools/test/h5diff/testfiles/h5diff_onion_dset_1d.h5 rename to tools/test/testfiles/h5diff_onion_dset_1d.h5 diff --git a/tools/test/h5diff/testfiles/h5diff_onion_dset_1d.h5.onion b/tools/test/testfiles/h5diff_onion_dset_1d.h5.onion similarity index 100% rename from tools/test/h5diff/testfiles/h5diff_onion_dset_1d.h5.onion rename to tools/test/testfiles/h5diff_onion_dset_1d.h5.onion diff --git a/tools/test/h5diff/testfiles/h5diff_onion_dset_ext.h5 b/tools/test/testfiles/h5diff_onion_dset_ext.h5 similarity index 100% rename from tools/test/h5diff/testfiles/h5diff_onion_dset_ext.h5 rename to tools/test/testfiles/h5diff_onion_dset_ext.h5 diff --git a/tools/test/h5diff/testfiles/h5diff_onion_dset_ext.h5.onion b/tools/test/testfiles/h5diff_onion_dset_ext.h5.onion similarity index 100% rename from tools/test/h5diff/testfiles/h5diff_onion_dset_ext.h5.onion rename to tools/test/testfiles/h5diff_onion_dset_ext.h5.onion diff --git a/tools/test/h5diff/testfiles/h5diff_onion_objs.h5 b/tools/test/testfiles/h5diff_onion_objs.h5 similarity index 100% rename from tools/test/h5diff/testfiles/h5diff_onion_objs.h5 rename to tools/test/testfiles/h5diff_onion_objs.h5 diff --git a/tools/test/h5diff/testfiles/h5diff_onion_objs.h5.onion b/tools/test/testfiles/h5diff_onion_objs.h5.onion similarity index 100% rename from tools/test/h5diff/testfiles/h5diff_onion_objs.h5.onion rename to tools/test/testfiles/h5diff_onion_objs.h5.onion diff --git a/tools/test/h5diff/testfiles/h5diff_softlinks.h5 b/tools/test/testfiles/h5diff_softlinks.h5 similarity index 100% rename from tools/test/h5diff/testfiles/h5diff_softlinks.h5 rename to tools/test/testfiles/h5diff_softlinks.h5 diff --git a/tools/test/h5diff/testfiles/h5diff_strings1.h5 b/tools/test/testfiles/h5diff_strings1.h5 similarity index 100% rename from tools/test/h5diff/testfiles/h5diff_strings1.h5 rename to tools/test/testfiles/h5diff_strings1.h5 diff --git a/tools/test/h5diff/testfiles/h5diff_strings2.h5 b/tools/test/testfiles/h5diff_strings2.h5 similarity index 100% rename from tools/test/h5diff/testfiles/h5diff_strings2.h5 rename to tools/test/testfiles/h5diff_strings2.h5 diff --git a/tools/test/h5diff/testfiles/h5diff_types.h5 b/tools/test/testfiles/h5diff_types.h5 similarity index 100% rename from tools/test/h5diff/testfiles/h5diff_types.h5 rename to tools/test/testfiles/h5diff_types.h5 diff --git a/tools/test/h5format_convert/testfiles/h5fc_edge_v3.h5 b/tools/test/testfiles/h5fc_edge_v3.h5 similarity index 100% rename from tools/test/h5format_convert/testfiles/h5fc_edge_v3.h5 rename to tools/test/testfiles/h5fc_edge_v3.h5 diff --git a/tools/test/h5format_convert/testfiles/h5fc_err_level.h5 b/tools/test/testfiles/h5fc_err_level.h5 similarity index 100% rename from tools/test/h5format_convert/testfiles/h5fc_err_level.h5 rename to tools/test/testfiles/h5fc_err_level.h5 diff --git a/tools/test/h5format_convert/testfiles/h5fc_ext1_f.h5 b/tools/test/testfiles/h5fc_ext1_f.h5 similarity index 100% rename from tools/test/h5format_convert/testfiles/h5fc_ext1_f.h5 rename to tools/test/testfiles/h5fc_ext1_f.h5 diff --git a/tools/test/h5format_convert/testfiles/h5fc_ext1_i.h5 b/tools/test/testfiles/h5fc_ext1_i.h5 similarity index 100% rename from tools/test/h5format_convert/testfiles/h5fc_ext1_i.h5 rename to tools/test/testfiles/h5fc_ext1_i.h5 diff --git a/tools/test/h5format_convert/testfiles/h5fc_ext1_s.h5 b/tools/test/testfiles/h5fc_ext1_s.h5 similarity index 100% rename from tools/test/h5format_convert/testfiles/h5fc_ext1_s.h5 rename to tools/test/testfiles/h5fc_ext1_s.h5 diff --git a/tools/test/h5format_convert/testfiles/h5fc_ext2_if.h5 b/tools/test/testfiles/h5fc_ext2_if.h5 similarity index 100% rename from tools/test/h5format_convert/testfiles/h5fc_ext2_if.h5 rename to tools/test/testfiles/h5fc_ext2_if.h5 diff --git a/tools/test/h5format_convert/testfiles/h5fc_ext2_is.h5 b/tools/test/testfiles/h5fc_ext2_is.h5 similarity index 100% rename from tools/test/h5format_convert/testfiles/h5fc_ext2_is.h5 rename to tools/test/testfiles/h5fc_ext2_is.h5 diff --git a/tools/test/h5format_convert/testfiles/h5fc_ext2_sf.h5 b/tools/test/testfiles/h5fc_ext2_sf.h5 similarity index 100% rename from tools/test/h5format_convert/testfiles/h5fc_ext2_sf.h5 rename to tools/test/testfiles/h5fc_ext2_sf.h5 diff --git a/tools/test/h5format_convert/testfiles/h5fc_ext3_isf.h5 b/tools/test/testfiles/h5fc_ext3_isf.h5 similarity index 100% rename from tools/test/h5format_convert/testfiles/h5fc_ext3_isf.h5 rename to tools/test/testfiles/h5fc_ext3_isf.h5 diff --git a/tools/test/h5format_convert/testfiles/h5fc_ext_none.h5 b/tools/test/testfiles/h5fc_ext_none.h5 similarity index 100% rename from tools/test/h5format_convert/testfiles/h5fc_ext_none.h5 rename to tools/test/testfiles/h5fc_ext_none.h5 diff --git a/tools/test/h5format_convert/testfiles/h5fc_non_v3.h5 b/tools/test/testfiles/h5fc_non_v3.h5 similarity index 100% rename from tools/test/h5format_convert/testfiles/h5fc_non_v3.h5 rename to tools/test/testfiles/h5fc_non_v3.h5 diff --git a/tools/test/h5repack/testfiles/h5repack_CVE-2018-14460.h5 b/tools/test/testfiles/h5repack_CVE-2018-14460.h5 similarity index 100% rename from tools/test/h5repack/testfiles/h5repack_CVE-2018-14460.h5 rename to tools/test/testfiles/h5repack_CVE-2018-14460.h5 diff --git a/tools/test/h5repack/testfiles/h5repack_CVE-2018-17432.h5 b/tools/test/testfiles/h5repack_CVE-2018-17432.h5 similarity index 100% rename from tools/test/h5repack/testfiles/h5repack_CVE-2018-17432.h5 rename to tools/test/testfiles/h5repack_CVE-2018-17432.h5 diff --git a/tools/test/h5repack/testfiles/h5repack_aggr.h5 b/tools/test/testfiles/h5repack_aggr.h5 similarity index 100% rename from tools/test/h5repack/testfiles/h5repack_aggr.h5 rename to tools/test/testfiles/h5repack_aggr.h5 diff --git a/tools/test/h5repack/testfiles/h5repack_attr.h5 b/tools/test/testfiles/h5repack_attr.h5 similarity index 100% rename from tools/test/h5repack/testfiles/h5repack_attr.h5 rename to tools/test/testfiles/h5repack_attr.h5 diff --git a/tools/test/h5repack/testfiles/h5repack_attr_refs.h5 b/tools/test/testfiles/h5repack_attr_refs.h5 similarity index 100% rename from tools/test/h5repack/testfiles/h5repack_attr_refs.h5 rename to tools/test/testfiles/h5repack_attr_refs.h5 diff --git a/tools/test/h5repack/testfiles/h5repack_deflate.h5 b/tools/test/testfiles/h5repack_deflate.h5 similarity index 100% rename from tools/test/h5repack/testfiles/h5repack_deflate.h5 rename to tools/test/testfiles/h5repack_deflate.h5 diff --git a/tools/test/h5repack/testfiles/h5repack_early.h5 b/tools/test/testfiles/h5repack_early.h5 similarity index 100% rename from tools/test/h5repack/testfiles/h5repack_early.h5 rename to tools/test/testfiles/h5repack_early.h5 diff --git a/tools/test/h5repack/testfiles/h5repack_ext.h5 b/tools/test/testfiles/h5repack_ext.h5 similarity index 100% rename from tools/test/h5repack/testfiles/h5repack_ext.h5 rename to tools/test/testfiles/h5repack_ext.h5 diff --git a/tools/test/h5repack/testfiles/h5repack_f32le.h5 b/tools/test/testfiles/h5repack_f32le.h5 similarity index 100% rename from tools/test/h5repack/testfiles/h5repack_f32le.h5 rename to tools/test/testfiles/h5repack_f32le.h5 diff --git a/tools/test/h5repack/testfiles/h5repack_f32le_ex.h5 b/tools/test/testfiles/h5repack_f32le_ex.h5 similarity index 100% rename from tools/test/h5repack/testfiles/h5repack_f32le_ex.h5 rename to tools/test/testfiles/h5repack_f32le_ex.h5 diff --git a/tools/test/h5repack/testfiles/h5repack_fill.h5 b/tools/test/testfiles/h5repack_fill.h5 similarity index 100% rename from tools/test/h5repack/testfiles/h5repack_fill.h5 rename to tools/test/testfiles/h5repack_fill.h5 diff --git a/tools/test/h5repack/testfiles/h5repack_filters.h5 b/tools/test/testfiles/h5repack_filters.h5 similarity index 100% rename from tools/test/h5repack/testfiles/h5repack_filters.h5 rename to tools/test/testfiles/h5repack_filters.h5 diff --git a/tools/test/h5repack/testfiles/h5repack_fletcher.h5 b/tools/test/testfiles/h5repack_fletcher.h5 similarity index 100% rename from tools/test/h5repack/testfiles/h5repack_fletcher.h5 rename to tools/test/testfiles/h5repack_fletcher.h5 diff --git a/tools/test/h5repack/testfiles/h5repack_fsm_aggr_nopersist.h5 b/tools/test/testfiles/h5repack_fsm_aggr_nopersist.h5 similarity index 100% rename from tools/test/h5repack/testfiles/h5repack_fsm_aggr_nopersist.h5 rename to tools/test/testfiles/h5repack_fsm_aggr_nopersist.h5 diff --git a/tools/test/h5repack/testfiles/h5repack_fsm_aggr_persist.h5 b/tools/test/testfiles/h5repack_fsm_aggr_persist.h5 similarity index 100% rename from tools/test/h5repack/testfiles/h5repack_fsm_aggr_persist.h5 rename to tools/test/testfiles/h5repack_fsm_aggr_persist.h5 diff --git a/tools/test/h5repack/testfiles/h5repack_hlink.h5 b/tools/test/testfiles/h5repack_hlink.h5 similarity index 100% rename from tools/test/h5repack/testfiles/h5repack_hlink.h5 rename to tools/test/testfiles/h5repack_hlink.h5 diff --git a/tools/test/h5repack/testfiles/h5repack_int32le_1d.h5 b/tools/test/testfiles/h5repack_int32le_1d.h5 similarity index 100% rename from tools/test/h5repack/testfiles/h5repack_int32le_1d.h5 rename to tools/test/testfiles/h5repack_int32le_1d.h5 diff --git a/tools/test/h5repack/testfiles/h5repack_int32le_1d_ex.h5 b/tools/test/testfiles/h5repack_int32le_1d_ex.h5 similarity index 100% rename from tools/test/h5repack/testfiles/h5repack_int32le_1d_ex.h5 rename to tools/test/testfiles/h5repack_int32le_1d_ex.h5 diff --git a/tools/test/h5repack/testfiles/h5repack_int32le_2d.h5 b/tools/test/testfiles/h5repack_int32le_2d.h5 similarity index 100% rename from tools/test/h5repack/testfiles/h5repack_int32le_2d.h5 rename to tools/test/testfiles/h5repack_int32le_2d.h5 diff --git a/tools/test/h5repack/testfiles/h5repack_int32le_2d_ex.h5 b/tools/test/testfiles/h5repack_int32le_2d_ex.h5 similarity index 100% rename from tools/test/h5repack/testfiles/h5repack_int32le_2d_ex.h5 rename to tools/test/testfiles/h5repack_int32le_2d_ex.h5 diff --git a/tools/test/h5repack/testfiles/h5repack_int32le_3d.h5 b/tools/test/testfiles/h5repack_int32le_3d.h5 similarity index 100% rename from tools/test/h5repack/testfiles/h5repack_int32le_3d.h5 rename to tools/test/testfiles/h5repack_int32le_3d.h5 diff --git a/tools/test/h5repack/testfiles/h5repack_int32le_3d_ex.h5 b/tools/test/testfiles/h5repack_int32le_3d_ex.h5 similarity index 100% rename from tools/test/h5repack/testfiles/h5repack_int32le_3d_ex.h5 rename to tools/test/testfiles/h5repack_int32le_3d_ex.h5 diff --git a/tools/test/h5repack/testfiles/h5repack_layout.UD.h5 b/tools/test/testfiles/h5repack_layout.UD.h5 similarity index 100% rename from tools/test/h5repack/testfiles/h5repack_layout.UD.h5 rename to tools/test/testfiles/h5repack_layout.UD.h5 diff --git a/tools/test/h5repack/testfiles/h5repack_layout.h5 b/tools/test/testfiles/h5repack_layout.h5 similarity index 100% rename from tools/test/h5repack/testfiles/h5repack_layout.h5 rename to tools/test/testfiles/h5repack_layout.h5 diff --git a/tools/test/h5repack/testfiles/h5repack_layout2.h5 b/tools/test/testfiles/h5repack_layout2.h5 similarity index 100% rename from tools/test/h5repack/testfiles/h5repack_layout2.h5 rename to tools/test/testfiles/h5repack_layout2.h5 diff --git a/tools/test/h5repack/testfiles/h5repack_layout3.h5 b/tools/test/testfiles/h5repack_layout3.h5 similarity index 100% rename from tools/test/h5repack/testfiles/h5repack_layout3.h5 rename to tools/test/testfiles/h5repack_layout3.h5 diff --git a/tools/test/h5repack/testfiles/h5repack_layouto.h5 b/tools/test/testfiles/h5repack_layouto.h5 similarity index 100% rename from tools/test/h5repack/testfiles/h5repack_layouto.h5 rename to tools/test/testfiles/h5repack_layouto.h5 diff --git a/tools/test/h5repack/testfiles/h5repack_named_dtypes.h5 b/tools/test/testfiles/h5repack_named_dtypes.h5 similarity index 100% rename from tools/test/h5repack/testfiles/h5repack_named_dtypes.h5 rename to tools/test/testfiles/h5repack_named_dtypes.h5 diff --git a/tools/test/h5repack/testfiles/h5repack_nbit.h5 b/tools/test/testfiles/h5repack_nbit.h5 similarity index 100% rename from tools/test/h5repack/testfiles/h5repack_nbit.h5 rename to tools/test/testfiles/h5repack_nbit.h5 diff --git a/tools/test/h5repack/testfiles/h5repack_nested_8bit_enum.h5 b/tools/test/testfiles/h5repack_nested_8bit_enum.h5 similarity index 100% rename from tools/test/h5repack/testfiles/h5repack_nested_8bit_enum.h5 rename to tools/test/testfiles/h5repack_nested_8bit_enum.h5 diff --git a/tools/test/h5repack/testfiles/h5repack_nested_8bit_enum_deflated.h5 b/tools/test/testfiles/h5repack_nested_8bit_enum_deflated.h5 similarity index 100% rename from tools/test/h5repack/testfiles/h5repack_nested_8bit_enum_deflated.h5 rename to tools/test/testfiles/h5repack_nested_8bit_enum_deflated.h5 diff --git a/tools/test/h5repack/testfiles/h5repack_none.h5 b/tools/test/testfiles/h5repack_none.h5 similarity index 100% rename from tools/test/h5repack/testfiles/h5repack_none.h5 rename to tools/test/testfiles/h5repack_none.h5 diff --git a/tools/test/h5repack/testfiles/h5repack_objs.h5 b/tools/test/testfiles/h5repack_objs.h5 similarity index 100% rename from tools/test/h5repack/testfiles/h5repack_objs.h5 rename to tools/test/testfiles/h5repack_objs.h5 diff --git a/tools/test/h5repack/testfiles/h5repack_paged_nopersist.h5 b/tools/test/testfiles/h5repack_paged_nopersist.h5 similarity index 100% rename from tools/test/h5repack/testfiles/h5repack_paged_nopersist.h5 rename to tools/test/testfiles/h5repack_paged_nopersist.h5 diff --git a/tools/test/h5repack/testfiles/h5repack_paged_persist.h5 b/tools/test/testfiles/h5repack_paged_persist.h5 similarity index 100% rename from tools/test/h5repack/testfiles/h5repack_paged_persist.h5 rename to tools/test/testfiles/h5repack_paged_persist.h5 diff --git a/tools/test/h5repack/testfiles/h5repack_refs.h5 b/tools/test/testfiles/h5repack_refs.h5 similarity index 100% rename from tools/test/h5repack/testfiles/h5repack_refs.h5 rename to tools/test/testfiles/h5repack_refs.h5 diff --git a/tools/test/h5repack/testfiles/h5repack_shuffle.h5 b/tools/test/testfiles/h5repack_shuffle.h5 similarity index 100% rename from tools/test/h5repack/testfiles/h5repack_shuffle.h5 rename to tools/test/testfiles/h5repack_shuffle.h5 diff --git a/tools/test/h5repack/testfiles/h5repack_soffset.h5 b/tools/test/testfiles/h5repack_soffset.h5 similarity index 100% rename from tools/test/h5repack/testfiles/h5repack_soffset.h5 rename to tools/test/testfiles/h5repack_soffset.h5 diff --git a/tools/test/h5repack/testfiles/h5repack_szip.h5 b/tools/test/testfiles/h5repack_szip.h5 similarity index 100% rename from tools/test/h5repack/testfiles/h5repack_szip.h5 rename to tools/test/testfiles/h5repack_szip.h5 diff --git a/tools/test/h5repack/testfiles/h5repack_uint8be.h5 b/tools/test/testfiles/h5repack_uint8be.h5 similarity index 100% rename from tools/test/h5repack/testfiles/h5repack_uint8be.h5 rename to tools/test/testfiles/h5repack_uint8be.h5 diff --git a/tools/test/h5repack/testfiles/h5repack_uint8be_ex.h5 b/tools/test/testfiles/h5repack_uint8be_ex.h5 similarity index 100% rename from tools/test/h5repack/testfiles/h5repack_uint8be_ex.h5 rename to tools/test/testfiles/h5repack_uint8be_ex.h5 diff --git a/tools/test/h5stat/testfiles/h5stat_err_old_fill.h5 b/tools/test/testfiles/h5stat_err_old_fill.h5 similarity index 100% rename from tools/test/h5stat/testfiles/h5stat_err_old_fill.h5 rename to tools/test/testfiles/h5stat_err_old_fill.h5 diff --git a/tools/test/h5stat/testfiles/h5stat_err_old_layout.h5 b/tools/test/testfiles/h5stat_err_old_layout.h5 similarity index 100% rename from tools/test/h5stat/testfiles/h5stat_err_old_layout.h5 rename to tools/test/testfiles/h5stat_err_old_layout.h5 diff --git a/tools/test/h5stat/testfiles/h5stat_err_refcount.h5 b/tools/test/testfiles/h5stat_err_refcount.h5 similarity index 100% rename from tools/test/h5stat/testfiles/h5stat_err_refcount.h5 rename to tools/test/testfiles/h5stat_err_refcount.h5 diff --git a/tools/test/h5stat/testfiles/h5stat_filters.h5 b/tools/test/testfiles/h5stat_filters.h5 similarity index 100% rename from tools/test/h5stat/testfiles/h5stat_filters.h5 rename to tools/test/testfiles/h5stat_filters.h5 diff --git a/tools/test/h5stat/testfiles/h5stat_idx.h5 b/tools/test/testfiles/h5stat_idx.h5 similarity index 100% rename from tools/test/h5stat/testfiles/h5stat_idx.h5 rename to tools/test/testfiles/h5stat_idx.h5 diff --git a/tools/test/h5stat/testfiles/h5stat_newgrat.h5 b/tools/test/testfiles/h5stat_newgrat.h5 similarity index 100% rename from tools/test/h5stat/testfiles/h5stat_newgrat.h5 rename to tools/test/testfiles/h5stat_newgrat.h5 diff --git a/tools/test/h5stat/testfiles/h5stat_threshold.h5 b/tools/test/testfiles/h5stat_threshold.h5 similarity index 100% rename from tools/test/h5stat/testfiles/h5stat_threshold.h5 rename to tools/test/testfiles/h5stat_threshold.h5 diff --git a/tools/test/h5stat/testfiles/h5stat_tsohm.h5 b/tools/test/testfiles/h5stat_tsohm.h5 similarity index 100% rename from tools/test/h5stat/testfiles/h5stat_tsohm.h5 rename to tools/test/testfiles/h5stat_tsohm.h5 diff --git a/tools/test/misc/testfiles/latest_h5clear_log_v3.h5 b/tools/test/testfiles/latest_h5clear_log_v3.h5 similarity index 100% rename from tools/test/misc/testfiles/latest_h5clear_log_v3.h5 rename to tools/test/testfiles/latest_h5clear_log_v3.h5 diff --git a/tools/test/misc/testfiles/latest_h5clear_sec2_v3.h5 b/tools/test/testfiles/latest_h5clear_sec2_v3.h5 similarity index 100% rename from tools/test/misc/testfiles/latest_h5clear_sec2_v3.h5 rename to tools/test/testfiles/latest_h5clear_sec2_v3.h5 diff --git a/tools/test/misc/testfiles/mod_h5clear_mdc_image.h5 b/tools/test/testfiles/mod_h5clear_mdc_image.h5 similarity index 100% rename from tools/test/misc/testfiles/mod_h5clear_mdc_image.h5 rename to tools/test/testfiles/mod_h5clear_mdc_image.h5 diff --git a/tools/test/h5diff/testfiles/non_comparables1.h5 b/tools/test/testfiles/non_comparables1.h5 similarity index 100% rename from tools/test/h5diff/testfiles/non_comparables1.h5 rename to tools/test/testfiles/non_comparables1.h5 diff --git a/tools/test/h5diff/testfiles/non_comparables2.h5 b/tools/test/testfiles/non_comparables2.h5 similarity index 100% rename from tools/test/h5diff/testfiles/non_comparables2.h5 rename to tools/test/testfiles/non_comparables2.h5 diff --git a/tools/test/h5format_convert/testfiles/old_h5fc_ext1_f.h5 b/tools/test/testfiles/old_h5fc_ext1_f.h5 similarity index 100% rename from tools/test/h5format_convert/testfiles/old_h5fc_ext1_f.h5 rename to tools/test/testfiles/old_h5fc_ext1_f.h5 diff --git a/tools/test/h5format_convert/testfiles/old_h5fc_ext1_i.h5 b/tools/test/testfiles/old_h5fc_ext1_i.h5 similarity index 100% rename from tools/test/h5format_convert/testfiles/old_h5fc_ext1_i.h5 rename to tools/test/testfiles/old_h5fc_ext1_i.h5 diff --git a/tools/test/h5format_convert/testfiles/old_h5fc_ext1_s.h5 b/tools/test/testfiles/old_h5fc_ext1_s.h5 similarity index 100% rename from tools/test/h5format_convert/testfiles/old_h5fc_ext1_s.h5 rename to tools/test/testfiles/old_h5fc_ext1_s.h5 diff --git a/tools/test/h5format_convert/testfiles/old_h5fc_ext2_if.h5 b/tools/test/testfiles/old_h5fc_ext2_if.h5 similarity index 100% rename from tools/test/h5format_convert/testfiles/old_h5fc_ext2_if.h5 rename to tools/test/testfiles/old_h5fc_ext2_if.h5 diff --git a/tools/test/h5format_convert/testfiles/old_h5fc_ext2_is.h5 b/tools/test/testfiles/old_h5fc_ext2_is.h5 similarity index 100% rename from tools/test/h5format_convert/testfiles/old_h5fc_ext2_is.h5 rename to tools/test/testfiles/old_h5fc_ext2_is.h5 diff --git a/tools/test/h5format_convert/testfiles/old_h5fc_ext2_sf.h5 b/tools/test/testfiles/old_h5fc_ext2_sf.h5 similarity index 100% rename from tools/test/h5format_convert/testfiles/old_h5fc_ext2_sf.h5 rename to tools/test/testfiles/old_h5fc_ext2_sf.h5 diff --git a/tools/test/h5format_convert/testfiles/old_h5fc_ext3_isf.h5 b/tools/test/testfiles/old_h5fc_ext3_isf.h5 similarity index 100% rename from tools/test/h5format_convert/testfiles/old_h5fc_ext3_isf.h5 rename to tools/test/testfiles/old_h5fc_ext3_isf.h5 diff --git a/tools/test/h5format_convert/testfiles/old_h5fc_ext_none.h5 b/tools/test/testfiles/old_h5fc_ext_none.h5 similarity index 100% rename from tools/test/h5format_convert/testfiles/old_h5fc_ext_none.h5 rename to tools/test/testfiles/old_h5fc_ext_none.h5 diff --git a/tools/test/h5dump/testfiles/packedbits.h5 b/tools/test/testfiles/packedbits.h5 similarity index 100% rename from tools/test/h5dump/testfiles/packedbits.h5 rename to tools/test/testfiles/packedbits.h5 diff --git a/tools/test/h5dump/testfiles/t128bit_float.h5 b/tools/test/testfiles/t128bit_float.h5 similarity index 100% rename from tools/test/h5dump/testfiles/t128bit_float.h5 rename to tools/test/testfiles/t128bit_float.h5 diff --git a/tools/test/h5dump/testfiles/tCVE-2021-37501_attr_decode.h5 b/tools/test/testfiles/tCVE-2021-37501_attr_decode.h5 similarity index 100% rename from tools/test/h5dump/testfiles/tCVE-2021-37501_attr_decode.h5 rename to tools/test/testfiles/tCVE-2021-37501_attr_decode.h5 diff --git a/tools/test/h5dump/testfiles/tCVE_2018_11206_fill_new.h5 b/tools/test/testfiles/tCVE_2018_11206_fill_new.h5 similarity index 100% rename from tools/test/h5dump/testfiles/tCVE_2018_11206_fill_new.h5 rename to tools/test/testfiles/tCVE_2018_11206_fill_new.h5 diff --git a/tools/test/h5dump/testfiles/tCVE_2018_11206_fill_old.h5 b/tools/test/testfiles/tCVE_2018_11206_fill_old.h5 similarity index 100% rename from tools/test/h5dump/testfiles/tCVE_2018_11206_fill_old.h5 rename to tools/test/testfiles/tCVE_2018_11206_fill_old.h5 diff --git a/tools/test/h5dump/testfiles/taindices.h5 b/tools/test/testfiles/taindices.h5 similarity index 100% rename from tools/test/h5dump/testfiles/taindices.h5 rename to tools/test/testfiles/taindices.h5 diff --git a/tools/test/h5dump/testfiles/tall.h5 b/tools/test/testfiles/tall.h5 similarity index 100% rename from tools/test/h5dump/testfiles/tall.h5 rename to tools/test/testfiles/tall.h5 diff --git a/tools/test/h5dump/testfiles/tarray1.h5 b/tools/test/testfiles/tarray1.h5 similarity index 100% rename from tools/test/h5dump/testfiles/tarray1.h5 rename to tools/test/testfiles/tarray1.h5 diff --git a/tools/test/h5dump/testfiles/tarray1_big.h5 b/tools/test/testfiles/tarray1_big.h5 similarity index 100% rename from tools/test/h5dump/testfiles/tarray1_big.h5 rename to tools/test/testfiles/tarray1_big.h5 diff --git a/tools/test/h5dump/testfiles/tarray2.h5 b/tools/test/testfiles/tarray2.h5 similarity index 100% rename from tools/test/h5dump/testfiles/tarray2.h5 rename to tools/test/testfiles/tarray2.h5 diff --git a/tools/test/h5dump/testfiles/tarray3.h5 b/tools/test/testfiles/tarray3.h5 similarity index 100% rename from tools/test/h5dump/testfiles/tarray3.h5 rename to tools/test/testfiles/tarray3.h5 diff --git a/tools/test/h5dump/testfiles/tarray4.h5 b/tools/test/testfiles/tarray4.h5 similarity index 100% rename from tools/test/h5dump/testfiles/tarray4.h5 rename to tools/test/testfiles/tarray4.h5 diff --git a/tools/test/h5dump/testfiles/tarray5.h5 b/tools/test/testfiles/tarray5.h5 similarity index 100% rename from tools/test/h5dump/testfiles/tarray5.h5 rename to tools/test/testfiles/tarray5.h5 diff --git a/tools/test/h5dump/testfiles/tarray6.h5 b/tools/test/testfiles/tarray6.h5 similarity index 100% rename from tools/test/h5dump/testfiles/tarray6.h5 rename to tools/test/testfiles/tarray6.h5 diff --git a/tools/test/h5dump/testfiles/tarray7.h5 b/tools/test/testfiles/tarray7.h5 similarity index 100% rename from tools/test/h5dump/testfiles/tarray7.h5 rename to tools/test/testfiles/tarray7.h5 diff --git a/tools/test/h5dump/testfiles/tarray8.h5 b/tools/test/testfiles/tarray8.h5 similarity index 100% rename from tools/test/h5dump/testfiles/tarray8.h5 rename to tools/test/testfiles/tarray8.h5 diff --git a/tools/test/h5dump/testfiles/tattr.h5 b/tools/test/testfiles/tattr.h5 similarity index 100% rename from tools/test/h5dump/testfiles/tattr.h5 rename to tools/test/testfiles/tattr.h5 diff --git a/tools/test/h5dump/testfiles/tattr2.h5 b/tools/test/testfiles/tattr2.h5 similarity index 100% rename from tools/test/h5dump/testfiles/tattr2.h5 rename to tools/test/testfiles/tattr2.h5 diff --git a/tools/test/h5dump/testfiles/tattr4_be.h5 b/tools/test/testfiles/tattr4_be.h5 similarity index 100% rename from tools/test/h5dump/testfiles/tattr4_be.h5 rename to tools/test/testfiles/tattr4_be.h5 diff --git a/tools/test/h5dump/testfiles/tattrintsize.h5 b/tools/test/testfiles/tattrintsize.h5 similarity index 100% rename from tools/test/h5dump/testfiles/tattrintsize.h5 rename to tools/test/testfiles/tattrintsize.h5 diff --git a/tools/test/h5dump/testfiles/tattrreg.h5 b/tools/test/testfiles/tattrreg.h5 similarity index 100% rename from tools/test/h5dump/testfiles/tattrreg.h5 rename to tools/test/testfiles/tattrreg.h5 diff --git a/tools/test/h5dump/testfiles/tbigdims.h5 b/tools/test/testfiles/tbigdims.h5 similarity index 100% rename from tools/test/h5dump/testfiles/tbigdims.h5 rename to tools/test/testfiles/tbigdims.h5 diff --git a/tools/test/h5dump/testfiles/tbinary.h5 b/tools/test/testfiles/tbinary.h5 similarity index 100% rename from tools/test/h5dump/testfiles/tbinary.h5 rename to tools/test/testfiles/tbinary.h5 diff --git a/tools/test/h5dump/testfiles/tbitnopaque.h5 b/tools/test/testfiles/tbitnopaque.h5 similarity index 100% rename from tools/test/h5dump/testfiles/tbitnopaque.h5 rename to tools/test/testfiles/tbitnopaque.h5 diff --git a/tools/test/h5dump/testfiles/tchar.h5 b/tools/test/testfiles/tchar.h5 similarity index 100% rename from tools/test/h5dump/testfiles/tchar.h5 rename to tools/test/testfiles/tchar.h5 diff --git a/tools/test/h5dump/testfiles/tcmpdattrintsize.h5 b/tools/test/testfiles/tcmpdattrintsize.h5 similarity index 100% rename from tools/test/h5dump/testfiles/tcmpdattrintsize.h5 rename to tools/test/testfiles/tcmpdattrintsize.h5 diff --git a/tools/test/h5dump/testfiles/tcmpdintarray.h5 b/tools/test/testfiles/tcmpdintarray.h5 similarity index 100% rename from tools/test/h5dump/testfiles/tcmpdintarray.h5 rename to tools/test/testfiles/tcmpdintarray.h5 diff --git a/tools/test/h5dump/testfiles/tcmpdints.h5 b/tools/test/testfiles/tcmpdints.h5 similarity index 100% rename from tools/test/h5dump/testfiles/tcmpdints.h5 rename to tools/test/testfiles/tcmpdints.h5 diff --git a/tools/test/h5dump/testfiles/tcmpdintsize.h5 b/tools/test/testfiles/tcmpdintsize.h5 similarity index 100% rename from tools/test/h5dump/testfiles/tcmpdintsize.h5 rename to tools/test/testfiles/tcmpdintsize.h5 diff --git a/tools/test/h5dump/testfiles/tcomplex.h5 b/tools/test/testfiles/tcomplex.h5 similarity index 100% rename from tools/test/h5dump/testfiles/tcomplex.h5 rename to tools/test/testfiles/tcomplex.h5 diff --git a/tools/test/h5dump/testfiles/tcomplex_be.h5 b/tools/test/testfiles/tcomplex_be.h5 similarity index 100% rename from tools/test/h5dump/testfiles/tcomplex_be.h5 rename to tools/test/testfiles/tcomplex_be.h5 diff --git a/tools/test/h5dump/testfiles/tcompound.h5 b/tools/test/testfiles/tcompound.h5 similarity index 100% rename from tools/test/h5dump/testfiles/tcompound.h5 rename to tools/test/testfiles/tcompound.h5 diff --git a/tools/test/h5dump/testfiles/tcompound_complex.h5 b/tools/test/testfiles/tcompound_complex.h5 similarity index 100% rename from tools/test/h5dump/testfiles/tcompound_complex.h5 rename to tools/test/testfiles/tcompound_complex.h5 diff --git a/tools/test/h5dump/testfiles/tcompound_complex2.h5 b/tools/test/testfiles/tcompound_complex2.h5 similarity index 100% rename from tools/test/h5dump/testfiles/tcompound_complex2.h5 rename to tools/test/testfiles/tcompound_complex2.h5 diff --git a/tools/test/h5dump/testfiles/tdatareg.h5 b/tools/test/testfiles/tdatareg.h5 similarity index 100% rename from tools/test/h5dump/testfiles/tdatareg.h5 rename to tools/test/testfiles/tdatareg.h5 diff --git a/tools/test/h5dump/testfiles/tdset.h5 b/tools/test/testfiles/tdset.h5 similarity index 100% rename from tools/test/h5dump/testfiles/tdset.h5 rename to tools/test/testfiles/tdset.h5 diff --git a/tools/test/h5ls/testfiles/tdset2.h5 b/tools/test/testfiles/tdset2.h5 similarity index 100% rename from tools/test/h5ls/testfiles/tdset2.h5 rename to tools/test/testfiles/tdset2.h5 diff --git a/tools/test/h5ls/testfiles/tdset_idx.h5 b/tools/test/testfiles/tdset_idx.h5 similarity index 100% rename from tools/test/h5ls/testfiles/tdset_idx.h5 rename to tools/test/testfiles/tdset_idx.h5 diff --git a/tools/test/h5dump/testfiles/tempty.h5 b/tools/test/testfiles/tempty.h5 similarity index 100% rename from tools/test/h5dump/testfiles/tempty.h5 rename to tools/test/testfiles/tempty.h5 diff --git a/tools/test/h5dump/testfiles/test_subfiling_precreate_rank_0.h5 b/tools/test/testfiles/test_subfiling_precreate_rank_0.h5 similarity index 100% rename from tools/test/h5dump/testfiles/test_subfiling_precreate_rank_0.h5 rename to tools/test/testfiles/test_subfiling_precreate_rank_0.h5 diff --git a/tools/test/h5dump/testfiles/test_subfiling_stripe_sizes.h5 b/tools/test/testfiles/test_subfiling_stripe_sizes.h5 similarity index 100% rename from tools/test/h5dump/testfiles/test_subfiling_stripe_sizes.h5 rename to tools/test/testfiles/test_subfiling_stripe_sizes.h5 diff --git a/tools/test/h5dump/testfiles/textlink.h5 b/tools/test/testfiles/textlink.h5 similarity index 100% rename from tools/test/h5dump/testfiles/textlink.h5 rename to tools/test/testfiles/textlink.h5 diff --git a/tools/test/h5dump/testfiles/textlinkfar.h5 b/tools/test/testfiles/textlinkfar.h5 similarity index 100% rename from tools/test/h5dump/testfiles/textlinkfar.h5 rename to tools/test/testfiles/textlinkfar.h5 diff --git a/tools/test/h5dump/testfiles/textlinksrc.h5 b/tools/test/testfiles/textlinksrc.h5 similarity index 100% rename from tools/test/h5dump/testfiles/textlinksrc.h5 rename to tools/test/testfiles/textlinksrc.h5 diff --git a/tools/test/h5dump/testfiles/textlinktar.h5 b/tools/test/testfiles/textlinktar.h5 similarity index 100% rename from tools/test/h5dump/testfiles/textlinktar.h5 rename to tools/test/testfiles/textlinktar.h5 diff --git a/tools/test/h5import/testfiles/textpfe.h5 b/tools/test/testfiles/textpfe.h5 similarity index 100% rename from tools/test/h5import/testfiles/textpfe.h5 rename to tools/test/testfiles/textpfe.h5 diff --git a/tools/test/h5dump/testfiles/tfamily00000.h5 b/tools/test/testfiles/tfamily00000.h5 similarity index 100% rename from tools/test/h5dump/testfiles/tfamily00000.h5 rename to tools/test/testfiles/tfamily00000.h5 diff --git a/tools/test/h5dump/testfiles/tfamily00001.h5 b/tools/test/testfiles/tfamily00001.h5 similarity index 100% rename from tools/test/h5dump/testfiles/tfamily00001.h5 rename to tools/test/testfiles/tfamily00001.h5 diff --git a/tools/test/h5dump/testfiles/tfamily00002.h5 b/tools/test/testfiles/tfamily00002.h5 similarity index 100% rename from tools/test/h5dump/testfiles/tfamily00002.h5 rename to tools/test/testfiles/tfamily00002.h5 diff --git a/tools/test/h5dump/testfiles/tfamily00003.h5 b/tools/test/testfiles/tfamily00003.h5 similarity index 100% rename from tools/test/h5dump/testfiles/tfamily00003.h5 rename to tools/test/testfiles/tfamily00003.h5 diff --git a/tools/test/h5dump/testfiles/tfamily00004.h5 b/tools/test/testfiles/tfamily00004.h5 similarity index 100% rename from tools/test/h5dump/testfiles/tfamily00004.h5 rename to tools/test/testfiles/tfamily00004.h5 diff --git a/tools/test/h5dump/testfiles/tfamily00005.h5 b/tools/test/testfiles/tfamily00005.h5 similarity index 100% rename from tools/test/h5dump/testfiles/tfamily00005.h5 rename to tools/test/testfiles/tfamily00005.h5 diff --git a/tools/test/h5dump/testfiles/tfamily00006.h5 b/tools/test/testfiles/tfamily00006.h5 similarity index 100% rename from tools/test/h5dump/testfiles/tfamily00006.h5 rename to tools/test/testfiles/tfamily00006.h5 diff --git a/tools/test/h5dump/testfiles/tfamily00007.h5 b/tools/test/testfiles/tfamily00007.h5 similarity index 100% rename from tools/test/h5dump/testfiles/tfamily00007.h5 rename to tools/test/testfiles/tfamily00007.h5 diff --git a/tools/test/h5dump/testfiles/tfamily00008.h5 b/tools/test/testfiles/tfamily00008.h5 similarity index 100% rename from tools/test/h5dump/testfiles/tfamily00008.h5 rename to tools/test/testfiles/tfamily00008.h5 diff --git a/tools/test/h5dump/testfiles/tfamily00009.h5 b/tools/test/testfiles/tfamily00009.h5 similarity index 100% rename from tools/test/h5dump/testfiles/tfamily00009.h5 rename to tools/test/testfiles/tfamily00009.h5 diff --git a/tools/test/h5dump/testfiles/tfamily00010.h5 b/tools/test/testfiles/tfamily00010.h5 similarity index 100% rename from tools/test/h5dump/testfiles/tfamily00010.h5 rename to tools/test/testfiles/tfamily00010.h5 diff --git a/tools/test/h5dump/testfiles/tfcontents1.h5 b/tools/test/testfiles/tfcontents1.h5 similarity index 100% rename from tools/test/h5dump/testfiles/tfcontents1.h5 rename to tools/test/testfiles/tfcontents1.h5 diff --git a/tools/test/h5dump/testfiles/tfcontents2.h5 b/tools/test/testfiles/tfcontents2.h5 similarity index 100% rename from tools/test/h5dump/testfiles/tfcontents2.h5 rename to tools/test/testfiles/tfcontents2.h5 diff --git a/tools/test/h5dump/testfiles/tfilters.h5 b/tools/test/testfiles/tfilters.h5 similarity index 100% rename from tools/test/h5dump/testfiles/tfilters.h5 rename to tools/test/testfiles/tfilters.h5 diff --git a/tools/test/h5dump/testfiles/tfloat16.h5 b/tools/test/testfiles/tfloat16.h5 similarity index 100% rename from tools/test/h5dump/testfiles/tfloat16.h5 rename to tools/test/testfiles/tfloat16.h5 diff --git a/tools/test/h5dump/testfiles/tfloat16_be.h5 b/tools/test/testfiles/tfloat16_be.h5 similarity index 100% rename from tools/test/h5dump/testfiles/tfloat16_be.h5 rename to tools/test/testfiles/tfloat16_be.h5 diff --git a/tools/test/h5dump/testfiles/tfloatsattrs.h5 b/tools/test/testfiles/tfloatsattrs.h5 similarity index 100% rename from tools/test/h5dump/testfiles/tfloatsattrs.h5 rename to tools/test/testfiles/tfloatsattrs.h5 diff --git a/tools/test/h5dump/testfiles/tfpformat.h5 b/tools/test/testfiles/tfpformat.h5 similarity index 100% rename from tools/test/h5dump/testfiles/tfpformat.h5 rename to tools/test/testfiles/tfpformat.h5 diff --git a/tools/test/h5dump/testfiles/tfvalues.h5 b/tools/test/testfiles/tfvalues.h5 similarity index 100% rename from tools/test/h5dump/testfiles/tfvalues.h5 rename to tools/test/testfiles/tfvalues.h5 diff --git a/tools/test/h5dump/testfiles/tgroup.h5 b/tools/test/testfiles/tgroup.h5 similarity index 100% rename from tools/test/h5dump/testfiles/tgroup.h5 rename to tools/test/testfiles/tgroup.h5 diff --git a/tools/test/h5dump/testfiles/tgrp_comments.h5 b/tools/test/testfiles/tgrp_comments.h5 similarity index 100% rename from tools/test/h5dump/testfiles/tgrp_comments.h5 rename to tools/test/testfiles/tgrp_comments.h5 diff --git a/tools/test/h5dump/testfiles/tgrpnullspace.h5 b/tools/test/testfiles/tgrpnullspace.h5 similarity index 100% rename from tools/test/h5dump/testfiles/tgrpnullspace.h5 rename to tools/test/testfiles/tgrpnullspace.h5 diff --git a/tools/test/h5dump/testfiles/thlink.h5 b/tools/test/testfiles/thlink.h5 similarity index 100% rename from tools/test/h5dump/testfiles/thlink.h5 rename to tools/test/testfiles/thlink.h5 diff --git a/tools/test/h5dump/testfiles/thyperslab.h5 b/tools/test/testfiles/thyperslab.h5 similarity index 100% rename from tools/test/h5dump/testfiles/thyperslab.h5 rename to tools/test/testfiles/thyperslab.h5 diff --git a/tools/test/h5dump/testfiles/tints4dims.h5 b/tools/test/testfiles/tints4dims.h5 similarity index 100% rename from tools/test/h5dump/testfiles/tints4dims.h5 rename to tools/test/testfiles/tints4dims.h5 diff --git a/tools/test/h5dump/testfiles/tintsattrs.h5 b/tools/test/testfiles/tintsattrs.h5 similarity index 100% rename from tools/test/h5dump/testfiles/tintsattrs.h5 rename to tools/test/testfiles/tintsattrs.h5 diff --git a/tools/test/h5dump/testfiles/tintsnodata.h5 b/tools/test/testfiles/tintsnodata.h5 similarity index 100% rename from tools/test/h5dump/testfiles/tintsnodata.h5 rename to tools/test/testfiles/tintsnodata.h5 diff --git a/tools/test/h5dump/testfiles/tlarge_objname.h5 b/tools/test/testfiles/tlarge_objname.h5 similarity index 100% rename from tools/test/h5dump/testfiles/tlarge_objname.h5 rename to tools/test/testfiles/tlarge_objname.h5 diff --git a/tools/test/h5dump/testfiles/tldouble.h5 b/tools/test/testfiles/tldouble.h5 similarity index 100% rename from tools/test/h5dump/testfiles/tldouble.h5 rename to tools/test/testfiles/tldouble.h5 diff --git a/tools/test/h5dump/testfiles/tldouble_scalar.h5 b/tools/test/testfiles/tldouble_scalar.h5 similarity index 100% rename from tools/test/h5dump/testfiles/tldouble_scalar.h5 rename to tools/test/testfiles/tldouble_scalar.h5 diff --git a/tools/test/h5dump/testfiles/tlonglinks.h5 b/tools/test/testfiles/tlonglinks.h5 similarity index 100% rename from tools/test/h5dump/testfiles/tlonglinks.h5 rename to tools/test/testfiles/tlonglinks.h5 diff --git a/tools/test/h5dump/testfiles/tloop.h5 b/tools/test/testfiles/tloop.h5 similarity index 100% rename from tools/test/h5dump/testfiles/tloop.h5 rename to tools/test/testfiles/tloop.h5 diff --git a/tools/test/h5dump/testfiles/tmulti-b.h5 b/tools/test/testfiles/tmulti-b.h5 similarity index 100% rename from tools/test/h5dump/testfiles/tmulti-b.h5 rename to tools/test/testfiles/tmulti-b.h5 diff --git a/tools/test/h5dump/testfiles/tmulti-g.h5 b/tools/test/testfiles/tmulti-g.h5 similarity index 100% rename from tools/test/h5dump/testfiles/tmulti-g.h5 rename to tools/test/testfiles/tmulti-g.h5 diff --git a/tools/test/h5dump/testfiles/tmulti-l.h5 b/tools/test/testfiles/tmulti-l.h5 similarity index 100% rename from tools/test/h5dump/testfiles/tmulti-l.h5 rename to tools/test/testfiles/tmulti-l.h5 diff --git a/tools/test/h5dump/testfiles/tmulti-o.h5 b/tools/test/testfiles/tmulti-o.h5 similarity index 100% rename from tools/test/h5dump/testfiles/tmulti-o.h5 rename to tools/test/testfiles/tmulti-o.h5 diff --git a/tools/test/h5dump/testfiles/tmulti-r.h5 b/tools/test/testfiles/tmulti-r.h5 similarity index 100% rename from tools/test/h5dump/testfiles/tmulti-r.h5 rename to tools/test/testfiles/tmulti-r.h5 diff --git a/tools/test/h5dump/testfiles/tmulti-s.h5 b/tools/test/testfiles/tmulti-s.h5 similarity index 100% rename from tools/test/h5dump/testfiles/tmulti-s.h5 rename to tools/test/testfiles/tmulti-s.h5 diff --git a/tools/test/h5dump/testfiles/tnamed_dtype_attr.h5 b/tools/test/testfiles/tnamed_dtype_attr.h5 similarity index 100% rename from tools/test/h5dump/testfiles/tnamed_dtype_attr.h5 rename to tools/test/testfiles/tnamed_dtype_attr.h5 diff --git a/tools/test/h5dump/testfiles/tnestedcmpddt.h5 b/tools/test/testfiles/tnestedcmpddt.h5 similarity index 100% rename from tools/test/h5dump/testfiles/tnestedcmpddt.h5 rename to tools/test/testfiles/tnestedcmpddt.h5 diff --git a/tools/test/h5dump/testfiles/tnestedcomp.h5 b/tools/test/testfiles/tnestedcomp.h5 similarity index 100% rename from tools/test/h5dump/testfiles/tnestedcomp.h5 rename to tools/test/testfiles/tnestedcomp.h5 diff --git a/tools/test/h5dump/testfiles/tno-subset.h5 b/tools/test/testfiles/tno-subset.h5 similarity index 100% rename from tools/test/h5dump/testfiles/tno-subset.h5 rename to tools/test/testfiles/tno-subset.h5 diff --git a/tools/test/h5dump/testfiles/tnullspace.h5 b/tools/test/testfiles/tnullspace.h5 similarity index 100% rename from tools/test/h5dump/testfiles/tnullspace.h5 rename to tools/test/testfiles/tnullspace.h5 diff --git a/tools/test/h5dump/testfiles/torderattr.h5 b/tools/test/testfiles/torderattr.h5 similarity index 100% rename from tools/test/h5dump/testfiles/torderattr.h5 rename to tools/test/testfiles/torderattr.h5 diff --git a/tools/test/h5dump/testfiles/tordergr.h5 b/tools/test/testfiles/tordergr.h5 similarity index 100% rename from tools/test/h5dump/testfiles/tordergr.h5 rename to tools/test/testfiles/tordergr.h5 diff --git a/tools/test/h5dump/testfiles/trefer_attr.h5 b/tools/test/testfiles/trefer_attr.h5 similarity index 100% rename from tools/test/h5dump/testfiles/trefer_attr.h5 rename to tools/test/testfiles/trefer_attr.h5 diff --git a/tools/test/h5dump/testfiles/trefer_compat.h5 b/tools/test/testfiles/trefer_compat.h5 similarity index 100% rename from tools/test/h5dump/testfiles/trefer_compat.h5 rename to tools/test/testfiles/trefer_compat.h5 diff --git a/tools/test/h5dump/testfiles/trefer_ext1.h5 b/tools/test/testfiles/trefer_ext1.h5 similarity index 100% rename from tools/test/h5dump/testfiles/trefer_ext1.h5 rename to tools/test/testfiles/trefer_ext1.h5 diff --git a/tools/test/h5dump/testfiles/trefer_ext2.h5 b/tools/test/testfiles/trefer_ext2.h5 similarity index 100% rename from tools/test/h5dump/testfiles/trefer_ext2.h5 rename to tools/test/testfiles/trefer_ext2.h5 diff --git a/tools/test/h5dump/testfiles/trefer_grp.h5 b/tools/test/testfiles/trefer_grp.h5 similarity index 100% rename from tools/test/h5dump/testfiles/trefer_grp.h5 rename to tools/test/testfiles/trefer_grp.h5 diff --git a/tools/test/h5dump/testfiles/trefer_obj.h5 b/tools/test/testfiles/trefer_obj.h5 similarity index 100% rename from tools/test/h5dump/testfiles/trefer_obj.h5 rename to tools/test/testfiles/trefer_obj.h5 diff --git a/tools/test/h5dump/testfiles/trefer_obj_del.h5 b/tools/test/testfiles/trefer_obj_del.h5 similarity index 100% rename from tools/test/h5dump/testfiles/trefer_obj_del.h5 rename to tools/test/testfiles/trefer_obj_del.h5 diff --git a/tools/test/h5dump/testfiles/trefer_param.h5 b/tools/test/testfiles/trefer_param.h5 similarity index 100% rename from tools/test/h5dump/testfiles/trefer_param.h5 rename to tools/test/testfiles/trefer_param.h5 diff --git a/tools/test/h5dump/testfiles/trefer_reg.h5 b/tools/test/testfiles/trefer_reg.h5 similarity index 100% rename from tools/test/h5dump/testfiles/trefer_reg.h5 rename to tools/test/testfiles/trefer_reg.h5 diff --git a/tools/test/h5dump/testfiles/trefer_reg_1d.h5 b/tools/test/testfiles/trefer_reg_1d.h5 similarity index 100% rename from tools/test/h5dump/testfiles/trefer_reg_1d.h5 rename to tools/test/testfiles/trefer_reg_1d.h5 diff --git a/tools/test/h5dump/testfiles/tsaf.h5 b/tools/test/testfiles/tsaf.h5 similarity index 100% rename from tools/test/h5dump/testfiles/tsaf.h5 rename to tools/test/testfiles/tsaf.h5 diff --git a/tools/test/h5dump/testfiles/tscalarattrintsize.h5 b/tools/test/testfiles/tscalarattrintsize.h5 similarity index 100% rename from tools/test/h5dump/testfiles/tscalarattrintsize.h5 rename to tools/test/testfiles/tscalarattrintsize.h5 diff --git a/tools/test/h5dump/testfiles/tscalarintattrsize.h5 b/tools/test/testfiles/tscalarintattrsize.h5 similarity index 100% rename from tools/test/h5dump/testfiles/tscalarintattrsize.h5 rename to tools/test/testfiles/tscalarintattrsize.h5 diff --git a/tools/test/h5dump/testfiles/tscalarintsize.h5 b/tools/test/testfiles/tscalarintsize.h5 similarity index 100% rename from tools/test/h5dump/testfiles/tscalarintsize.h5 rename to tools/test/testfiles/tscalarintsize.h5 diff --git a/tools/test/h5dump/testfiles/tscalarstring.h5 b/tools/test/testfiles/tscalarstring.h5 similarity index 100% rename from tools/test/h5dump/testfiles/tscalarstring.h5 rename to tools/test/testfiles/tscalarstring.h5 diff --git a/tools/test/h5dump/testfiles/tslink.h5 b/tools/test/testfiles/tslink.h5 similarity index 100% rename from tools/test/h5dump/testfiles/tslink.h5 rename to tools/test/testfiles/tslink.h5 diff --git a/tools/test/h5dump/testfiles/tsoftlinks.h5 b/tools/test/testfiles/tsoftlinks.h5 similarity index 100% rename from tools/test/h5dump/testfiles/tsoftlinks.h5 rename to tools/test/testfiles/tsoftlinks.h5 diff --git a/tools/test/h5dump/testfiles/tsplit_file-m.h5 b/tools/test/testfiles/tsplit_file-m.h5 similarity index 100% rename from tools/test/h5dump/testfiles/tsplit_file-m.h5 rename to tools/test/testfiles/tsplit_file-m.h5 diff --git a/tools/test/h5dump/testfiles/tsplit_file-r.h5 b/tools/test/testfiles/tsplit_file-r.h5 similarity index 100% rename from tools/test/h5dump/testfiles/tsplit_file-r.h5 rename to tools/test/testfiles/tsplit_file-r.h5 diff --git a/tools/test/h5dump/testfiles/tst_onion_dset_1d.h5 b/tools/test/testfiles/tst_onion_dset_1d.h5 similarity index 100% rename from tools/test/h5dump/testfiles/tst_onion_dset_1d.h5 rename to tools/test/testfiles/tst_onion_dset_1d.h5 diff --git a/tools/test/h5dump/testfiles/tst_onion_dset_1d.h5.onion b/tools/test/testfiles/tst_onion_dset_1d.h5.onion similarity index 100% rename from tools/test/h5dump/testfiles/tst_onion_dset_1d.h5.onion rename to tools/test/testfiles/tst_onion_dset_1d.h5.onion diff --git a/tools/test/h5dump/testfiles/tst_onion_dset_ext.h5 b/tools/test/testfiles/tst_onion_dset_ext.h5 similarity index 100% rename from tools/test/h5dump/testfiles/tst_onion_dset_ext.h5 rename to tools/test/testfiles/tst_onion_dset_ext.h5 diff --git a/tools/test/h5dump/testfiles/tst_onion_dset_ext.h5.onion b/tools/test/testfiles/tst_onion_dset_ext.h5.onion similarity index 100% rename from tools/test/h5dump/testfiles/tst_onion_dset_ext.h5.onion rename to tools/test/testfiles/tst_onion_dset_ext.h5.onion diff --git a/tools/test/h5dump/testfiles/tst_onion_objs.h5 b/tools/test/testfiles/tst_onion_objs.h5 similarity index 100% rename from tools/test/h5dump/testfiles/tst_onion_objs.h5 rename to tools/test/testfiles/tst_onion_objs.h5 diff --git a/tools/test/h5dump/testfiles/tst_onion_objs.h5.onion b/tools/test/testfiles/tst_onion_objs.h5.onion similarity index 100% rename from tools/test/h5dump/testfiles/tst_onion_objs.h5.onion rename to tools/test/testfiles/tst_onion_objs.h5.onion diff --git a/tools/test/h5dump/testfiles/tstr.h5 b/tools/test/testfiles/tstr.h5 similarity index 100% rename from tools/test/h5dump/testfiles/tstr.h5 rename to tools/test/testfiles/tstr.h5 diff --git a/tools/test/h5dump/testfiles/tstr2.h5 b/tools/test/testfiles/tstr2.h5 similarity index 100% rename from tools/test/h5dump/testfiles/tstr2.h5 rename to tools/test/testfiles/tstr2.h5 diff --git a/tools/test/h5dump/testfiles/tstr3.h5 b/tools/test/testfiles/tstr3.h5 similarity index 100% rename from tools/test/h5dump/testfiles/tstr3.h5 rename to tools/test/testfiles/tstr3.h5 diff --git a/tools/test/h5copy/testfiles/tudfilter.h5 b/tools/test/testfiles/tudfilter.h5 similarity index 100% rename from tools/test/h5copy/testfiles/tudfilter.h5 rename to tools/test/testfiles/tudfilter.h5 diff --git a/tools/test/h5copy/testfiles/tudfilter2.h5 b/tools/test/testfiles/tudfilter2.h5 similarity index 100% rename from tools/test/h5copy/testfiles/tudfilter2.h5 rename to tools/test/testfiles/tudfilter2.h5 diff --git a/tools/test/h5dump/testfiles/tudlink.h5 b/tools/test/testfiles/tudlink.h5 similarity index 100% rename from tools/test/h5dump/testfiles/tudlink.h5 rename to tools/test/testfiles/tudlink.h5 diff --git a/tools/test/h5dump/testfiles/tvldtypes1.h5 b/tools/test/testfiles/tvldtypes1.h5 similarity index 100% rename from tools/test/h5dump/testfiles/tvldtypes1.h5 rename to tools/test/testfiles/tvldtypes1.h5 diff --git a/tools/test/h5dump/testfiles/tvldtypes2.h5 b/tools/test/testfiles/tvldtypes2.h5 similarity index 100% rename from tools/test/h5dump/testfiles/tvldtypes2.h5 rename to tools/test/testfiles/tvldtypes2.h5 diff --git a/tools/test/h5dump/testfiles/tvldtypes3.h5 b/tools/test/testfiles/tvldtypes3.h5 similarity index 100% rename from tools/test/h5dump/testfiles/tvldtypes3.h5 rename to tools/test/testfiles/tvldtypes3.h5 diff --git a/tools/test/h5dump/testfiles/tvldtypes4.h5 b/tools/test/testfiles/tvldtypes4.h5 similarity index 100% rename from tools/test/h5dump/testfiles/tvldtypes4.h5 rename to tools/test/testfiles/tvldtypes4.h5 diff --git a/tools/test/h5dump/testfiles/tvldtypes5.h5 b/tools/test/testfiles/tvldtypes5.h5 similarity index 100% rename from tools/test/h5dump/testfiles/tvldtypes5.h5 rename to tools/test/testfiles/tvldtypes5.h5 diff --git a/tools/test/h5dump/testfiles/tvlenstr_array.h5 b/tools/test/testfiles/tvlenstr_array.h5 similarity index 100% rename from tools/test/h5dump/testfiles/tvlenstr_array.h5 rename to tools/test/testfiles/tvlenstr_array.h5 diff --git a/tools/test/h5dump/testfiles/tvlstr.h5 b/tools/test/testfiles/tvlstr.h5 similarity index 100% rename from tools/test/h5dump/testfiles/tvlstr.h5 rename to tools/test/testfiles/tvlstr.h5 diff --git a/tools/test/h5dump/testfiles/tvms.h5 b/tools/test/testfiles/tvms.h5 similarity index 100% rename from tools/test/h5dump/testfiles/tvms.h5 rename to tools/test/testfiles/tvms.h5 diff --git a/tools/test/h5jam/testfiles/twithub.h5 b/tools/test/testfiles/twithub.h5 similarity index 100% rename from tools/test/h5jam/testfiles/twithub.h5 rename to tools/test/testfiles/twithub.h5 diff --git a/tools/test/h5jam/testfiles/twithub513.h5 b/tools/test/testfiles/twithub513.h5 similarity index 100% rename from tools/test/h5jam/testfiles/twithub513.h5 rename to tools/test/testfiles/twithub513.h5 diff --git a/tools/test/h5import/testfiles/txtfp32.h5 b/tools/test/testfiles/txtfp32.h5 similarity index 100% rename from tools/test/h5import/testfiles/txtfp32.h5 rename to tools/test/testfiles/txtfp32.h5 diff --git a/tools/test/h5import/testfiles/txtfp64.h5 b/tools/test/testfiles/txtfp64.h5 similarity index 100% rename from tools/test/h5import/testfiles/txtfp64.h5 rename to tools/test/testfiles/txtfp64.h5 diff --git a/tools/test/h5import/testfiles/txtin16.h5 b/tools/test/testfiles/txtin16.h5 similarity index 100% rename from tools/test/h5import/testfiles/txtin16.h5 rename to tools/test/testfiles/txtin16.h5 diff --git a/tools/test/h5import/testfiles/txtin32.h5 b/tools/test/testfiles/txtin32.h5 similarity index 100% rename from tools/test/h5import/testfiles/txtin32.h5 rename to tools/test/testfiles/txtin32.h5 diff --git a/tools/test/h5import/testfiles/txtin8.h5 b/tools/test/testfiles/txtin8.h5 similarity index 100% rename from tools/test/h5import/testfiles/txtin8.h5 rename to tools/test/testfiles/txtin8.h5 diff --git a/tools/test/h5import/testfiles/txtstr.h5 b/tools/test/testfiles/txtstr.h5 similarity index 100% rename from tools/test/h5import/testfiles/txtstr.h5 rename to tools/test/testfiles/txtstr.h5 diff --git a/tools/test/h5import/testfiles/txtuin16.h5 b/tools/test/testfiles/txtuin16.h5 similarity index 100% rename from tools/test/h5import/testfiles/txtuin16.h5 rename to tools/test/testfiles/txtuin16.h5 diff --git a/tools/test/h5import/testfiles/txtuin32.h5 b/tools/test/testfiles/txtuin32.h5 similarity index 100% rename from tools/test/h5import/testfiles/txtuin32.h5 rename to tools/test/testfiles/txtuin32.h5 diff --git a/tools/test/h5dump/testfiles/vds/1_a.h5 b/tools/test/testfiles/vds/1_a.h5 similarity index 100% rename from tools/test/h5dump/testfiles/vds/1_a.h5 rename to tools/test/testfiles/vds/1_a.h5 diff --git a/tools/test/h5dump/testfiles/vds/1_b.h5 b/tools/test/testfiles/vds/1_b.h5 similarity index 100% rename from tools/test/h5dump/testfiles/vds/1_b.h5 rename to tools/test/testfiles/vds/1_b.h5 diff --git a/tools/test/h5dump/testfiles/vds/1_c.h5 b/tools/test/testfiles/vds/1_c.h5 similarity index 100% rename from tools/test/h5dump/testfiles/vds/1_c.h5 rename to tools/test/testfiles/vds/1_c.h5 diff --git a/tools/test/h5dump/testfiles/vds/1_d.h5 b/tools/test/testfiles/vds/1_d.h5 similarity index 100% rename from tools/test/h5dump/testfiles/vds/1_d.h5 rename to tools/test/testfiles/vds/1_d.h5 diff --git a/tools/test/h5dump/testfiles/vds/1_e.h5 b/tools/test/testfiles/vds/1_e.h5 similarity index 100% rename from tools/test/h5dump/testfiles/vds/1_e.h5 rename to tools/test/testfiles/vds/1_e.h5 diff --git a/tools/test/h5dump/testfiles/vds/1_f.h5 b/tools/test/testfiles/vds/1_f.h5 similarity index 100% rename from tools/test/h5dump/testfiles/vds/1_f.h5 rename to tools/test/testfiles/vds/1_f.h5 diff --git a/tools/test/h5dump/testfiles/vds/1_vds.h5 b/tools/test/testfiles/vds/1_vds.h5 similarity index 100% rename from tools/test/h5dump/testfiles/vds/1_vds.h5 rename to tools/test/testfiles/vds/1_vds.h5 diff --git a/tools/test/h5dump/testfiles/vds/2_a.h5 b/tools/test/testfiles/vds/2_a.h5 similarity index 100% rename from tools/test/h5dump/testfiles/vds/2_a.h5 rename to tools/test/testfiles/vds/2_a.h5 diff --git a/tools/test/h5dump/testfiles/vds/2_b.h5 b/tools/test/testfiles/vds/2_b.h5 similarity index 100% rename from tools/test/h5dump/testfiles/vds/2_b.h5 rename to tools/test/testfiles/vds/2_b.h5 diff --git a/tools/test/h5dump/testfiles/vds/2_c.h5 b/tools/test/testfiles/vds/2_c.h5 similarity index 100% rename from tools/test/h5dump/testfiles/vds/2_c.h5 rename to tools/test/testfiles/vds/2_c.h5 diff --git a/tools/test/h5dump/testfiles/vds/2_d.h5 b/tools/test/testfiles/vds/2_d.h5 similarity index 100% rename from tools/test/h5dump/testfiles/vds/2_d.h5 rename to tools/test/testfiles/vds/2_d.h5 diff --git a/tools/test/h5dump/testfiles/vds/2_e.h5 b/tools/test/testfiles/vds/2_e.h5 similarity index 100% rename from tools/test/h5dump/testfiles/vds/2_e.h5 rename to tools/test/testfiles/vds/2_e.h5 diff --git a/tools/test/h5dump/testfiles/vds/2_vds.h5 b/tools/test/testfiles/vds/2_vds.h5 similarity index 100% rename from tools/test/h5dump/testfiles/vds/2_vds.h5 rename to tools/test/testfiles/vds/2_vds.h5 diff --git a/tools/test/h5dump/testfiles/vds/3_1_vds.h5 b/tools/test/testfiles/vds/3_1_vds.h5 similarity index 100% rename from tools/test/h5dump/testfiles/vds/3_1_vds.h5 rename to tools/test/testfiles/vds/3_1_vds.h5 diff --git a/tools/test/h5dump/testfiles/vds/3_2_vds.h5 b/tools/test/testfiles/vds/3_2_vds.h5 similarity index 100% rename from tools/test/h5dump/testfiles/vds/3_2_vds.h5 rename to tools/test/testfiles/vds/3_2_vds.h5 diff --git a/tools/test/h5dump/testfiles/vds/4_0.h5 b/tools/test/testfiles/vds/4_0.h5 similarity index 100% rename from tools/test/h5dump/testfiles/vds/4_0.h5 rename to tools/test/testfiles/vds/4_0.h5 diff --git a/tools/test/h5dump/testfiles/vds/4_1.h5 b/tools/test/testfiles/vds/4_1.h5 similarity index 100% rename from tools/test/h5dump/testfiles/vds/4_1.h5 rename to tools/test/testfiles/vds/4_1.h5 diff --git a/tools/test/h5dump/testfiles/vds/4_2.h5 b/tools/test/testfiles/vds/4_2.h5 similarity index 100% rename from tools/test/h5dump/testfiles/vds/4_2.h5 rename to tools/test/testfiles/vds/4_2.h5 diff --git a/tools/test/h5dump/testfiles/vds/4_vds.h5 b/tools/test/testfiles/vds/4_vds.h5 similarity index 100% rename from tools/test/h5dump/testfiles/vds/4_vds.h5 rename to tools/test/testfiles/vds/4_vds.h5 diff --git a/tools/test/h5dump/testfiles/vds/5_a.h5 b/tools/test/testfiles/vds/5_a.h5 similarity index 100% rename from tools/test/h5dump/testfiles/vds/5_a.h5 rename to tools/test/testfiles/vds/5_a.h5 diff --git a/tools/test/h5dump/testfiles/vds/5_b.h5 b/tools/test/testfiles/vds/5_b.h5 similarity index 100% rename from tools/test/h5dump/testfiles/vds/5_b.h5 rename to tools/test/testfiles/vds/5_b.h5 diff --git a/tools/test/h5dump/testfiles/vds/5_c.h5 b/tools/test/testfiles/vds/5_c.h5 similarity index 100% rename from tools/test/h5dump/testfiles/vds/5_c.h5 rename to tools/test/testfiles/vds/5_c.h5 diff --git a/tools/test/h5dump/testfiles/vds/5_vds.h5 b/tools/test/testfiles/vds/5_vds.h5 similarity index 100% rename from tools/test/h5dump/testfiles/vds/5_vds.h5 rename to tools/test/testfiles/vds/5_vds.h5 diff --git a/tools/test/h5dump/testfiles/vds/a.h5 b/tools/test/testfiles/vds/a.h5 similarity index 100% rename from tools/test/h5dump/testfiles/vds/a.h5 rename to tools/test/testfiles/vds/a.h5 diff --git a/tools/test/h5dump/testfiles/vds/b.h5 b/tools/test/testfiles/vds/b.h5 similarity index 100% rename from tools/test/h5dump/testfiles/vds/b.h5 rename to tools/test/testfiles/vds/b.h5 diff --git a/tools/test/h5dump/testfiles/vds/c.h5 b/tools/test/testfiles/vds/c.h5 similarity index 100% rename from tools/test/h5dump/testfiles/vds/c.h5 rename to tools/test/testfiles/vds/c.h5 diff --git a/tools/test/h5dump/testfiles/vds/d.h5 b/tools/test/testfiles/vds/d.h5 similarity index 100% rename from tools/test/h5dump/testfiles/vds/d.h5 rename to tools/test/testfiles/vds/d.h5 diff --git a/tools/test/h5dump/testfiles/vds/f-0.h5 b/tools/test/testfiles/vds/f-0.h5 similarity index 100% rename from tools/test/h5dump/testfiles/vds/f-0.h5 rename to tools/test/testfiles/vds/f-0.h5 diff --git a/tools/test/h5dump/testfiles/vds/f-3.h5 b/tools/test/testfiles/vds/f-3.h5 similarity index 100% rename from tools/test/h5dump/testfiles/vds/f-3.h5 rename to tools/test/testfiles/vds/f-3.h5 diff --git a/tools/test/h5dump/testfiles/vds/vds-eiger.h5 b/tools/test/testfiles/vds/vds-eiger.h5 similarity index 100% rename from tools/test/h5dump/testfiles/vds/vds-eiger.h5 rename to tools/test/testfiles/vds/vds-eiger.h5 diff --git a/tools/test/h5dump/testfiles/vds/vds-percival-unlim-maxmin.h5 b/tools/test/testfiles/vds/vds-percival-unlim-maxmin.h5 similarity index 100% rename from tools/test/h5dump/testfiles/vds/vds-percival-unlim-maxmin.h5 rename to tools/test/testfiles/vds/vds-percival-unlim-maxmin.h5 diff --git a/tools/test/h5dump/testfiles/xml/tbitfields.h5 b/tools/test/testfiles/xml/tbitfields.h5 similarity index 100% rename from tools/test/h5dump/testfiles/xml/tbitfields.h5 rename to tools/test/testfiles/xml/tbitfields.h5 diff --git a/tools/test/h5dump/testfiles/xml/tcompound2.h5 b/tools/test/testfiles/xml/tcompound2.h5 similarity index 100% rename from tools/test/h5dump/testfiles/xml/tcompound2.h5 rename to tools/test/testfiles/xml/tcompound2.h5 diff --git a/tools/test/h5dump/testfiles/xml/tdset2.h5 b/tools/test/testfiles/xml/tdset2.h5 similarity index 100% rename from tools/test/h5dump/testfiles/xml/tdset2.h5 rename to tools/test/testfiles/xml/tdset2.h5 diff --git a/tools/test/h5dump/testfiles/xml/tenum.h5 b/tools/test/testfiles/xml/tenum.h5 similarity index 100% rename from tools/test/h5dump/testfiles/xml/tenum.h5 rename to tools/test/testfiles/xml/tenum.h5 diff --git a/tools/test/h5dump/testfiles/xml/test35.nc b/tools/test/testfiles/xml/test35.nc similarity index 100% rename from tools/test/h5dump/testfiles/xml/test35.nc rename to tools/test/testfiles/xml/test35.nc diff --git a/tools/test/h5dump/testfiles/xml/tloop2.h5 b/tools/test/testfiles/xml/tloop2.h5 similarity index 100% rename from tools/test/h5dump/testfiles/xml/tloop2.h5 rename to tools/test/testfiles/xml/tloop2.h5 diff --git a/tools/test/h5dump/testfiles/xml/tmany.h5 b/tools/test/testfiles/xml/tmany.h5 similarity index 100% rename from tools/test/h5dump/testfiles/xml/tmany.h5 rename to tools/test/testfiles/xml/tmany.h5 diff --git a/tools/test/h5dump/testfiles/xml/tname-amp.h5 b/tools/test/testfiles/xml/tname-amp.h5 similarity index 100% rename from tools/test/h5dump/testfiles/xml/tname-amp.h5 rename to tools/test/testfiles/xml/tname-amp.h5 diff --git a/tools/test/h5dump/testfiles/xml/tname-apos.h5 b/tools/test/testfiles/xml/tname-apos.h5 similarity index 100% rename from tools/test/h5dump/testfiles/xml/tname-apos.h5 rename to tools/test/testfiles/xml/tname-apos.h5 diff --git a/tools/test/h5dump/testfiles/xml/tname-gt.h5 b/tools/test/testfiles/xml/tname-gt.h5 similarity index 100% rename from tools/test/h5dump/testfiles/xml/tname-gt.h5 rename to tools/test/testfiles/xml/tname-gt.h5 diff --git a/tools/test/h5dump/testfiles/xml/tname-lt.h5 b/tools/test/testfiles/xml/tname-lt.h5 similarity index 100% rename from tools/test/h5dump/testfiles/xml/tname-lt.h5 rename to tools/test/testfiles/xml/tname-lt.h5 diff --git a/tools/test/h5dump/testfiles/xml/tname-quot.h5 b/tools/test/testfiles/xml/tname-quot.h5 similarity index 100% rename from tools/test/h5dump/testfiles/xml/tname-quot.h5 rename to tools/test/testfiles/xml/tname-quot.h5 diff --git a/tools/test/h5dump/testfiles/xml/tname-sp.h5 b/tools/test/testfiles/xml/tname-sp.h5 similarity index 100% rename from tools/test/h5dump/testfiles/xml/tname-sp.h5 rename to tools/test/testfiles/xml/tname-sp.h5 diff --git a/tools/test/h5dump/testfiles/xml/tnodata.h5 b/tools/test/testfiles/xml/tnodata.h5 similarity index 100% rename from tools/test/h5dump/testfiles/xml/tnodata.h5 rename to tools/test/testfiles/xml/tnodata.h5 diff --git a/tools/test/h5dump/testfiles/xml/tobjref.h5 b/tools/test/testfiles/xml/tobjref.h5 similarity index 100% rename from tools/test/h5dump/testfiles/xml/tobjref.h5 rename to tools/test/testfiles/xml/tobjref.h5 diff --git a/tools/test/h5dump/testfiles/xml/topaque.h5 b/tools/test/testfiles/xml/topaque.h5 similarity index 100% rename from tools/test/h5dump/testfiles/xml/topaque.h5 rename to tools/test/testfiles/xml/topaque.h5 diff --git a/tools/test/h5dump/testfiles/xml/tref-escapes-at.h5 b/tools/test/testfiles/xml/tref-escapes-at.h5 similarity index 100% rename from tools/test/h5dump/testfiles/xml/tref-escapes-at.h5 rename to tools/test/testfiles/xml/tref-escapes-at.h5 diff --git a/tools/test/h5dump/testfiles/xml/tref-escapes.h5 b/tools/test/testfiles/xml/tref-escapes.h5 similarity index 100% rename from tools/test/h5dump/testfiles/xml/tref-escapes.h5 rename to tools/test/testfiles/xml/tref-escapes.h5 diff --git a/tools/test/h5dump/testfiles/xml/tref.h5 b/tools/test/testfiles/xml/tref.h5 similarity index 100% rename from tools/test/h5dump/testfiles/xml/tref.h5 rename to tools/test/testfiles/xml/tref.h5 diff --git a/tools/test/h5dump/testfiles/xml/tstring-at.h5 b/tools/test/testfiles/xml/tstring-at.h5 similarity index 100% rename from tools/test/h5dump/testfiles/xml/tstring-at.h5 rename to tools/test/testfiles/xml/tstring-at.h5 diff --git a/tools/test/h5dump/testfiles/xml/tstring.h5 b/tools/test/testfiles/xml/tstring.h5 similarity index 100% rename from tools/test/h5dump/testfiles/xml/tstring.h5 rename to tools/test/testfiles/xml/tstring.h5 diff --git a/tools/test/h5dump/testfiles/zerodim.h5 b/tools/test/testfiles/zerodim.h5 similarity index 100% rename from tools/test/h5dump/testfiles/zerodim.h5 rename to tools/test/testfiles/zerodim.h5