# ---------------------------------------------------------------------------
# Integrationstests der Anwendung.
#
# Diese testen die Shell als Ganzes: eine Folge von Kommandos, wie ein
# Benutzer sie eintippen wuerde, und das Ergebnis am Ende. Kein Framework,
# Auskunft ueber den Exit-Code.
# ---------------------------------------------------------------------------

function(pda_add_integration_test name)
    set(target "integration_${name}")

    if(NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${name}/driver.cpp")
        message(WARNING "tests/${name}: keine driver.cpp gefunden")
        return()
    endif()

    add_executable(${target} "${name}/driver.cpp")
    target_link_libraries(${target} PRIVATE pda_shell pda_warnings)
    add_test(NAME "integration.${name}" COMMAND ${target})
endfunction()

pda_add_integration_test(session)
