da43859b97
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>
29 lines
1.2 KiB
CMake
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)
|