forked from lijiext/lammps
53 lines
2.1 KiB
CMake
53 lines
2.1 KiB
CMake
###############################################################################
|
|
# Testing
|
|
###############################################################################
|
|
option(ENABLE_TESTING "Enable testing" OFF)
|
|
if(ENABLE_TESTING AND BUILD_EXE)
|
|
enable_testing()
|
|
option(LAMMPS_TESTING_SOURCE_DIR "Location of lammps-testing source directory" "")
|
|
option(LAMMPS_TESTING_GIT_TAG "Git tag of lammps-testing" "master")
|
|
mark_as_advanced(LAMMPS_TESTING_SOURCE_DIR LAMMPS_TESTING_GIT_TAG)
|
|
|
|
if (CMAKE_VERSION VERSION_GREATER "3.10.3" AND NOT LAMMPS_TESTING_SOURCE_DIR)
|
|
include(FetchContent)
|
|
|
|
FetchContent_Declare(lammps-testing
|
|
GIT_REPOSITORY https://github.com/lammps/lammps-testing.git
|
|
GIT_TAG ${LAMMPS_TESTING_GIT_TAG}
|
|
)
|
|
|
|
FetchContent_GetProperties(lammps-testing)
|
|
if(NOT lammps-testing_POPULATED)
|
|
message(STATUS "Downloading tests...")
|
|
FetchContent_Populate(lammps-testing)
|
|
endif()
|
|
|
|
set(LAMMPS_TESTING_SOURCE_DIR ${lammps-testing_SOURCE_DIR})
|
|
elseif(NOT LAMMPS_TESTING_SOURCE_DIR)
|
|
message(WARNING "Full test-suite requires CMake >= 3.11 or copy of\n"
|
|
"https://github.com/lammps/lammps-testing in LAMMPS_TESTING_SOURCE_DIR")
|
|
endif()
|
|
|
|
add_test(ShowHelp ${CMAKE_BINARY_DIR}/${LAMMPS_BINARY} -help)
|
|
|
|
if(EXISTS ${LAMMPS_TESTING_SOURCE_DIR})
|
|
message(STATUS "Running test discovery...")
|
|
|
|
file(GLOB_RECURSE TEST_SCRIPTS ${LAMMPS_TESTING_SOURCE_DIR}/tests/core/*/in.*)
|
|
foreach(script_path ${TEST_SCRIPTS})
|
|
get_filename_component(TEST_NAME ${script_path} EXT)
|
|
get_filename_component(SCRIPT_NAME ${script_path} NAME)
|
|
get_filename_component(PARENT_DIR ${script_path} DIRECTORY)
|
|
string(SUBSTRING ${TEST_NAME} 1 -1 TEST_NAME)
|
|
string(REPLACE "-" "_" TEST_NAME ${TEST_NAME})
|
|
string(REPLACE "+" "_" TEST_NAME ${TEST_NAME})
|
|
set(TEST_NAME "test_core_${TEST_NAME}_serial")
|
|
add_test(${TEST_NAME} ${CMAKE_BINARY_DIR}/${LAMMPS_BINARY} -in ${SCRIPT_NAME})
|
|
set_tests_properties(${TEST_NAME} PROPERTIES WORKING_DIRECTORY ${PARENT_DIR})
|
|
endforeach()
|
|
list(LENGTH TEST_SCRIPTS NUM_TESTS)
|
|
|
|
message(STATUS "Found ${NUM_TESTS} tests.")
|
|
endif()
|
|
endif()
|