summaryrefslogtreecommitdiffstats
path: root/test/API/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'test/API/CMakeLists.txt')
-rw-r--r--test/API/CMakeLists.txt500
1 files changed, 224 insertions, 276 deletions
diff --git a/test/API/CMakeLists.txt b/test/API/CMakeLists.txt
index e90a4c8..6f6af47 100644
--- a/test/API/CMakeLists.txt
+++ b/test/API/CMakeLists.txt
@@ -9,7 +9,6 @@
# help@hdfgroup.org.
#
-
cmake_minimum_required (VERSION 3.18)
project (HDF5_TEST_API C)
@@ -26,16 +25,15 @@ configure_file(
)
#------------------------------------------------------------------------------
-# Compile kwsys library and setup TestDriver
+# Compile kwsys library and setup TestDriver if requested
#------------------------------------------------------------------------------
if (HDF5_TEST_API_ENABLE_DRIVER)
add_subdirectory (driver)
endif ()
#------------------------------------------------------------------------------
-# Define for API tests
+# Variables, definitions, etc. for API tests
#------------------------------------------------------------------------------
-
set (HDF5_API_TESTS
attribute
dataset
@@ -54,22 +52,22 @@ if (HDF5_TEST_API_ENABLE_ASYNC)
)
endif ()
-# Ported HDF5 tests
+# Extra HDF5 tests to run. Each entry in the list
+# must be a CMake target name for a test executable
+# that was added elsewhere in the project
set (HDF5_API_TESTS_EXTRA
testhdf5
)
# List of files generated by the HDF5 API tests which
-# should be cleaned up in case the test failed to remove
-# them
+# we should attempt to clean up in case the tests failed
+# to remove them
+# TODO: Run h5delete tool with appropriate env. vars for
+# connectors to remove these files
set (HDF5_API_TESTS_FILES
+ # Test file used by main tests
H5_api_test.h5
- H5_api_async_test.h5
- H5_api_async_test_0.h5
- H5_api_async_test_1.h5
- H5_api_async_test_2.h5
- H5_api_async_test_3.h5
- H5_api_async_test_4.h5
+ # 'file' tests
test_file.h5
invalid_params_file.h5
excl_flag_file.h5
@@ -90,6 +88,7 @@ set (HDF5_API_TESTS_FILES
file_size.h5
file_info.h5
double_group_open.h5
+ # 'link' tests
ext_link_file.h5
ext_link_file_2.h5
ext_link_file_3.h5
@@ -97,7 +96,15 @@ set (HDF5_API_TESTS_FILES
ext_link_file_ping_pong_1.h5
ext_link_file_ping_pong_2.h5
ext_link_invalid_params_file.h5
+ # 'object' tests
object_copy_test_file.h5
+ # 'async' tests
+ H5_api_async_test.h5
+ H5_api_async_test_0.h5
+ H5_api_async_test_1.h5
+ H5_api_async_test_2.h5
+ H5_api_async_test_3.h5
+ H5_api_async_test_4.h5
)
#-----------------------------------------------------------------------------
@@ -136,19 +143,20 @@ target_compile_definitions (
PRIVATE
"$<$<CONFIG:Developer>:${HDF5_DEVELOPER_DEFS}>"
)
-if (NOT BUILD_SHARED_LIBS)
- TARGET_C_PROPERTIES (h5_api_test STATIC)
+# Always prefer linking the shared HDF5 library by default
+if (BUILD_SHARED_LIBS)
+ TARGET_C_PROPERTIES (h5_api_test SHARED)
target_link_libraries (
h5_api_test
PRIVATE
- ${HDF5_TEST_LIB_TARGET}
+ ${HDF5_TEST_LIBSH_TARGET}
)
else ()
- TARGET_C_PROPERTIES (h5_api_test SHARED)
+ TARGET_C_PROPERTIES (h5_api_test STATIC)
target_link_libraries (
h5_api_test
PRIVATE
- ${HDF5_TEST_LIBSH_TARGET}
+ ${HDF5_TEST_LIB_TARGET}
)
endif ()
set_target_properties (
@@ -161,109 +169,6 @@ if (HDF5_ENABLE_FORMATTERS)
clang_format (HDF5_TEST_h5_api_test_FORMAT h5_api_test)
endif ()
-if (HDF5_TEST_API_INSTALL)
- install (
- TARGETS
- h5_api_test
- EXPORT
- ${HDF5_EXPORTED_TARGETS}
- DESTINATION
- ${HDF5_INSTALL_BIN_DIR}
- PERMISSIONS
- OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
- COMPONENT
- tests
- )
-endif ()
-
-#-----------------------------------------------------------------------------
-# Build the ported HDF5 test executables
-#-----------------------------------------------------------------------------
-foreach (api_test_extra ${HDF5_API_TESTS_EXTRA})
- unset (HDF5_API_TEST_EXTRA_SRCS)
-
- set (HDF5_API_TEST_EXTRA_SRCS
- ${HDF5_API_TEST_EXTRA_SRCS}
- ${CMAKE_CURRENT_SOURCE_DIR}/${api_test_extra}.c
- )
-
- if (${api_test_extra} STREQUAL "testhdf5")
- set (HDF5_API_TEST_EXTRA_SRCS
- ${HDF5_API_TEST_EXTRA_SRCS}
- ${CMAKE_CURRENT_SOURCE_DIR}/tarray.c
- ${CMAKE_CURRENT_SOURCE_DIR}/tattr.c
- ${CMAKE_CURRENT_SOURCE_DIR}/tchecksum.c
- ${CMAKE_CURRENT_SOURCE_DIR}/tconfig.c
- ${CMAKE_CURRENT_SOURCE_DIR}/tcoords.c
- ${CMAKE_CURRENT_SOURCE_DIR}/tfile.c
- ${CMAKE_CURRENT_SOURCE_DIR}/tgenprop.c
- ${CMAKE_CURRENT_SOURCE_DIR}/th5o.c
- ${CMAKE_CURRENT_SOURCE_DIR}/th5s.c
- ${CMAKE_CURRENT_SOURCE_DIR}/tid.c
- ${CMAKE_CURRENT_SOURCE_DIR}/titerate.c
- ${CMAKE_CURRENT_SOURCE_DIR}/tmisc.c
- ${CMAKE_CURRENT_SOURCE_DIR}/trefer.c
- ${CMAKE_CURRENT_SOURCE_DIR}/tselect.c
- ${CMAKE_CURRENT_SOURCE_DIR}/ttime.c
- ${CMAKE_CURRENT_SOURCE_DIR}/tunicode.c
- ${CMAKE_CURRENT_SOURCE_DIR}/tvlstr.c
- ${CMAKE_CURRENT_SOURCE_DIR}/tvltypes.c
- )
- endif ()
-
- add_executable (h5_api_test_${api_test_extra} ${HDF5_API_TEST_EXTRA_SRCS})
- target_include_directories (
- h5_api_test_${api_test_extra}
- PRIVATE
- "${HDF5_SRC_INCLUDE_DIRS}"
- "${HDF5_TEST_SRC_DIR}"
- "${HDF5_TEST_API_SRC_DIR}"
- "${HDF5_SRC_BINARY_DIR}"
- "${HDF5_TEST_BINARY_DIR}"
- )
- target_compile_options (
- h5_api_test_${api_test_extra}
- PRIVATE
- "${HDF5_CMAKE_C_FLAGS}"
- )
- target_compile_definitions (
- h5_api_test_${api_test_extra}
- PRIVATE
- "$<$<CONFIG:Developer>:${HDF5_DEVELOPER_DEFS}>"
- )
- if (NOT BUILD_SHARED_LIBS)
- TARGET_C_PROPERTIES (h5_api_test_${api_test_extra} STATIC)
- target_link_libraries (h5_api_test_${api_test_extra} PRIVATE ${HDF5_TEST_LIB_TARGET})
- else ()
- TARGET_C_PROPERTIES (h5_api_test_${api_test_extra} SHARED)
- target_link_libraries (h5_api_test_${api_test_extra} PRIVATE ${HDF5_TEST_LIBSH_TARGET})
- endif ()
- set_target_properties (
- h5_api_test_${api_test_extra}
- PROPERTIES
- FOLDER test/API
- )
- # Add Target to clang-format
- if (HDF5_ENABLE_FORMATTERS)
- clang_format (HDF5_TEST_h5_api_test_${api_test_extra}_FORMAT h5_api_test_${api_test_extra})
- endif ()
-
- if (HDF5_TEST_API_INSTALL)
- install (
- TARGETS
- h5_api_test_${api_test_extra}
- EXPORT
- ${HDF5_EXPORTED_TARGETS}
- DESTINATION
- ${HDF5_INSTALL_BIN_DIR}
- PERMISSIONS
- OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
- COMPONENT
- tests
- )
- endif ()
-endforeach ()
-
#-----------------------------------------------------------------------------
# Add tests if HDF5 serial testing is enabled
#-----------------------------------------------------------------------------
@@ -293,6 +198,7 @@ if (HDF5_TEST_SERIAL)
)
endif ()
+ # Add main API tests to test suite
set (last_api_test "")
foreach (api_test ${HDF5_API_TESTS})
add_test (
@@ -309,17 +215,6 @@ if (HDF5_TEST_SERIAL)
set (last_api_test "h5_api_test_${api_test}")
endforeach ()
- foreach (hdf5_test ${HDF5_API_TESTS_EXTRA})
- add_test (
- NAME "h5_api_test_${hdf5_test}"
- COMMAND $<TARGET_FILE:h5_api_test_driver>
- --server ${HDF5_TEST_API_SERVER}
- --client $<TARGET_FILE:h5_api_test_${hdf5_test}>
- --serial
- ${HDF5_TEST_API_DRIVER_EXTRA_FLAGS}
- )
- endforeach ()
-
# Hook external tests to same test suite
foreach (ext_api_test ${HDF5_API_EXT_SERIAL_TESTS})
add_test (
@@ -332,93 +227,99 @@ if (HDF5_TEST_SERIAL)
)
endforeach ()
- # Add tests for each external VOL connector that was built
- foreach (external_vol_tgt ${HDF5_EXTERNAL_VOL_TARGETS})
- # Determine environment variables that need to be set for testing
- set (vol_test_env "")
- set (vol_plugin_paths "${CMAKE_BINARY_DIR}/${HDF5_INSTALL_BIN_DIR}")
-
- get_target_property (vol_test_string "${external_vol_tgt}" HDF5_VOL_NAME)
- list (APPEND vol_test_env "HDF5_VOL_CONNECTOR=${vol_test_string}")
-
- get_target_property (vol_lib_targets "${external_vol_tgt}" HDF5_VOL_TARGETS)
- foreach (lib_target ${vol_lib_targets})
- get_target_property (lib_target_output_dir "${lib_target}" LIBRARY_OUTPUT_DIRECTORY)
- if (NOT "${lib_target_output_dir}" STREQUAL "lib_target_output_dir-NOTFOUND"
- AND NOT "${lib_target_output_dir}" STREQUAL ""
- AND NOT "${lib_target_output_dir}" STREQUAL "${CMAKE_BINARY_DIR}/${HDF5_INSTALL_BIN_DIR}")
- set (vol_plugin_paths "${vol_plugin_paths}${CMAKE_SEP}${lib_target_output_dir}")
- endif ()
- endforeach ()
-
- list (APPEND vol_test_env "HDF5_PLUGIN_PATH=${vol_plugin_paths}")
-
- # Add main API tests
- set (last_api_test "")
- foreach (api_test ${HDF5_API_TESTS})
- add_test (
- NAME "${external_vol_tgt}-h5_api_test_${api_test}"
- COMMAND $<TARGET_FILE:h5_api_test_driver>
- --server ${HDF5_TEST_API_SERVER}
- --client $<TARGET_FILE:h5_api_test> "${api_test}"
- --serial
- ${HDF5_TEST_API_DRIVER_EXTRA_FLAGS}
- )
- set_tests_properties (
- "${external_vol_tgt}-h5_api_test_${api_test}"
- PROPERTIES
- ENVIRONMENT
- "${vol_test_env}"
- WORKING_DIRECTORY
- "${HDF5_TEST_BINARY_DIR}/${external_vol_tgt}"
- DEPENDS
- "${last_api_test}"
- )
-
- set (last_api_test "${external_vol_tgt}-h5_api_test_${api_test}")
- endforeach ()
-
- # Add any extra HDF5 tests
- foreach (hdf5_test ${HDF5_API_TESTS_EXTRA})
- add_test (
- NAME "${external_vol_tgt}-h5_api_test_${hdf5_test}"
- COMMAND $<TARGET_FILE:h5_api_test_driver>
- --server ${HDF5_TEST_API_SERVER}
- --client $<TARGET_FILE:h5_api_test_${hdf5_test}>
- --serial
- ${HDF5_TEST_API_DRIVER_EXTRA_FLAGS}
- )
- set_tests_properties (
- "${external_vol_tgt}-h5_api_test_${hdf5_test}"
- PROPERTIES
- ENVIRONMENT
- "${vol_test_env}"
- WORKING_DIRECTORY
- "${HDF5_TEST_BINARY_DIR}/${external_vol_tgt}"
- )
+ if (BUILD_SHARED_LIBS)
+ # Add tests for each external VOL connector that was built,
+ # but only if executables that were linked to a shared HDF5
+ # library are available, since static executables will cause
+ # issues when VOL connectors are loaded dynamically
+ foreach (external_vol_tgt ${HDF5_EXTERNAL_VOL_TARGETS})
+ # Determine environment variables that need to be set for testing
+ set (vol_test_env "")
+ set (vol_plugin_paths "${CMAKE_BINARY_DIR}/${HDF5_INSTALL_BIN_DIR}")
+
+ get_target_property (vol_test_string "${external_vol_tgt}" HDF5_VOL_NAME)
+ list (APPEND vol_test_env "HDF5_VOL_CONNECTOR=${vol_test_string}")
+
+ get_target_property (vol_lib_targets "${external_vol_tgt}" HDF5_VOL_TARGETS)
+ foreach (lib_target ${vol_lib_targets})
+ get_target_property (lib_target_output_dir "${lib_target}" LIBRARY_OUTPUT_DIRECTORY)
+ if (NOT "${lib_target_output_dir}" STREQUAL "lib_target_output_dir-NOTFOUND"
+ AND NOT "${lib_target_output_dir}" STREQUAL ""
+ AND NOT "${lib_target_output_dir}" STREQUAL "${CMAKE_BINARY_DIR}/${HDF5_INSTALL_BIN_DIR}")
+ set (vol_plugin_paths "${vol_plugin_paths}${CMAKE_SEP}${lib_target_output_dir}")
+ endif ()
+ endforeach ()
+
+ list (APPEND vol_test_env "HDF5_PLUGIN_PATH=${vol_plugin_paths}")
+
+ # Add main API tests to test suite
+ set (last_api_test "")
+ foreach (api_test ${HDF5_API_TESTS})
+ add_test (
+ NAME "${external_vol_tgt}-h5_api_test_${api_test}"
+ COMMAND $<TARGET_FILE:h5_api_test_driver>
+ --server ${HDF5_TEST_API_SERVER}
+ --client $<TARGET_FILE:h5_api_test> "${api_test}"
+ --serial
+ ${HDF5_TEST_API_DRIVER_EXTRA_FLAGS}
+ )
+ set_tests_properties (
+ "${external_vol_tgt}-h5_api_test_${api_test}"
+ PROPERTIES
+ ENVIRONMENT
+ "${vol_test_env}"
+ WORKING_DIRECTORY
+ "${HDF5_TEST_BINARY_DIR}/${external_vol_tgt}"
+ DEPENDS
+ "${last_api_test}"
+ )
+
+ set (last_api_test "${external_vol_tgt}-h5_api_test_${api_test}")
+ endforeach ()
+
+ # Add any extra HDF5 tests to test suite
+ foreach (hdf5_test ${HDF5_API_TESTS_EXTRA})
+ add_test (
+ NAME "${external_vol_tgt}-h5_api_test_${hdf5_test}"
+ COMMAND $<TARGET_FILE:h5_api_test_driver>
+ --server ${HDF5_TEST_API_SERVER}
+ --client $<TARGET_FILE:${hdf5_test}>
+ --serial
+ ${HDF5_TEST_API_DRIVER_EXTRA_FLAGS}
+ )
+ set_tests_properties (
+ "${external_vol_tgt}-h5_api_test_${hdf5_test}"
+ PROPERTIES
+ ENVIRONMENT
+ "${vol_test_env}"
+ WORKING_DIRECTORY
+ "${HDF5_TEST_BINARY_DIR}/${external_vol_tgt}"
+ )
+ endforeach ()
+
+ # Hook external tests to same test suite
+ foreach (ext_api_test ${HDF5_API_EXT_SERIAL_TESTS})
+ add_test (
+ NAME "${external_vol_tgt}-h5_api_ext_test_${ext_api_test}"
+ COMMAND $<TARGET_FILE:h5_api_test_driver>
+ --server ${HDF5_TEST_API_SERVER}
+ --client $<TARGET_FILE:${ext_api_test}>
+ --serial
+ ${HDF5_TEST_API_DRIVER_EXTRA_FLAGS}
+ )
+ set_tests_properties (
+ "${external_vol_tgt}-h5_api_ext_test_${ext_api_test}"
+ PROPERTIES
+ ENVIRONMENT
+ "${vol_test_env}"
+ WORKING_DIRECTORY
+ "${HDF5_TEST_BINARY_DIR}/${external_vol_tgt}"
+ )
+ endforeach ()
endforeach ()
-
- # Hook external tests to same test suite
- foreach (ext_api_test ${HDF5_API_EXT_SERIAL_TESTS})
- add_test (
- NAME "${external_vol_tgt}-h5_api_ext_test_${ext_api_test}"
- COMMAND $<TARGET_FILE:h5_api_test_driver>
- --server ${HDF5_TEST_API_SERVER}
- --client $<TARGET_FILE:${ext_api_test}>
- --serial
- ${HDF5_TEST_API_DRIVER_EXTRA_FLAGS}
- )
- set_tests_properties (
- "${external_vol_tgt}-h5_api_ext_test_${ext_api_test}"
- PROPERTIES
- ENVIRONMENT
- "${vol_test_env}"
- WORKING_DIRECTORY
- "${HDF5_TEST_BINARY_DIR}/${external_vol_tgt}"
- )
- endforeach ()
- endforeach ()
+ endif ()
else ()
+ # Add main API tests to test suite
set (last_api_test "")
foreach (api_test ${HDF5_API_TESTS})
add_test (
@@ -431,70 +332,117 @@ if (HDF5_TEST_SERIAL)
set (last_api_test "h5_api_test_${api_test}")
endforeach ()
- foreach (hdf5_test ${HDF5_API_TESTS_EXTRA})
+ # Hook external tests to same test suite
+ foreach (ext_api_test ${HDF5_API_EXT_SERIAL_TESTS})
add_test (
- NAME "h5_api_test_${hdf5_test}"
- COMMAND $<TARGET_FILE:h5_api_test_${hdf5_test}>
+ NAME "h5_api_ext_test_${ext_api_test}"
+ COMMAND $<TARGET_FILE:${ext_api_test}>
)
endforeach ()
- # Add tests for each external VOL connector that was built
- foreach (external_vol_tgt ${HDF5_EXTERNAL_VOL_TARGETS})
- # Determine environment variables that need to be set for testing
- set (vol_test_env "")
- set (vol_plugin_paths "${CMAKE_BINARY_DIR}/${HDF5_INSTALL_BIN_DIR}")
-
- get_target_property (vol_test_string "${external_vol_tgt}" HDF5_VOL_NAME)
- list (APPEND vol_test_env "HDF5_VOL_CONNECTOR=${vol_test_string}")
-
- get_target_property (vol_lib_targets "${external_vol_tgt}" HDF5_VOL_TARGETS)
- foreach (lib_target ${vol_lib_targets})
- get_target_property (lib_target_output_dir "${lib_target}" LIBRARY_OUTPUT_DIRECTORY)
- if (NOT "${lib_target_output_dir}" STREQUAL "lib_target_output_dir-NOTFOUND"
- AND NOT "${lib_target_output_dir}" STREQUAL ""
- AND NOT "${lib_target_output_dir}" STREQUAL "${CMAKE_BINARY_DIR}/${HDF5_INSTALL_BIN_DIR}")
- set (vol_plugin_paths "${vol_plugin_paths}${CMAKE_SEP}${lib_target_output_dir}")
- endif ()
+ if (BUILD_SHARED_LIBS)
+ # Add tests for each external VOL connector that was built,
+ # but only if executables that were linked to a shared HDF5
+ # library are available, since static executables will cause
+ # issues when VOL connectors are loaded dynamically
+ foreach (external_vol_tgt ${HDF5_EXTERNAL_VOL_TARGETS})
+ # Determine environment variables that need to be set for testing
+ set (vol_test_env "")
+ set (vol_plugin_paths "${CMAKE_BINARY_DIR}/${HDF5_INSTALL_BIN_DIR}")
+
+ get_target_property (vol_test_string "${external_vol_tgt}" HDF5_VOL_NAME)
+ list (APPEND vol_test_env "HDF5_VOL_CONNECTOR=${vol_test_string}")
+
+ get_target_property (vol_lib_targets "${external_vol_tgt}" HDF5_VOL_TARGETS)
+ foreach (lib_target ${vol_lib_targets})
+ get_target_property (lib_target_output_dir "${lib_target}" LIBRARY_OUTPUT_DIRECTORY)
+ if (NOT "${lib_target_output_dir}" STREQUAL "lib_target_output_dir-NOTFOUND"
+ AND NOT "${lib_target_output_dir}" STREQUAL ""
+ AND NOT "${lib_target_output_dir}" STREQUAL "${CMAKE_BINARY_DIR}/${HDF5_INSTALL_BIN_DIR}")
+ set (vol_plugin_paths "${vol_plugin_paths}${CMAKE_SEP}${lib_target_output_dir}")
+ endif ()
+ endforeach ()
+
+ list (APPEND vol_test_env "HDF5_PLUGIN_PATH=${vol_plugin_paths}")
+
+ # Add main API tests to test suite
+ set (last_api_test "")
+ foreach (api_test ${HDF5_API_TESTS})
+ add_test (
+ NAME "${external_vol_tgt}-h5_api_test_${api_test}"
+ COMMAND $<TARGET_FILE:h5_api_test> "${api_test}"
+ )
+ set_tests_properties (
+ "${external_vol_tgt}-h5_api_test_${api_test}"
+ PROPERTIES
+ ENVIRONMENT
+ "${vol_test_env}"
+ WORKING_DIRECTORY
+ "${HDF5_TEST_BINARY_DIR}/${external_vol_tgt}"
+ DEPENDS
+ "${last_api_test}"
+ )
+
+ set (last_api_test "${external_vol_tgt}-h5_api_test_${api_test}")
+ endforeach ()
+
+ # Add any extra HDF5 tests to test suite
+ foreach (hdf5_test ${HDF5_API_TESTS_EXTRA})
+ add_test (
+ NAME "${external_vol_tgt}-h5_api_test_${hdf5_test}"
+ COMMAND $<TARGET_FILE:${hdf5_test}>
+ )
+ set_tests_properties (
+ "${external_vol_tgt}-h5_api_test_${hdf5_test}"
+ PROPERTIES
+ ENVIRONMENT
+ "${vol_test_env}"
+ WORKING_DIRECTORY
+ "${HDF5_TEST_BINARY_DIR}/${external_vol_tgt}"
+ )
+ endforeach ()
endforeach ()
+ endif()
+ endif ()
+endif ()
- list (APPEND vol_test_env "HDF5_PLUGIN_PATH=${vol_plugin_paths}")
-
- # Add main API tests
- set (last_api_test "")
- foreach (api_test ${HDF5_API_TESTS})
- add_test (
- NAME "${external_vol_tgt}-h5_api_test_${api_test}"
- COMMAND $<TARGET_FILE:h5_api_test> "${api_test}"
- )
- set_tests_properties (
- "${external_vol_tgt}-h5_api_test_${api_test}"
- PROPERTIES
- ENVIRONMENT
- "${vol_test_env}"
- WORKING_DIRECTORY
- "${HDF5_TEST_BINARY_DIR}/${external_vol_tgt}"
- DEPENDS
- "${last_api_test}"
- )
-
- set (last_api_test "${external_vol_tgt}-h5_api_test_${api_test}")
- endforeach ()
+#-----------------------------------------------------------------------------
+# Install the main API test executable and any
+# extra HDF5 tests if requested
+#-----------------------------------------------------------------------------
+if (HDF5_EXPORTED_TARGETS AND HDF5_TEST_API_INSTALL)
+ install (
+ TARGETS
+ h5_api_test
+ EXPORT
+ ${HDF5_EXPORTED_TARGETS}
+ DESTINATION
+ ${HDF5_INSTALL_BIN_DIR}
+ PERMISSIONS
+ OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
+ COMPONENT
+ tests
+ )
- # Add any extra HDF5 tests
- foreach (hdf5_test ${HDF5_API_TESTS_EXTRA})
- add_test (
- NAME "${external_vol_tgt}-h5_api_test_${hdf5_test}"
- COMMAND $<TARGET_FILE:h5_api_test_${hdf5_test}>
- )
- set_tests_properties (
- "${external_vol_tgt}-h5_api_test_${hdf5_test}"
- PROPERTIES
- ENVIRONMENT
- "${vol_test_env}"
- WORKING_DIRECTORY
- "${HDF5_TEST_BINARY_DIR}/${external_vol_tgt}"
- )
- endforeach ()
- endforeach ()
- endif ()
+ foreach (api_test_extra ${HDF5_API_TESTS_EXTRA})
+ if (TARGET ${api_test_extra})
+ set_target_properties (
+ ${api_test_extra}
+ PROPERTIES
+ OUTPUT_NAME "h5_api_test_${api_test_extra}"
+ )
+ install (
+ TARGETS
+ ${api_test_extra}
+ EXPORT
+ ${HDF5_EXPORTED_TARGETS}
+ DESTINATION
+ ${HDF5_INSTALL_BIN_DIR}
+ PERMISSIONS
+ OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
+ COMPONENT
+ tests
+ )
+ endif ()
+ endforeach ()
endif ()