test: 接入 CTest 并添加基础 runtime 测试

This commit is contained in:
2026-03-14 13:55:09 +08:00
parent 6ec4d8422f
commit 58d1b09203
4 changed files with 45 additions and 1 deletions

1
.gitignore vendored
View File

@@ -2,3 +2,4 @@
/build/ /build/
/zdwm /zdwm
/.cache/ /.cache/
/Testing/

View File

@@ -6,6 +6,7 @@ set(CMAKE_C_STANDARD_REQUIRED ON)
set(CMAKE_C_EXTENSIONS ON) set(CMAKE_C_EXTENSIONS ON)
set(APP_NAME "zdwm") set(APP_NAME "zdwm")
set(TEST_APP_NAME "zdwm-tests")
set(SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/src") set(SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/src")
set(BUILD_DIR "${CMAKE_CURRENT_BINARY_DIR}") set(BUILD_DIR "${CMAKE_CURRENT_BINARY_DIR}")
@@ -24,6 +25,8 @@ project(${APP_NAME}
LANGUAGES C LANGUAGES C
) )
enable_testing()
add_executable(${APP_NAME} add_executable(${APP_NAME}
${SOURCE_DIR}/wm.c ${SOURCE_DIR}/wm.c
${SOURCE_DIR}/utils.c ${SOURCE_DIR}/utils.c
@@ -51,6 +54,15 @@ add_executable(${APP_NAME}
${SOURCE_DIR}/tray.c ${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) find_package(PkgConfig REQUIRED)
pkg_check_modules(deps REQUIRED pkg_check_modules(deps REQUIRED
@@ -86,11 +98,28 @@ target_include_directories(${APP_NAME}
PRIVATE ${BUILD_DIR} 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} target_link_libraries(${APP_NAME}
PRIVATE m PRIVATE m
PRIVATE ${deps_LIBRARIES} 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() # Check for backtrace_symbols()
@@ -101,6 +130,7 @@ if(NOT HAS_EXECINFO)
if(LIB_EXECINFO) if(LIB_EXECINFO)
set(HAS_EXECINFO TRUE) set(HAS_EXECINFO TRUE)
target_link_libraries(${APP_NAME} ${LIB_EXECINFO}) target_link_libraries(${APP_NAME} ${LIB_EXECINFO})
target_link_libraries(${TEST_APP_NAME} ${LIB_EXECINFO})
endif() endif()
endif() endif()
if(HAS_EXECINFO) if(HAS_EXECINFO)

View File

@@ -39,4 +39,7 @@ build: prepare
@cmake --build $(BUILD_DIR) @cmake --build $(BUILD_DIR)
@cp $(BUILD_DIR)/$(TARGET_NAME) $(TARGET) @cp $(BUILD_DIR)/$(TARGET_NAME) $(TARGET)
.PHONY: clean run wm prepare build install uninstall reinstall test: build
@ctest --test-dir $(BUILD_DIR)
.PHONY: clean run wm prepare build install uninstall reinstall test

10
tests/main.c Normal file
View File

@@ -0,0 +1,10 @@
#include "core/runtime.h"
int main(void) {
wm_runtime_t runtime = {0};
wm_runtime_init(&runtime);
wm_runtime_shutdown(&runtime);
return 0;
}