test: 接入 CTest 并添加基础 runtime 测试
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -2,3 +2,4 @@
|
||||
/build/
|
||||
/zdwm
|
||||
/.cache/
|
||||
/Testing/
|
||||
|
||||
@@ -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)
|
||||
|
||||
5
Makefile
5
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
|
||||
|
||||
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