mirror of
https://github.com/HDFGroup/hdf5.git
synced 2025-01-30 15:32:37 +08:00
[svn-r19458] Add CMake tests for check-vfd; includes new vfdTest.cmake script and OPTION HDF5_TEST_VFD
Tested: local linux
This commit is contained in:
parent
d6c6a34a8f
commit
937cfb0c26
1
MANIFEST
1
MANIFEST
@ -1944,6 +1944,7 @@
|
||||
./config/cmake/cacheinit.cmake
|
||||
./config/cmake/grepTest.cmake
|
||||
./config/cmake/runTest.cmake
|
||||
./config/cmake/vfdTest.cmake
|
||||
./config/cmake/CTestCustom.ctest
|
||||
./config/cmake/ConfigureChecks.cmake
|
||||
./CMakeLists.txt
|
||||
|
41
config/cmake/vfdTest.cmake
Normal file
41
config/cmake/vfdTest.cmake
Normal file
@ -0,0 +1,41 @@
|
||||
# runTest.cmake executes a command and captures the output in a file. File is then compared
|
||||
# against a reference file. Exit status of command can also be compared.
|
||||
|
||||
# arguments checking
|
||||
IF (NOT TEST_PROGRAM)
|
||||
MESSAGE (FATAL_ERROR "Require TEST_PROGRAM to be defined")
|
||||
ENDIF (NOT TEST_PROGRAM)
|
||||
#IF (NOT TEST_ARGS)
|
||||
# MESSAGE (STATUS "Require TEST_ARGS to be defined")
|
||||
#ENDIF (NOT TEST_ARGS)
|
||||
#IF (NOT TEST_EXPECT)
|
||||
# MESSAGE (STATUS "Require TEST_EXPECT to be defined")
|
||||
#ENDIF (NOT TEST_EXPECT)
|
||||
IF (NOT TEST_FOLDER)
|
||||
MESSAGE ( FATAL_ERROR "Require TEST_FOLDER to be defined")
|
||||
ENDIF (NOT TEST_FOLDER)
|
||||
IF (NOT TEST_VFD)
|
||||
MESSAGE (FATAL_ERROR "Require TEST_VFD to be defined")
|
||||
ENDIF (NOT TEST_VFD)
|
||||
|
||||
MESSAGE (STATUS "USING ${TEST_VFD} ON COMMAND: ${TEST_PROGRAM} ${TEST_ARGS}")
|
||||
|
||||
SET (ENV{HDF5_DRIVER} "${TEST_VFD}")
|
||||
# run the test program, capture the stdout/stderr and the result var
|
||||
EXECUTE_PROCESS (
|
||||
COMMAND ${TEST_PROGRAM} ${TEST_ARGS}
|
||||
WORKING_DIRECTORY ${TEST_FOLDER}
|
||||
OUTPUT_VARIABLE TEST_ERROR
|
||||
ERROR_VARIABLE TEST_ERROR
|
||||
)
|
||||
|
||||
MESSAGE (STATUS "COMMAND Result: ${TEST_RESULT}")
|
||||
|
||||
# if the return value is !=${TEST_EXPECT} bail out
|
||||
IF (NOT ${TEST_RESULT} STREQUAL ${TEST_EXPECT})
|
||||
MESSAGE ( FATAL_ERROR "Failed: Test program ${TEST_PROGRAM} exited != ${TEST_EXPECT}.\n${TEST_ERROR}")
|
||||
ENDIF (NOT ${TEST_RESULT} STREQUAL ${TEST_EXPECT})
|
||||
|
||||
# everything went fine...
|
||||
MESSAGE ("Passed: The ${TEST_PROGRAM} program used vfd ${TEST_VFD}")
|
||||
|
@ -270,6 +270,43 @@ TARGET_LINK_LIBRARIES (ttsafe ${HDF5_LIB_TARGET} ${HDF5_TEST_LIB_TARGET})
|
||||
|
||||
ADD_TEST (NAME ttsafe COMMAND $<TARGET_FILE:ttsafe>)
|
||||
|
||||
IF (HDF5_TEST_VFD)
|
||||
|
||||
SET (VFD_LIST
|
||||
sec2
|
||||
stdio
|
||||
core
|
||||
split
|
||||
multi
|
||||
family
|
||||
)
|
||||
|
||||
IF (DIRECT_VFD)
|
||||
SET (VFD_LIST ${VFD_LIST} direct)
|
||||
ENDIF (DIRECT_VFD)
|
||||
|
||||
MACRO (ADD_VFD_TEST vfdname resultcode)
|
||||
FOREACH (test ${H5_TESTS})
|
||||
ADD_TEST (
|
||||
NAME VFD-${vfdname}-${test}
|
||||
COMMAND "${CMAKE_COMMAND}"
|
||||
-D "TEST_PROGRAM=$<TARGET_FILE:${test}>"
|
||||
-D "TEST_ARGS:STRING="
|
||||
-D "TEST_VFD:STRING=${vfdname}"
|
||||
-D "TEST_EXPECT=${resultcode}"
|
||||
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
|
||||
-P "${HDF5_RESOURCES_DIR}/vfdTest.cmake"
|
||||
)
|
||||
ENDFOREACH (test ${H5_TESTS})
|
||||
ENDMACRO (ADD_VFD_TEST)
|
||||
|
||||
# Run test with different Virtual File Driver
|
||||
FOREACH (vfd ${VFD_LIST})
|
||||
ADD_VFD_TEST (${vfd} 0)
|
||||
ENDFOREACH (vfd ${VFD_LIST})
|
||||
|
||||
ENDIF (HDF5_TEST_VFD)
|
||||
|
||||
##############################################################################
|
||||
##############################################################################
|
||||
### T H E G E N E R A T O R S ###
|
||||
|
Loading…
Reference in New Issue
Block a user