test: 接入 CTest 并添加基础 runtime 测试
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -2,3 +2,4 @@
|
|||||||
/build/
|
/build/
|
||||||
/zdwm
|
/zdwm
|
||||||
/.cache/
|
/.cache/
|
||||||
|
/Testing/
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
5
Makefile
5
Makefile
@@ -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
10
tests/main.c
Normal 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;
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user