#   SPDX-FileCopyrightText: no
#   SPDX-License-Identifier: CC0-1.0
#
# We have tests to load (some) of the package-managers specifically, to
# test their configuration code and implementation. Those tests conventionally
# live in Python files here in the tests/ directory. Add them.

# Pacman (Arch) tests
set(_pm pacman)
add_test(
    NAME configure-packages-${_pm}
    COMMAND env PYTHONPATH=.: python3 ${CMAKE_CURRENT_LIST_DIR}/test-pm-${_pm}.py
    WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
)
add_test(
    NAME configure-packages-${_pm}-ops-1
    COMMAND
        env PYTHONPATH=.: python3 ${CMAKE_CURRENT_LIST_DIR}/test-pm-${_pm}.py ${CMAKE_CURRENT_LIST_DIR}/pm-pacman-1.yaml
        4 1 1
    WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
)
add_test(
    NAME configure-packages-${_pm}-ops-2
    COMMAND
        env PYTHONPATH=.: python3 ${CMAKE_CURRENT_LIST_DIR}/test-pm-${_pm}.py ${CMAKE_CURRENT_LIST_DIR}/pm-pacman-2.yaml
        3 0 0
    WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
)

if(BUILD_TESTING AND BUILD_SCHEMA_TESTING AND Python_Interpreter_FOUND)
    set(_module packages)
    set(_schema_file "${CMAKE_CURRENT_SOURCE_DIR}/${_module}/${_module}.schema.yaml")
    message(STATUS "Schema ${_schema_file}")
    foreach(_cf pm-pacman-1.yaml pm-pacman-2.yaml)
        set(_conf_file "${CMAKE_CURRENT_SOURCE_DIR}/${_module}/tests/${_cf}")
        if(EXISTS "${_schema_file}" AND EXISTS "${_conf_file}")
            add_test(
                NAME validate-packages-${_cf}
                COMMAND
                    ${Python_EXECUTABLE} "${CMAKE_SOURCE_DIR}/ci/configvalidator.py" "${_schema_file}" "${_conf_file}"
            )
        else()
            message(FATAL_ERROR "Missing ${_conf_file}")
        endif()
    endforeach()
endif()
