From 58d1b09203db7b57d6b3089ee894cbaba17f0974 Mon Sep 17 00:00:00 2001 From: Zedhugh Chen Date: Sat, 14 Mar 2026 13:55:09 +0800 Subject: [PATCH] =?UTF-8?q?test:=20=E6=8E=A5=E5=85=A5=20CTest=20=E5=B9=B6?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=9F=BA=E7=A1=80=20runtime=20=E6=B5=8B?= =?UTF-8?q?=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + CMakeLists.txt | 30 ++++++++++++++++++++++++++++++ Makefile | 5 ++++- tests/main.c | 10 ++++++++++ 4 files changed, 45 insertions(+), 1 deletion(-) create mode 100644 tests/main.c diff --git a/.gitignore b/.gitignore index ea610b2..c45defe 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ /build/ /zdwm /.cache/ +/Testing/ diff --git a/CMakeLists.txt b/CMakeLists.txt index 6197de8..910ba78 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -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 $) +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) diff --git a/Makefile b/Makefile index fafa1fe..d17f50d 100644 --- a/Makefile +++ b/Makefile @@ -39,4 +39,7 @@ build: prepare @cmake --build $(BUILD_DIR) @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 diff --git a/tests/main.c b/tests/main.c new file mode 100644 index 0000000..397eb06 --- /dev/null +++ b/tests/main.c @@ -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; +}