Files
playground/tests/CMakeLists.txt
T
paulhorn da43859b97 feat: Projektstruktur nach P1204R0
Layout, Build und Konventionen analog zu mydb und cxx_scaffold_cli:
Header und Quellen nebeneinander in playground/, Unit-Tests als
.test.c/.test.cpp daneben, Integrationstests in tests/.

Geruest-Module counter (C, Unity) und notebook (C++, doctest) zeigen
jede Regel einmal an lauffaehigem Code.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-30 16:07:03 +02:00

29 lines
1.2 KiB
CMake

# ---------------------------------------------------------------------------
# Integrationstests (P1204R0 Regel 7.2).
#
# Unterschied zu den Unit-Tests neben den Modulen: diese hier benutzen
# ausschliesslich die OEFFENTLICHE API -- also <playground/...> und sonst
# nichts. Damit testen sie genau das, was ein Benutzer bekommt, und koennten
# im Prinzip auch gegen eine installierte Version laufen.
#
# Jedes Unterverzeichnis ist ein eigener Testfall mit eigener driver.c/.cpp.
# ---------------------------------------------------------------------------
function(playground_add_integration_test name)
set(target "integration_${name}")
if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${name}/driver.c")
add_executable(${target} "${name}/driver.c")
elseif(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${name}/driver.cpp")
add_executable(${target} "${name}/driver.cpp")
else()
message(WARNING "tests/${name}: keine driver.c/.cpp gefunden")
return()
endif()
target_link_libraries(${target} PRIVATE playground_core playground_warnings)
add_test(NAME "integration.${name}" COMMAND ${target})
endfunction()
playground_add_integration_test(basics)