* HDFFV-10865 - merge from dev, HDFArray perf fix. * Remove duplicate setting * Whitespace changes after clang format * Undo version 11 clang format changes * Merge CMake changes from develop * test testing script merge from develop * Update supported platforms * PR#3 merge from develop * Merge gcc 10 diagnostics option from develop * Merge #318 OSX changes from develop * Merge small changes from develop * Minor non-space formatting changes * #386 copyright corrections for java folder * Merges from develop #358 patches from vtk #361 fix header guard spelling * Merge updates #358 patches from vtk #361 fix header guard spelling * format fix * Fix missing underscore and make H5public.h closer to dev * Merges from develop #340 clang -Wformat-security warnings #360 Fixed uninitialized warnings header guard underscore cleanup JNI cleanup * format alignment * Add missing test ref file * Merge #380 from develop * Finish java merges from develop * Fix java issues with tests and javadoc * Correct use of attribute access plist * Remove debug code * Remove unused variable * Change file access to read only for java tests * Split clang format operations. * More javadoc comments * Remove pre-split setting * format source * Change windows TS to use older VS. * Mostly all javadoc fixes, one argument rename. * synch file * Merge of long double fix and compiler flags * HDFFV-11229 merge changes from develop * HDFFV-11229 correct test script * HDFFV-11229 update autotools test script for two ref files * HDFFV-11229 merge dev changes for long double display in tools * Committing clang-format changes * minor whitespace * remove unneeded macro * Committing clang-format changes * Add "option" command for clang options * Rework CMake add_custom to use the BYPRODUCTS argument Update pkgconfig scripts for parallel builds. Fix install COPYING file reference. Remove unused round defines. Change CMake default setting of BUILD_CPP to off. * Fortran target depends * Remove incorrect source attribute * Revert define removal * printf specifiers and VS2015 min changes * Committing clang-format changes * Add time struct * TRILAB-227 and tools debug merges from develop * Merge various changes from dev * Issue #669 remove version from pkgcfg filename * remove version from h5cc script * doxygen changes merged from develop * Committing clang-format changes * Merge CMake fortran ninja changes from dev * Enable fortran to gcc yaml * Refactor Fortran CMake config tests and CMake test args * Merge warnings files fixes from develop * Fix cmake configure path * Update missing release note info. * Update code owners * Add known problem * Use only core library for testing dynamic plugins. CMake uses H5_HAVE_DIRECT instead of DIRECT_VFD Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
211 lines
8.5 KiB
CMake
211 lines
8.5 KiB
CMake
|
|
# 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 COPYING 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.
|
|
#
|
|
|
|
##############################################################################
|
|
##############################################################################
|
|
### T E S T I N G ###
|
|
##############################################################################
|
|
##############################################################################
|
|
# included from CMakeTests.cmake
|
|
|
|
set (VFD_LIST
|
|
sec2
|
|
stdio
|
|
core
|
|
core_paged
|
|
split
|
|
multi
|
|
family
|
|
)
|
|
if (H5_HAVE_DIRECT)
|
|
set (VFD_LIST ${VFD_LIST} direct)
|
|
endif ()
|
|
|
|
foreach (vfdtest ${VFD_LIST})
|
|
file (MAKE_DIRECTORY "${PROJECT_BINARY_DIR}/${vfdtest}")
|
|
file (MAKE_DIRECTORY "${PROJECT_BINARY_DIR}/${vfdtest}/testfiles")
|
|
file (MAKE_DIRECTORY "${PROJECT_BINARY_DIR}/${vfdtest}/testfiles/plist_files")
|
|
endforeach ()
|
|
|
|
foreach (vfdtest ${VFD_LIST})
|
|
foreach (h5_tfile ${HDF5_TEST_FILES})
|
|
HDFTEST_COPY_FILE("${HDF5_TOOLS_DIR}/testfiles/${h5_tfile}" "${PROJECT_BINARY_DIR}/${vfdtest}/${h5_tfile}" "HDF5_VFDTEST_LIB_files")
|
|
endforeach ()
|
|
endforeach ()
|
|
|
|
foreach (vfdtest ${VFD_LIST})
|
|
foreach (ref_file ${HDF5_REFERENCE_FILES})
|
|
HDFTEST_COPY_FILE("${HDF5_TEST_SOURCE_DIR}/testfiles/${ref_file}" "${PROJECT_BINARY_DIR}/${vfdtest}/${ref_file}" "HDF5_VFDTEST_LIB_files")
|
|
endforeach ()
|
|
endforeach ()
|
|
|
|
foreach (vfdtest ${VFD_LIST})
|
|
foreach (h5_file ${HDF5_REFERENCE_TEST_FILES})
|
|
HDFTEST_COPY_FILE("${HDF5_TEST_SOURCE_DIR}/${h5_file}" "${HDF5_TEST_BINARY_DIR}/${vfdtest}/${h5_file}" "HDF5_VFDTEST_LIB_files")
|
|
endforeach ()
|
|
endforeach ()
|
|
|
|
foreach (vfdtest ${VFD_LIST})
|
|
foreach (plistfile ${HDF5_REFERENCE_PLIST_FILES})
|
|
HDFTEST_COPY_FILE("${HDF5_TEST_SOURCE_DIR}/testfiles/plist_files/${plistfile}" "${PROJECT_BINARY_DIR}/${vfdtest}/testfiles/plist_files/${plistfile}" "HDF5_VFDTEST_LIB_files")
|
|
HDFTEST_COPY_FILE("${HDF5_TEST_SOURCE_DIR}/testfiles/plist_files/def_${plistfile}" "${PROJECT_BINARY_DIR}/${vfdtest}/testfiles/plist_files/def_${plistfile}" "HDF5_VFDTEST_LIB_files")
|
|
endforeach ()
|
|
endforeach ()
|
|
|
|
add_custom_target(HDF5_VFDTEST_LIB_files ALL COMMENT "Copying files needed by HDF5_VFDTEST_LIB tests" DEPENDS ${HDF5_VFDTEST_LIB_files_list})
|
|
|
|
##############################################################################
|
|
##############################################################################
|
|
### V F D T E S T S ###
|
|
##############################################################################
|
|
##############################################################################
|
|
|
|
set (H5_VFD_SKIP_TESTS
|
|
cache
|
|
cache_image
|
|
accum
|
|
fheap
|
|
big
|
|
vfd
|
|
error_test
|
|
err_compat
|
|
tcheck_version
|
|
testmeta
|
|
links_env
|
|
external_env
|
|
vds_env
|
|
)
|
|
if (NOT CYGWIN)
|
|
list (REMOVE_ITEM H5_VFD_SKIP_TESTS big cache)
|
|
endif ()
|
|
|
|
# Windows only macro
|
|
macro (CHECK_VFD_TEST vfdtest vfdname resultcode)
|
|
if ("${vfdtest}" STREQUAL "flush1" OR "${vfdtest}" STREQUAL "flush2")
|
|
if ("${vfdname}" STREQUAL "multi" OR "${vfdname}" STREQUAL "split")
|
|
if (NOT BUILD_SHARED_LIBS AND NOT HDF_CFG_NAME MATCHES "Debug")
|
|
add_test (NAME VFD-${vfdname}-${vfdtest}
|
|
COMMAND "${CMAKE_COMMAND}"
|
|
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
|
|
-D "TEST_PROGRAM=$<TARGET_FILE:${vfdtest}>"
|
|
-D "TEST_ARGS:STRING="
|
|
-D "TEST_VFD:STRING=${vfdname}"
|
|
-D "TEST_EXPECT=${resultcode}"
|
|
-D "TEST_OUTPUT=${vfdname}-${vfdtest}.out"
|
|
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}/${vfdname}"
|
|
-P "${HDF_RESOURCES_DIR}/vfdTest.cmake"
|
|
)
|
|
set_tests_properties (VFD-${vfdname}-${vfdtest} PROPERTIES
|
|
ENVIRONMENT "srcdir=${HDF5_TEST_BINARY_DIR}/${vfdname}"
|
|
WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/${vfdname}
|
|
)
|
|
else ()
|
|
add_test (NAME VFD-${vfdname}-${vfdtest}
|
|
COMMAND ${CMAKE_COMMAND} -E echo "SKIP VFD-${vfdname}-${vfdtest}"
|
|
)
|
|
endif ()
|
|
else ()
|
|
add_test (NAME VFD-${vfdname}-${vfdtest}
|
|
COMMAND "${CMAKE_COMMAND}"
|
|
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
|
|
-D "TEST_PROGRAM=$<TARGET_FILE:${vfdtest}>"
|
|
-D "TEST_ARGS:STRING="
|
|
-D "TEST_VFD:STRING=${vfdname}"
|
|
-D "TEST_EXPECT=${resultcode}"
|
|
-D "TEST_OUTPUT=${vfdname}-${vfdtest}.out"
|
|
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}/${vfdname}"
|
|
-P "${HDF_RESOURCES_DIR}/vfdTest.cmake"
|
|
)
|
|
set_tests_properties (VFD-${vfdname}-${vfdtest} PROPERTIES
|
|
ENVIRONMENT "srcdir=${HDF5_TEST_BINARY_DIR}/${vfdname}"
|
|
WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/${vfdname}
|
|
)
|
|
endif ()
|
|
else ()
|
|
add_test (NAME VFD-${vfdname}-${vfdtest}
|
|
COMMAND "${CMAKE_COMMAND}"
|
|
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
|
|
-D "TEST_PROGRAM=$<TARGET_FILE:${vfdtest}>"
|
|
-D "TEST_ARGS:STRING="
|
|
-D "TEST_VFD:STRING=${vfdname}"
|
|
-D "TEST_EXPECT=${resultcode}"
|
|
-D "TEST_OUTPUT=${vfdname}-${vfdtest}.out"
|
|
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}/${vfdname}"
|
|
-P "${HDF_RESOURCES_DIR}/vfdTest.cmake"
|
|
)
|
|
set_tests_properties (VFD-${vfdname}-${vfdtest} PROPERTIES
|
|
ENVIRONMENT "srcdir=${HDF5_TEST_BINARY_DIR}/${vfdname};HDF5TestExpress=${HDF_TEST_EXPRESS}"
|
|
WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/${vfdname}
|
|
)
|
|
endif ()
|
|
endmacro ()
|
|
|
|
macro (DO_VFD_TEST vfdtest vfdname resultcode)
|
|
add_test (NAME VFD-${vfdname}-${vfdtest}
|
|
COMMAND "${CMAKE_COMMAND}"
|
|
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
|
|
-D "TEST_PROGRAM=$<TARGET_FILE:${vfdtest}>"
|
|
-D "TEST_ARGS:STRING="
|
|
-D "TEST_VFD:STRING=${vfdname}"
|
|
-D "TEST_EXPECT=${resultcode}"
|
|
-D "TEST_OUTPUT=${vfdname}-${vfdtest}.out"
|
|
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}/${vfdname}"
|
|
-P "${HDF_RESOURCES_DIR}/vfdTest.cmake"
|
|
)
|
|
set_tests_properties (VFD-${vfdname}-${vfdtest} PROPERTIES
|
|
ENVIRONMENT "srcdir=${HDF5_TEST_BINARY_DIR}/${vfdname}"
|
|
WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/${vfdname}
|
|
)
|
|
endmacro ()
|
|
|
|
macro (ADD_VFD_TEST vfdname resultcode)
|
|
foreach (h5_test ${H5_TESTS})
|
|
if (NOT h5_test IN_LIST H5_VFD_SKIP_TESTS)
|
|
if (WIN32)
|
|
CHECK_VFD_TEST (${h5_test} ${vfdname} ${resultcode})
|
|
else ()
|
|
DO_VFD_TEST (${h5_test} ${vfdname} ${resultcode})
|
|
endif ()
|
|
endif ()
|
|
endforeach ()
|
|
set_tests_properties (VFD-${vfdname}-flush2 PROPERTIES DEPENDS VFD-${vfdname}-flush1)
|
|
set_tests_properties (VFD-${vfdname}-flush1 PROPERTIES TIMEOUT 10)
|
|
set_tests_properties (VFD-${vfdname}-flush2 PROPERTIES TIMEOUT 10)
|
|
set_tests_properties (VFD-${vfdname}-istore PROPERTIES TIMEOUT ${CTEST_VERY_LONG_TIMEOUT})
|
|
if (NOT CYGWIN)
|
|
set_tests_properties (VFD-${vfdname}-cache PROPERTIES TIMEOUT ${CTEST_VERY_LONG_TIMEOUT})
|
|
endif ()
|
|
if (HDF5_TEST_FHEAP_VFD)
|
|
add_test (NAME VFD-${vfdname}-fheap
|
|
COMMAND "${CMAKE_COMMAND}"
|
|
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
|
|
-D "TEST_PROGRAM=$<TARGET_FILE:fheap>"
|
|
-D "TEST_ARGS:STRING="
|
|
-D "TEST_VFD:STRING=${vfdname}"
|
|
-D "TEST_EXPECT=${resultcode}"
|
|
-D "TEST_OUTPUT=${vfdname}-fheap.out"
|
|
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}/${vfdname}"
|
|
-P "${HDF_RESOURCES_DIR}/vfdTest.cmake"
|
|
)
|
|
set_tests_properties (VFD-${vfdname}-fheap PROPERTIES
|
|
TIMEOUT ${CTEST_VERY_LONG_TIMEOUT}
|
|
ENVIRONMENT "srcdir=${HDF5_TEST_BINARY_DIR}/${vfdname};HDF5TestExpress=${HDF_TEST_EXPRESS}"
|
|
WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/${vfdname}
|
|
)
|
|
endif ()
|
|
endmacro ()
|
|
|
|
# Run test with different Virtual File Driver
|
|
foreach (h5_vfd ${VFD_LIST})
|
|
ADD_VFD_TEST (${h5_vfd} 0)
|
|
endforeach ()
|