mirror of
https://github.com/HDFGroup/hdf5.git
synced 2025-01-30 15:32:37 +08:00
HDFFV-10918 add tests for h5repack ext storage
This commit is contained in:
parent
f4a8792292
commit
643d298823
@ -2,7 +2,7 @@ cmake_minimum_required (VERSION 3.10)
|
||||
project (HDF5_TOOLS_TEST_H5REPACK C)
|
||||
|
||||
# --------------------------------------------------------------------
|
||||
# Add h5Repack test executables
|
||||
# Add h5repack test executables
|
||||
# --------------------------------------------------------------------
|
||||
add_executable (testh5repack_detect_szip ${HDF5_TOOLS_TEST_H5REPACK_SOURCE_DIR}/testh5repack_detect_szip.c)
|
||||
target_include_directories (testh5repack_detect_szip
|
||||
@ -85,4 +85,17 @@ if (BUILD_SHARED_LIBS)
|
||||
)
|
||||
endif ()
|
||||
|
||||
# --------------------------------------------------------------------
|
||||
# Add the h5repack test executable
|
||||
# --------------------------------------------------------------------
|
||||
if (HDF5_BUILD_GENERATORS AND NOT ONLY_SHARED_LIBS)
|
||||
add_executable (h5repackgentest ${HDF5_TOOLS_TEST_H5REPACK_SOURCE_DIR}/h5repackgentest.c)
|
||||
target_include_directories (h5repackgentest PRIVATE "${HDF5_SRC_DIR};${HDF5_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>")
|
||||
TARGET_C_PROPERTIES (h5repackgentest STATIC)
|
||||
target_link_libraries (h5repackgentest PRIVATE ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET})
|
||||
set_target_properties (h5repackgentest PROPERTIES FOLDER generator/tools)
|
||||
|
||||
#add_test (NAME h5repackgentest COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5repackgentest>)
|
||||
endif ()
|
||||
|
||||
include (CMakeTests.cmake)
|
||||
|
@ -718,6 +718,104 @@
|
||||
endif ()
|
||||
endmacro ()
|
||||
|
||||
macro (ADD_H5_EXTERNAL_TEST testname testtype testfile)
|
||||
# canonical file = h5repack_${testfile}.h5 - preexist
|
||||
# external file = h5repack_${testfile}_ex.h5 - preexist
|
||||
# repacked file = h5repack_${testfile}_rp.h5 - created
|
||||
# external data file = h5repack_${testfile}_ex-0.dat
|
||||
if ("${testtype}" STREQUAL "SKIP")
|
||||
if (NOT HDF5_ENABLE_USING_MEMCHECKER)
|
||||
add_test (
|
||||
NAME H5REPACK_EXTERNAL-${testname}
|
||||
COMMAND ${CMAKE_COMMAND} -E echo "SKIP ${ARGN} ${PROJECT_BINARY_DIR}/testfiles/${testfile} ${PROJECT_BINARY_DIR}/testfiles/out-${testname}.${testfile}"
|
||||
)
|
||||
set_property(TEST H5REPACK_EXTERNAL-${testname} PROPERTY DISABLED)
|
||||
endif ()
|
||||
else ()
|
||||
add_test (
|
||||
NAME H5REPACK_EXTERNAL-${testname}-clear-objects
|
||||
COMMAND ${CMAKE_COMMAND} -E remove h5repack_${testfile}_rp.h5
|
||||
)
|
||||
set_tests_properties (H5REPACK_EXTERNAL-${testname}-clear-objects PROPERTIES
|
||||
WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles"
|
||||
FIXTURES_REQUIRED clear_h5repack
|
||||
)
|
||||
# make sure external data file 0 is available
|
||||
add_test (
|
||||
NAME H5REPACK_EXTERNAL-${testname}_CPY
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different
|
||||
"${PROJECT_SOURCE_DIR}/testfiles/h5repack_${testfile}_ex-0.dat" "${PROJECT_BINARY_DIR}/testfiles/h5repack_${testfile}_ex-0.dat"
|
||||
)
|
||||
set_tests_properties (H5REPACK_EXTERNAL-${testname}_CPY PROPERTIES
|
||||
WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles"
|
||||
DEPENDS H5REPACK_EXTERNAL-${testname}-clear-objects
|
||||
)
|
||||
# comparison of known files
|
||||
add_test (
|
||||
NAME H5REPACK_EXTERNAL-${testname}_DFF1
|
||||
COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5diff${tgt_ext}> --enable-error-stack ${PROJECT_BINARY_DIR}/testfiles/h5repack_${testfile}.h5 ${PROJECT_BINARY_DIR}/testfiles/h5repack_${testfile}_ex.h5
|
||||
)
|
||||
set_tests_properties (H5REPACK_EXTERNAL-${testname}_DFF1 PROPERTIES
|
||||
WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles"
|
||||
DEPENDS H5REPACK_EXTERNAL-${testname}_CPY
|
||||
)
|
||||
# repack the external file to the repacked file
|
||||
add_test (
|
||||
NAME H5REPACK_EXTERNAL-${testname}
|
||||
COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5repack${tgt_ext}> --enable-error-stack ${ARGN} ${PROJECT_BINARY_DIR}/testfiles/h5repack_${testfile}_ex.h5 ${PROJECT_BINARY_DIR}/testfiles/h5repack_${testfile}_rp.h5
|
||||
)
|
||||
set_tests_properties (H5REPACK_EXTERNAL-${testname} PROPERTIES
|
||||
WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles"
|
||||
DEPENDS H5REPACK_EXTERNAL-${testname}_DFF1
|
||||
)
|
||||
# comparison of repacked file to known files
|
||||
add_test (
|
||||
NAME H5REPACK_EXTERNAL-${testname}_DFF2
|
||||
COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5diff${tgt_ext}> --enable-error-stack ${PROJECT_BINARY_DIR}/testfiles/h5repack_${testfile}_rp.h5 ${PROJECT_BINARY_DIR}/testfiles/h5repack_${testfile}.h5
|
||||
)
|
||||
set_tests_properties (H5REPACK_EXTERNAL-${testname}_DFF2 PROPERTIES
|
||||
WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles"
|
||||
DEPENDS H5REPACK_EXTERNAL-${testname}
|
||||
)
|
||||
add_test (
|
||||
NAME H5REPACK_EXTERNAL-${testname}_DFF3
|
||||
COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5diff${tgt_ext}> --enable-error-stack ${PROJECT_BINARY_DIR}/testfiles/h5repack_${testfile}_rp.h5 ${PROJECT_BINARY_DIR}/testfiles/h5repack_${testfile}_ex.h5
|
||||
)
|
||||
set_tests_properties (H5REPACK_EXTERNAL-${testname}_DFF3 PROPERTIES
|
||||
WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles"
|
||||
DEPENDS H5REPACK_EXTERNAL-${testname}_DFF2
|
||||
)
|
||||
# invalidate external file by removing its first data file
|
||||
add_test (
|
||||
NAME H5REPACK_EXTERNAL-${testname}_DATA_RMV
|
||||
COMMAND ${CMAKE_COMMAND} -E remove h5repack_${testfile}_ex-0.dat
|
||||
)
|
||||
set_tests_properties (H5REPACK_EXTERNAL-${testname}_DATA_RMV PROPERTIES
|
||||
WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles"
|
||||
DEPENDS H5REPACK_EXTERNAL-${testname}_DFF3
|
||||
)
|
||||
# verify comparison of repacked file to known file
|
||||
add_test (
|
||||
NAME H5REPACK_EXTERNAL-${testname}_DFF4
|
||||
COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5diff${tgt_ext}> --enable-error-stack ${PROJECT_BINARY_DIR}/testfiles/h5repack_${testfile}_rp.h5 ${PROJECT_BINARY_DIR}/testfiles/h5repack_${testfile}.h5
|
||||
)
|
||||
set_tests_properties (H5REPACK_EXTERNAL-${testname}_DFF4 PROPERTIES
|
||||
WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles"
|
||||
DEPENDS H5REPACK_EXTERNAL-${testname}_DATA_RMV
|
||||
)
|
||||
# verify comparison of repacked file to known external file fails
|
||||
add_test (
|
||||
NAME H5REPACK_EXTERNAL-${testname}_DFF_FAIL
|
||||
COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5diff${tgt_ext}> --enable-error-stack ${PROJECT_BINARY_DIR}/testfiles/h5repack_${testfile}_rp.h5 ${PROJECT_BINARY_DIR}/testfiles/h5repack_${testfile}_ex.h5
|
||||
)
|
||||
set_tests_properties (H5REPACK_EXTERNAL-${testname}_DFF_FAIL PROPERTIES
|
||||
WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles"
|
||||
DEPENDS H5REPACK_EXTERNAL-${testname}_DFF4
|
||||
WILL_FAIL "true"
|
||||
)
|
||||
endif ()
|
||||
endmacro ()
|
||||
|
||||
##############################################################################
|
||||
##############################################################################
|
||||
### T H E T E S T S ###
|
||||
@ -1382,6 +1480,15 @@ ADD_H5_VERIFY_SUPERBLOCK (SB_IS_3 h5repack_layout.h5 2 2 3)
|
||||
# -j 0 -k 1, file cannot be opened
|
||||
ADD_H5_VERIFY_INVALIDBOUNDS (latest_latest_invalid bounds_latest_latest.h5 0 1)
|
||||
|
||||
##############################################################################
|
||||
### E X T E R N A L S T O R A G E T E S T S
|
||||
##############################################################################
|
||||
ADD_H5_EXTERNAL_TEST (ext_f32le "TEST" f32le -l CONTI)
|
||||
ADD_H5_EXTERNAL_TEST (ext_int32le_1d "TEST" int32le_1d -l CONTI)
|
||||
ADD_H5_EXTERNAL_TEST (ext_int32le_2d "TEST" int32le_2d -l CONTI)
|
||||
ADD_H5_EXTERNAL_TEST (ext_int32le_3d "TEST" int32le_3d -l CONTI)
|
||||
ADD_H5_EXTERNAL_TEST (ext_uint8be "TEST" uint8be -l CONTI)
|
||||
|
||||
##############################################################################
|
||||
### P L U G I N T E S T S
|
||||
##############################################################################
|
||||
|
Loading…
Reference in New Issue
Block a user