diff --git a/unittest/force-styles/CMakeLists.txt b/unittest/force-styles/CMakeLists.txt index 1db4298b29..7c69ab8087 100644 --- a/unittest/force-styles/CMakeLists.txt +++ b/unittest/force-styles/CMakeLists.txt @@ -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=$ + -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=$ + -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=$ + -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=$ + -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=$ + -DTEST_INPUT=${TEST} -DTEST_NAME=${TNAME} -P ${CMAKE_CURRENT_SOURCE_DIR}/TestRunner.cmake WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) endforeach() - diff --git a/unittest/force-styles/TestRunner.cmake b/unittest/force-styles/TestRunner.cmake new file mode 100644 index 0000000000..325704137c --- /dev/null +++ b/unittest/force-styles/TestRunner.cmake @@ -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()