1# 2# Copyright by The HDF Group. 3# All rights reserved. 4# 5# This file is part of HDF5. The full HDF5 copyright notice, including 6# terms governing use, modification, and redistribution, is contained in 7# the COPYING file, which can be found at the root of the source code 8# distribution tree, or in https://support.hdfgroup.org/ftp/HDF5/releases. 9# If you do not have access to either file, you may request a copy from 10# help@hdfgroup.org. 11# 12 13############################################################################## 14############################################################################## 15### T E S T I N G ### 16############################################################################## 17############################################################################## 18 19 # -------------------------------------------------------------------- 20 # Copy all the test files from source directory to test directory 21 # -------------------------------------------------------------------- 22 set (LIST_HDF5_TEST_FILES 23 1_a.h5 24 1_b.h5 25 1_c.h5 26 1_d.h5 27 1_e.h5 28 1_f.h5 29 1_vds.h5 30 2_a.h5 31 2_b.h5 32 2_c.h5 33 2_d.h5 34 2_e.h5 35 2_vds.h5 36 3_1_vds.h5 37 3_2_vds.h5 38 4_0.h5 39 4_1.h5 40 4_2.h5 41 4_vds.h5 42 5_a.h5 43 5_b.h5 44 5_c.h5 45 5_vds.h5 46 ) 47 48 set (LIST_OTHER_TEST_FILES 49 tvds-1.ls 50 tvds-2.ls 51 tvds-3_1.ls 52 tvds-3_2.ls 53 tvds-4.ls 54 tvds-5.ls 55 ) 56 57 file (MAKE_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles") 58 59 # copy the list of test files 60 foreach (listfiles ${LIST_HDF5_TEST_FILES} ${LIST_OTHER_TEST_FILES}) 61 get_filename_component(fname "${listfiles}" NAME) 62 HDFTEST_COPY_FILE("${HDF5_TOOLS_DIR}/testfiles/vds/${listfiles}" "${PROJECT_BINARY_DIR}/testfiles/vds/${fname}" "h5ls_vds_files") 63 endforeach () 64 65 foreach (listfiles ${LIST_HDF5_TEST_FILES}) 66 get_filename_component(fname "${listfiles}" NAME) 67 HDFTEST_COPY_FILE("${HDF5_TOOLS_DIR}/testfiles/vds/${listfiles}" "${PROJECT_BINARY_DIR}/testfiles/vds/prefix/${fname}" "h5ls_vds_files") 68 endforeach () 69 70 foreach (listfiles ${LIST_OTHER_TEST_FILES}) 71 get_filename_component(fname "${listfiles}" NAME) 72 HDFTEST_COPY_FILE("${HDF5_TOOLS_TEST_H5LS_SOURCE_DIR}/vds_prefix/${listfiles}" "${PROJECT_BINARY_DIR}/testfiles/vds/prefix/${fname}" "h5ls_vds_files") 73 endforeach () 74 75 add_custom_target(h5ls_vds_files ALL COMMENT "Copying files needed by h5ls_vds tests" DEPENDS ${h5ls_vds_files_list}) 76 77############################################################################## 78############################################################################## 79### T H E T E S T S M A C R O S ### 80############################################################################## 81############################################################################## 82 83 if (NOT BUILD_SHARED_LIBS) 84 set (tgt_ext "") 85 else () 86 set (tgt_ext "-shared") 87 endif () 88 89 macro (ADD_H5_VDS_TEST resultfile resultcode) 90 # If using memchecker add tests without using scripts 91 if (HDF5_ENABLE_USING_MEMCHECKER) 92 add_test (NAME H5LS-${resultfile} COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5ls${tgt_ext}> ${ARGN}) 93 set_tests_properties (H5LS-${resultfile} PROPERTIES WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles/vds") 94 if (${resultcode} EQUAL 1) 95 set_tests_properties (H5LS-${resultfile} PROPERTIES WILL_FAIL "true") 96 endif () 97 else () 98 add_test ( 99 NAME H5LS-${resultfile} 100 COMMAND "${CMAKE_COMMAND}" 101 -D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}" 102 -D "TEST_PROGRAM=$<TARGET_FILE:h5ls${tgt_ext}>" 103 -D "TEST_ARGS=${ARGN}" 104 -D "TEST_FOLDER=${PROJECT_BINARY_DIR}/testfiles/vds" 105 -D "TEST_OUTPUT=${resultfile}.out" 106 -D "TEST_EXPECT=${resultcode}" 107 -D "TEST_REFERENCE=${resultfile}.ls" 108 -P "${HDF_RESOURCES_EXT_DIR}/runTest.cmake" 109 ) 110 endif () 111 endmacro () 112 113 macro (ADD_H5_VDS_PREFIX_TEST resultfile resultcode) 114 # If using memchecker add tests without using scripts 115 if (HDF5_ENABLE_USING_MEMCHECKER) 116 add_test (NAME H5LS_PREFIX-${resultfile} COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5ls${tgt_ext}> ${ARGN}) 117 set_tests_properties (H5LS_PREFIX-${resultfile} PROPERTIES 118 ENVIRONMENT "HDF5_VDS_PREFIX=\${ORIGIN}" 119 WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles" 120 ) 121 if (${resultcode} EQUAL 1) 122 set_tests_properties (H5LS_PREFIX-${resultfile} PROPERTIES WILL_FAIL "true") 123 endif () 124 else () 125 add_test ( 126 NAME H5LS_PREFIX-${resultfile} 127 COMMAND "${CMAKE_COMMAND}" 128 -D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}" 129 -D "TEST_PROGRAM=$<TARGET_FILE:h5ls${tgt_ext}>" 130 -D "TEST_ARGS=${ARGN}" 131 -D "TEST_FOLDER=${PROJECT_BINARY_DIR}/testfiles" 132 -D "TEST_OUTPUT=vds/prefix/${resultfile}.out" 133 -D "TEST_EXPECT=${resultcode}" 134 -D "TEST_REFERENCE=vds/prefix/${resultfile}.ls" 135 -D "TEST_ENV_VAR=HDF5_VDS_PREFIX" 136 -D "TEST_ENV_VALUE=\${ORIGIN}" 137 -P "${HDF_RESOURCES_EXT_DIR}/runTest.cmake" 138 ) 139 endif () 140 endmacro () 141 142############################################################################## 143############################################################################## 144### T H E T E S T S ### 145############################################################################## 146############################################################################## 147 148 ADD_H5_VDS_TEST (tvds-1 0 -w80 -v -S 1_vds.h5) 149 ADD_H5_VDS_TEST (tvds-2 0 -w80 -v -S 2_vds.h5) 150 ADD_H5_VDS_TEST (tvds-3_1 0 -w80 -v -S 3_1_vds.h5) 151 ADD_H5_VDS_TEST (tvds-3_2 0 -w80 -v -S 3_2_vds.h5) 152 ADD_H5_VDS_TEST (tvds-4 0 -w80 -v -S 4_vds.h5) 153 ADD_H5_VDS_TEST (tvds-5 0 -w80 -v -S 5_vds.h5) 154 155 ADD_H5_VDS_PREFIX_TEST (tvds-1 0 -w80 -v -S vds/prefix/1_vds.h5) 156 ADD_H5_VDS_PREFIX_TEST (tvds-2 0 -w80 -v -S vds/prefix/2_vds.h5) 157 ADD_H5_VDS_PREFIX_TEST (tvds-3_1 0 -w80 -v -S vds/prefix/3_1_vds.h5) 158 ADD_H5_VDS_PREFIX_TEST (tvds-3_2 0 -w80 -v -S vds/prefix/3_2_vds.h5) 159 ADD_H5_VDS_PREFIX_TEST (tvds-4 0 -w80 -v -S vds/prefix/4_vds.h5) 160 ADD_H5_VDS_PREFIX_TEST (tvds-5 0 -w80 -v -S vds/prefix/5_vds.h5) 161 162