mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
build: create test/CMakeLists.txt and move test-related code (#22179)
Having a clear separation between build code and test code makes it easier to get a higher-level understanding of how the neovim build works.
This commit is contained in:
parent
5638813066
commit
ffd216e869
@ -306,10 +306,6 @@ install_helper(
|
|||||||
FILES ${CMAKE_SOURCE_DIR}/src/man/nvim.1
|
FILES ${CMAKE_SOURCE_DIR}/src/man/nvim.1
|
||||||
DESTINATION ${CMAKE_INSTALL_MANDIR}/man1)
|
DESTINATION ${CMAKE_INSTALL_MANDIR}/man1)
|
||||||
|
|
||||||
#
|
|
||||||
# Go down the tree.
|
|
||||||
#
|
|
||||||
|
|
||||||
if(EXISTS "${DEPS_PREFIX}/share/nvim-qt")
|
if(EXISTS "${DEPS_PREFIX}/share/nvim-qt")
|
||||||
option(USE_BUNDLED_NVIMQT "Bundle neovim-qt" ON)
|
option(USE_BUNDLED_NVIMQT "Bundle neovim-qt" ON)
|
||||||
else()
|
else()
|
||||||
@ -318,107 +314,14 @@ endif()
|
|||||||
|
|
||||||
add_subdirectory(src/nvim)
|
add_subdirectory(src/nvim)
|
||||||
add_subdirectory(cmake.config)
|
add_subdirectory(cmake.config)
|
||||||
add_subdirectory(test/functional/fixtures) # compile test programs
|
|
||||||
add_subdirectory(runtime)
|
add_subdirectory(runtime)
|
||||||
get_directory_property(GENERATED_HELP_TAGS DIRECTORY runtime DEFINITION GENERATED_HELP_TAGS)
|
add_subdirectory(test)
|
||||||
if(WIN32 AND USE_BUNDLED_NVIMQT)
|
if(WIN32 AND USE_BUNDLED_NVIMQT)
|
||||||
install_helper(
|
install_helper(
|
||||||
FILES ${DEPS_PREFIX}/share/nvim-qt/runtime/plugin/nvim_gui_shim.vim
|
FILES ${DEPS_PREFIX}/share/nvim-qt/runtime/plugin/nvim_gui_shim.vim
|
||||||
DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/nvim-qt/runtime/plugin)
|
DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/nvim-qt/runtime/plugin)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Setup busted.
|
|
||||||
find_program(BUSTED_PRG NAMES busted busted.bat)
|
|
||||||
find_program(BUSTED_LUA_PRG busted-lua)
|
|
||||||
if(NOT BUSTED_OUTPUT_TYPE)
|
|
||||||
set(BUSTED_OUTPUT_TYPE "nvim")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# Setup some test-related bits. We do this after going down the tree because we
|
|
||||||
# need some of the targets.
|
|
||||||
if(BUSTED_PRG)
|
|
||||||
get_target_property(TEST_INCLUDE_DIRS main_lib INTERFACE_INCLUDE_DIRECTORIES)
|
|
||||||
|
|
||||||
set(UNITTEST_PREREQS nvim)
|
|
||||||
set(FUNCTIONALTEST_PREREQS nvim printenv-test printargs-test shell-test pwsh-test streams-test tty-test ${GENERATED_HELP_TAGS})
|
|
||||||
set(BENCHMARK_PREREQS nvim tty-test)
|
|
||||||
|
|
||||||
check_lua_module(${LUA_PRG} "ffi" LUA_HAS_FFI)
|
|
||||||
if(LUA_HAS_FFI)
|
|
||||||
add_custom_target(unittest
|
|
||||||
COMMAND ${CMAKE_COMMAND}
|
|
||||||
-D BUSTED_PRG=${BUSTED_PRG}
|
|
||||||
-D LUA_PRG=${LUA_PRG}
|
|
||||||
-D NVIM_PRG=$<TARGET_FILE:nvim>
|
|
||||||
-D WORKING_DIR=${CMAKE_CURRENT_SOURCE_DIR}
|
|
||||||
-D BUSTED_OUTPUT_TYPE=${BUSTED_OUTPUT_TYPE}
|
|
||||||
-D TEST_DIR=${CMAKE_CURRENT_SOURCE_DIR}/test
|
|
||||||
-D BUILD_DIR=${CMAKE_BINARY_DIR}
|
|
||||||
-D TEST_TYPE=unit
|
|
||||||
-D CIRRUS_CI=$ENV{CIRRUS_CI}
|
|
||||||
-P ${PROJECT_SOURCE_DIR}/cmake/RunTests.cmake
|
|
||||||
DEPENDS ${UNITTEST_PREREQS}
|
|
||||||
USES_TERMINAL)
|
|
||||||
set_target_properties(unittest PROPERTIES FOLDER test)
|
|
||||||
else()
|
|
||||||
message(WARNING "disabling unit tests: no Luajit FFI in ${LUA_PRG}")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
configure_file(
|
|
||||||
${CMAKE_SOURCE_DIR}/test/cmakeconfig/paths.lua.in
|
|
||||||
${CMAKE_BINARY_DIR}/test/cmakeconfig/paths.lua)
|
|
||||||
|
|
||||||
add_custom_target(functionaltest
|
|
||||||
COMMAND ${CMAKE_COMMAND}
|
|
||||||
-D BUSTED_PRG=${BUSTED_PRG}
|
|
||||||
-D LUA_PRG=${LUA_PRG}
|
|
||||||
-D NVIM_PRG=$<TARGET_FILE:nvim>
|
|
||||||
-D WORKING_DIR=${CMAKE_CURRENT_SOURCE_DIR}
|
|
||||||
-D BUSTED_OUTPUT_TYPE=${BUSTED_OUTPUT_TYPE}
|
|
||||||
-D TEST_DIR=${CMAKE_CURRENT_SOURCE_DIR}/test
|
|
||||||
-D BUILD_DIR=${CMAKE_BINARY_DIR}
|
|
||||||
-D TEST_TYPE=functional
|
|
||||||
-D CIRRUS_CI=$ENV{CIRRUS_CI}
|
|
||||||
-P ${PROJECT_SOURCE_DIR}/cmake/RunTests.cmake
|
|
||||||
DEPENDS ${FUNCTIONALTEST_PREREQS}
|
|
||||||
USES_TERMINAL)
|
|
||||||
set_target_properties(functionaltest PROPERTIES FOLDER test)
|
|
||||||
|
|
||||||
add_custom_target(benchmark
|
|
||||||
COMMAND ${CMAKE_COMMAND}
|
|
||||||
-D BUSTED_PRG=${BUSTED_PRG}
|
|
||||||
-D LUA_PRG=${LUA_PRG}
|
|
||||||
-D NVIM_PRG=$<TARGET_FILE:nvim>
|
|
||||||
-D WORKING_DIR=${CMAKE_CURRENT_SOURCE_DIR}
|
|
||||||
-D BUSTED_OUTPUT_TYPE=${BUSTED_OUTPUT_TYPE}
|
|
||||||
-D TEST_DIR=${CMAKE_CURRENT_SOURCE_DIR}/test
|
|
||||||
-D BUILD_DIR=${CMAKE_BINARY_DIR}
|
|
||||||
-D TEST_TYPE=benchmark
|
|
||||||
-D CIRRUS_CI=$ENV{CIRRUS_CI}
|
|
||||||
-P ${PROJECT_SOURCE_DIR}/cmake/RunTests.cmake
|
|
||||||
DEPENDS ${BENCHMARK_PREREQS}
|
|
||||||
USES_TERMINAL)
|
|
||||||
set_target_properties(benchmark PROPERTIES FOLDER test)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(BUSTED_LUA_PRG)
|
|
||||||
add_custom_target(functionaltest-lua
|
|
||||||
COMMAND ${CMAKE_COMMAND}
|
|
||||||
-D BUSTED_PRG=${BUSTED_LUA_PRG}
|
|
||||||
-D LUA_PRG=${LUA_PRG}
|
|
||||||
-D NVIM_PRG=$<TARGET_FILE:nvim>
|
|
||||||
-D WORKING_DIR=${CMAKE_CURRENT_SOURCE_DIR}
|
|
||||||
-D BUSTED_OUTPUT_TYPE=${BUSTED_OUTPUT_TYPE}
|
|
||||||
-D TEST_DIR=${CMAKE_CURRENT_SOURCE_DIR}/test
|
|
||||||
-D BUILD_DIR=${CMAKE_BINARY_DIR}
|
|
||||||
-D TEST_TYPE=functional
|
|
||||||
-D CIRRUS_CI=$ENV{CIRRUS_CI}
|
|
||||||
-P ${PROJECT_SOURCE_DIR}/cmake/RunTests.cmake
|
|
||||||
DEPENDS ${FUNCTIONALTEST_PREREQS}
|
|
||||||
USES_TERMINAL)
|
|
||||||
set_target_properties(functionaltest-lua PROPERTIES FOLDER test)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
add_custom_target(uninstall
|
add_custom_target(uninstall
|
||||||
COMMAND ${CMAKE_COMMAND} -P ${PROJECT_SOURCE_DIR}/cmake/UninstallHelper.cmake)
|
COMMAND ${CMAKE_COMMAND} -P ${PROJECT_SOURCE_DIR}/cmake/UninstallHelper.cmake)
|
||||||
|
|
||||||
|
91
test/CMakeLists.txt
Normal file
91
test/CMakeLists.txt
Normal file
@ -0,0 +1,91 @@
|
|||||||
|
add_subdirectory(functional/fixtures) # compile test programs
|
||||||
|
get_directory_property(GENERATED_HELP_TAGS DIRECTORY ${PROJECT_SOURCE_DIR}/runtime DEFINITION GENERATED_HELP_TAGS)
|
||||||
|
|
||||||
|
if(NOT BUSTED_OUTPUT_TYPE)
|
||||||
|
set(BUSTED_OUTPUT_TYPE "nvim")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
find_program(BUSTED_PRG NAMES busted busted.bat)
|
||||||
|
if(BUSTED_PRG)
|
||||||
|
get_target_property(TEST_INCLUDE_DIRS main_lib INTERFACE_INCLUDE_DIRECTORIES)
|
||||||
|
|
||||||
|
set(UNITTEST_PREREQS nvim)
|
||||||
|
set(FUNCTIONALTEST_PREREQS nvim printenv-test printargs-test shell-test pwsh-test streams-test tty-test ${GENERATED_HELP_TAGS})
|
||||||
|
set(BENCHMARK_PREREQS nvim tty-test)
|
||||||
|
|
||||||
|
check_lua_module(${LUA_PRG} "ffi" LUA_HAS_FFI)
|
||||||
|
if(LUA_HAS_FFI)
|
||||||
|
add_custom_target(unittest
|
||||||
|
COMMAND ${CMAKE_COMMAND}
|
||||||
|
-D BUSTED_PRG=${BUSTED_PRG}
|
||||||
|
-D LUA_PRG=${LUA_PRG}
|
||||||
|
-D NVIM_PRG=$<TARGET_FILE:nvim>
|
||||||
|
-D WORKING_DIR=${PROJECT_SOURCE_DIR}
|
||||||
|
-D BUSTED_OUTPUT_TYPE=${BUSTED_OUTPUT_TYPE}
|
||||||
|
-D TEST_DIR=${CMAKE_CURRENT_SOURCE_DIR}
|
||||||
|
-D BUILD_DIR=${CMAKE_BINARY_DIR}
|
||||||
|
-D TEST_TYPE=unit
|
||||||
|
-D CIRRUS_CI=$ENV{CIRRUS_CI}
|
||||||
|
-P ${PROJECT_SOURCE_DIR}/cmake/RunTests.cmake
|
||||||
|
DEPENDS ${UNITTEST_PREREQS}
|
||||||
|
USES_TERMINAL)
|
||||||
|
set_target_properties(unittest PROPERTIES FOLDER test)
|
||||||
|
else()
|
||||||
|
message(WARNING "disabling unit tests: no Luajit FFI in ${LUA_PRG}")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
configure_file(
|
||||||
|
${CMAKE_SOURCE_DIR}/test/cmakeconfig/paths.lua.in
|
||||||
|
${CMAKE_BINARY_DIR}/test/cmakeconfig/paths.lua)
|
||||||
|
|
||||||
|
add_custom_target(functionaltest
|
||||||
|
COMMAND ${CMAKE_COMMAND}
|
||||||
|
-D BUSTED_PRG=${BUSTED_PRG}
|
||||||
|
-D LUA_PRG=${LUA_PRG}
|
||||||
|
-D NVIM_PRG=$<TARGET_FILE:nvim>
|
||||||
|
-D WORKING_DIR=${PROJECT_SOURCE_DIR}
|
||||||
|
-D BUSTED_OUTPUT_TYPE=${BUSTED_OUTPUT_TYPE}
|
||||||
|
-D TEST_DIR=${CMAKE_CURRENT_SOURCE_DIR}
|
||||||
|
-D BUILD_DIR=${CMAKE_BINARY_DIR}
|
||||||
|
-D TEST_TYPE=functional
|
||||||
|
-D CIRRUS_CI=$ENV{CIRRUS_CI}
|
||||||
|
-P ${PROJECT_SOURCE_DIR}/cmake/RunTests.cmake
|
||||||
|
DEPENDS ${FUNCTIONALTEST_PREREQS}
|
||||||
|
USES_TERMINAL)
|
||||||
|
set_target_properties(functionaltest PROPERTIES FOLDER test)
|
||||||
|
|
||||||
|
add_custom_target(benchmark
|
||||||
|
COMMAND ${CMAKE_COMMAND}
|
||||||
|
-D BUSTED_PRG=${BUSTED_PRG}
|
||||||
|
-D LUA_PRG=${LUA_PRG}
|
||||||
|
-D NVIM_PRG=$<TARGET_FILE:nvim>
|
||||||
|
-D WORKING_DIR=${PROJECT_SOURCE_DIR}
|
||||||
|
-D BUSTED_OUTPUT_TYPE=${BUSTED_OUTPUT_TYPE}
|
||||||
|
-D TEST_DIR=${CMAKE_CURRENT_SOURCE_DIR}
|
||||||
|
-D BUILD_DIR=${CMAKE_BINARY_DIR}
|
||||||
|
-D TEST_TYPE=benchmark
|
||||||
|
-D CIRRUS_CI=$ENV{CIRRUS_CI}
|
||||||
|
-P ${PROJECT_SOURCE_DIR}/cmake/RunTests.cmake
|
||||||
|
DEPENDS ${BENCHMARK_PREREQS}
|
||||||
|
USES_TERMINAL)
|
||||||
|
set_target_properties(benchmark PROPERTIES FOLDER test)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
find_program(BUSTED_LUA_PRG busted-lua)
|
||||||
|
if(BUSTED_LUA_PRG)
|
||||||
|
add_custom_target(functionaltest-lua
|
||||||
|
COMMAND ${CMAKE_COMMAND}
|
||||||
|
-D BUSTED_PRG=${BUSTED_LUA_PRG}
|
||||||
|
-D LUA_PRG=${LUA_PRG}
|
||||||
|
-D NVIM_PRG=$<TARGET_FILE:nvim>
|
||||||
|
-D WORKING_DIR=${PROJECT_SOURCE_DIR}
|
||||||
|
-D BUSTED_OUTPUT_TYPE=${BUSTED_OUTPUT_TYPE}
|
||||||
|
-D TEST_DIR=${CMAKE_CURRENT_SOURCE_DIR}
|
||||||
|
-D BUILD_DIR=${CMAKE_BINARY_DIR}
|
||||||
|
-D TEST_TYPE=functional
|
||||||
|
-D CIRRUS_CI=$ENV{CIRRUS_CI}
|
||||||
|
-P ${PROJECT_SOURCE_DIR}/cmake/RunTests.cmake
|
||||||
|
DEPENDS ${FUNCTIONALTEST_PREREQS}
|
||||||
|
USES_TERMINAL)
|
||||||
|
set_target_properties(functionaltest-lua PROPERTIES FOLDER test)
|
||||||
|
endif()
|
Loading…
Reference in New Issue
Block a user