include (CTest)
enable_testing()

message(STATUS "******* TESTING ADDED *****************")
#set (Python3_FIND_ABI "OFF" "ANY" "ANY")
find_package(Python3 ${PYTHON_VERSION} EXACT REQUIRED COMPONENTS Interpreter)

set(APBS_BINARY "apbs")
if(CMAKE_HOST_WIN32)
  set(APBS_BINARY "apbs.exe")
endif()

set(TESTS_CFG_FILE ${CMAKE_SOURCE_DIR}/tests/test_cases.cfg)

if(EXISTS ${TESTS_CFG_FILE})
    file(READ ${TESTS_CFG_FILE} TEST_CASES_FILE)
    string(REPLACE "\n" ";" TEST_CASES_LINES ${TEST_CASES_FILE}) 
    foreach(_line ${TEST_CASES_LINES})
        if(${_line} MATCHES "^\\[")
            string(REPLACE "[" "" _line ${_line})
            string(REPLACE "]" "" _line ${_line})
            string(REGEX REPLACE "[-].*$" "" _shortname ${_line})
            string(TOUPPER "ENABLE_${_shortname}" OPTION_NAME)
            message(STATUS "******* FOUND TEST CASE ${_shortname}, ${_line}")
            if (DEFINED "${OPTION_NAME}" AND NOT ${OPTION_NAME})
                message(STATUS "******* SKIPPING TEST CASE ${_shortname}, ${_line}")
            else()
                message(STATUS "TEST  ${_line}_test  WORKING_DIRECTORY  ${CMAKE_SOURCE_DIR}/tests  COMMAND ${Python3_EXECUTABLE} ${CMAKE_SOURCE_DIR}/tests/apbs_tester.py -e ${APBS_BINARY} -t ${_line}")
                add_test(NAME        "${_line}_test" WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}/tests" COMMAND ${Python3_EXECUTABLE} ${CMAKE_SOURCE_DIR}/tests/apbs_tester.py -e ${APBS_BINARY} -t ${_line})
            endif()
        endif()
    endforeach()
else()
    message(FATAL  "******* MISSING Test Config (${TESTS_CFG_FILE})")
endif()
