forked from lijiext/lammps
implement method to pass command line flags to test programs when run through ctest
based on the suggestion at: https://stackoverflow.com/questions/28812533/how-to-pass-command-line-arguments-in-ctest-at-runtime but customized for the force-style tests
This commit is contained in:
parent
0e708469b6
commit
8739067593
|
@ -28,7 +28,9 @@ target_link_libraries(pair_style PRIVATE lammps style_tests)
|
|||
file(GLOB MOL_PAIR_TESTS LIST_DIRECTORIES false ${TEST_INPUT_FOLDER}/mol-pair-*.yaml)
|
||||
foreach(TEST ${MOL_PAIR_TESTS})
|
||||
string(REGEX REPLACE "^.*mol-pair-(.*)\.yaml" "MolPairStyle:\\1" TNAME ${TEST})
|
||||
add_test(NAME ${TNAME} COMMAND pair_style ${TEST}
|
||||
add_test(NAME ${TNAME}
|
||||
COMMAND ${CMAKE_COMMAND} -DTEST_EXECUTABLE=$<TARGET_FILE:pair_style>
|
||||
-DTEST_INPUT=${TEST} -DTEST_NAME=${TNAME} -P ${CMAKE_CURRENT_SOURCE_DIR}/TestRunner.cmake
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
|
||||
endforeach()
|
||||
|
||||
|
@ -36,7 +38,9 @@ endforeach()
|
|||
file(GLOB ATOMIC_PAIR_TESTS LIST_DIRECTORIES false ${TEST_INPUT_FOLDER}/atomic-pair-*.yaml)
|
||||
foreach(TEST ${ATOMIC_PAIR_TESTS})
|
||||
string(REGEX REPLACE "^.*atomic-pair-(.*)\.yaml" "AtomicPairStyle:\\1" TNAME ${TEST})
|
||||
add_test(NAME ${TNAME} COMMAND pair_style ${TEST}
|
||||
add_test(NAME ${TNAME}
|
||||
COMMAND ${CMAKE_COMMAND} -DTEST_EXECUTABLE=$<TARGET_FILE:pair_style>
|
||||
-DTEST_INPUT=${TEST} -DTEST_NAME=${TNAME} -P ${CMAKE_CURRENT_SOURCE_DIR}/TestRunner.cmake
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
|
||||
set_tests_properties(${TNAME} PROPERTIES ENVIRONMENT "LAMMPS_POTENTIALS=${LAMMPS_POTENTIALS_DIR}")
|
||||
endforeach()
|
||||
|
@ -45,7 +49,9 @@ endforeach()
|
|||
file(GLOB MANYBODY_PAIR_TESTS LIST_DIRECTORIES false ${TEST_INPUT_FOLDER}/manybody-pair-*.yaml)
|
||||
foreach(TEST ${MANYBODY_PAIR_TESTS})
|
||||
string(REGEX REPLACE "^.*manybody-pair-(.*)\.yaml" "ManybodyPairStyle:\\1" TNAME ${TEST})
|
||||
add_test(NAME ${TNAME} COMMAND pair_style ${TEST}
|
||||
add_test(NAME ${TNAME}
|
||||
COMMAND ${CMAKE_COMMAND} -DTEST_EXECUTABLE=$<TARGET_FILE:pair_style>
|
||||
-DTEST_INPUT=${TEST} -DTEST_NAME=${TNAME} -P ${CMAKE_CURRENT_SOURCE_DIR}/TestRunner.cmake
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
|
||||
set_tests_properties(${TNAME} PROPERTIES ENVIRONMENT "LAMMPS_POTENTIALS=${LAMMPS_POTENTIALS_DIR}")
|
||||
endforeach()
|
||||
|
@ -57,7 +63,9 @@ target_link_libraries(bond_style PRIVATE lammps style_tests)
|
|||
file(GLOB BOND_TESTS LIST_DIRECTORIES false ${TEST_INPUT_FOLDER}/bond-*.yaml)
|
||||
foreach(TEST ${BOND_TESTS})
|
||||
string(REGEX REPLACE "^.*bond-(.*)\.yaml" "BondStyle:\\1" TNAME ${TEST})
|
||||
add_test(NAME ${TNAME} COMMAND bond_style ${TEST}
|
||||
add_test(NAME ${TNAME}
|
||||
COMMAND ${CMAKE_COMMAND} -DTEST_EXECUTABLE=$<TARGET_FILE:bond_style>
|
||||
-DTEST_INPUT=${TEST} -DTEST_NAME=${TNAME} -P ${CMAKE_CURRENT_SOURCE_DIR}/TestRunner.cmake
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
|
||||
endforeach()
|
||||
|
||||
|
@ -68,7 +76,8 @@ target_link_libraries(angle_style PRIVATE lammps style_tests)
|
|||
file(GLOB ANGLE_TESTS LIST_DIRECTORIES false ${TEST_INPUT_FOLDER}/angle-*.yaml)
|
||||
foreach(TEST ${ANGLE_TESTS})
|
||||
string(REGEX REPLACE "^.*angle-(.*)\.yaml" "AngleStyle:\\1" TNAME ${TEST})
|
||||
add_test(NAME ${TNAME} COMMAND angle_style ${TEST}
|
||||
add_test(NAME ${TNAME}
|
||||
COMMAND ${CMAKE_COMMAND} -DTEST_EXECUTABLE=$<TARGET_FILE:angle_style>
|
||||
-DTEST_INPUT=${TEST} -DTEST_NAME=${TNAME} -P ${CMAKE_CURRENT_SOURCE_DIR}/TestRunner.cmake
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
|
||||
endforeach()
|
||||
|
||||
|
|
|
@ -0,0 +1,8 @@
|
|||
# workaround to allow passing extra arguments to test runs
|
||||
# through ctest via a TEST_ARGS environment variable
|
||||
# This can be used to, e.g. reset reference data for individual
|
||||
# tests from the build folder with "env TEST_ARGS=-u ctest -R sometest"
|
||||
execute_process(COMMAND ${TEST_EXECUTABLE} ${TEST_INPUT} $ENV{TEST_ARGS} RESULT_VARIABLE rv)
|
||||
if(NOT "${rv}" STREQUAL "0")
|
||||
message(FATAL_ERROR "Test ${TEST_NAME} failed with status ${rv}")
|
||||
endif()
|
Loading…
Reference in New Issue