rexglue-skate3/tests/unit/CMakeLists.txt
2026-05-18 22:41:13 +01:00

64 lines
1.6 KiB
CMake

# Unit Tests for ReXGlue core components
add_executable(unit_tests
memory/heap_allocation_test.cpp
kernel/object_table_test.cpp
core/cvar_test.cpp
core/fiber_test.cpp
core/sha256_test.cpp
core/stream_test.cpp
core/byte_order_test.cpp
core/chrono_test.cpp
codegen/config_test.cpp
codegen/template_registry_test.cpp
ppc/import_function_test.cpp
ppc/stack_test.cpp
system/guest_path_test.cpp
system/function_dispatcher_test.cpp
codegen/manifest_test.cpp
rexglue/migration_scan_test.cpp
rexglue/ui_test.cpp
)
target_sources(unit_tests PRIVATE
${PROJECT_SOURCE_DIR}/src/rexglue/commands/migration_scan.cpp
${PROJECT_SOURCE_DIR}/src/rexglue/ui/ui.cpp
${PROJECT_SOURCE_DIR}/src/rexglue/ui/progress.cpp
)
target_include_directories(unit_tests PRIVATE
${PROJECT_SOURCE_DIR}/include
${PROJECT_SOURCE_DIR}/src
)
target_link_libraries(unit_tests PRIVATE
rexcore
rexcodegen
rexruntime
Catch2::Catch2WithMain
)
# Strip Tracy/profiling instrumentation from test targets
target_compile_options(unit_tests PRIVATE
-UTRACY_ENABLE -UREXGLUE_ENABLE_PROFILING
-UREXGLUE_ENABLE_PERF_COUNTERS -UREXGLUE_PROFILE_GUEST_FUNCTIONS
)
set_target_properties(unit_tests PROPERTIES
RUNTIME_OUTPUT_DIRECTORY $<TARGET_FILE_DIR:rexruntime>
)
if(UNIX AND NOT APPLE)
set_target_properties(unit_tests PROPERTIES
INSTALL_RPATH "$ORIGIN"
BUILD_WITH_INSTALL_RPATH ON
)
endif()
# Discover tests
include(Catch)
catch_discover_tests(unit_tests
TEST_PREFIX "unit."
PROPERTIES
LABELS "unit"
TIMEOUT 60
)