#   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 PYTHONINTERP_FOUND AND PYTHON_EXECUTABLE )
    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()

