test: 接入 CTest 并添加基础 runtime 测试
This commit is contained in:
@@ -6,6 +6,7 @@ set(CMAKE_C_STANDARD_REQUIRED ON)
|
||||
set(CMAKE_C_EXTENSIONS ON)
|
||||
|
||||
set(APP_NAME "zdwm")
|
||||
set(TEST_APP_NAME "zdwm-tests")
|
||||
set(SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/src")
|
||||
set(BUILD_DIR "${CMAKE_CURRENT_BINARY_DIR}")
|
||||
|
||||
@@ -24,6 +25,8 @@ project(${APP_NAME}
|
||||
LANGUAGES C
|
||||
)
|
||||
|
||||
enable_testing()
|
||||
|
||||
add_executable(${APP_NAME}
|
||||
${SOURCE_DIR}/wm.c
|
||||
${SOURCE_DIR}/utils.c
|
||||
@@ -51,6 +54,15 @@ add_executable(${APP_NAME}
|
||||
${SOURCE_DIR}/tray.c
|
||||
)
|
||||
|
||||
add_executable(${TEST_APP_NAME}
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/tests/main.c
|
||||
${SOURCE_DIR}/utils.c
|
||||
${SOURCE_DIR}/backend/x11.c
|
||||
${SOURCE_DIR}/core/layout.c
|
||||
${SOURCE_DIR}/core/runtime.c
|
||||
${SOURCE_DIR}/core/state.c
|
||||
)
|
||||
|
||||
find_package(PkgConfig REQUIRED)
|
||||
|
||||
pkg_check_modules(deps REQUIRED
|
||||
@@ -86,11 +98,28 @@ target_include_directories(${APP_NAME}
|
||||
PRIVATE ${BUILD_DIR}
|
||||
)
|
||||
|
||||
target_include_directories(${TEST_APP_NAME} SYSTEM
|
||||
PRIVATE ${deps_INCLUDE_DIRS}
|
||||
)
|
||||
target_include_directories(${TEST_APP_NAME}
|
||||
PRIVATE ${SOURCE_DIR}
|
||||
PRIVATE ${BUILD_DIR}
|
||||
)
|
||||
|
||||
target_link_libraries(${APP_NAME}
|
||||
PRIVATE m
|
||||
PRIVATE ${deps_LIBRARIES}
|
||||
)
|
||||
|
||||
target_link_libraries(${TEST_APP_NAME}
|
||||
PRIVATE m
|
||||
PRIVATE ${deps_LIBRARIES}
|
||||
)
|
||||
|
||||
add_test(NAME ${TEST_APP_NAME} COMMAND $<TARGET_FILE:${TEST_APP_NAME}>)
|
||||
set_tests_properties(${TEST_APP_NAME} PROPERTIES
|
||||
ENVIRONMENT "DISPLAY=:3"
|
||||
)
|
||||
|
||||
## 配置项
|
||||
# Check for backtrace_symbols()
|
||||
@@ -101,6 +130,7 @@ if(NOT HAS_EXECINFO)
|
||||
if(LIB_EXECINFO)
|
||||
set(HAS_EXECINFO TRUE)
|
||||
target_link_libraries(${APP_NAME} ${LIB_EXECINFO})
|
||||
target_link_libraries(${TEST_APP_NAME} ${LIB_EXECINFO})
|
||||
endif()
|
||||
endif()
|
||||
if(HAS_EXECINFO)
|
||||
|
||||
Reference in New Issue
Block a user