diff options
-rw-r--r-- | CMakeLists.txt | 12 | ||||
-rw-r--r-- | cmake/RunUnittests.cmake | 4 | ||||
-rw-r--r-- | test/config/paths.lua.in | 11 | ||||
-rw-r--r-- | test/unit/helpers.moon | 24 |
4 files changed, 26 insertions, 25 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index cd7e6936e4..a3d4c26280 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -136,16 +136,22 @@ if(NOT BUSTED_OUTPUT_TYPE) endif() if(BUSTED_PRG) - get_target_property(NVIM_TEST_LIB nvim-test LOCATION) + get_property(TEST_INCLUDE_DIRS DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + PROPERTY INCLUDE_DIRECTORIES) + get_target_property(TEST_LIBNVIM_PATH nvim-test LOCATION) + + configure_file( + test/config/paths.lua.in + ${CMAKE_BINARY_DIR}/test/config/paths.lua) + add_custom_target(unittest COMMAND ${CMAKE_COMMAND} -DBUSTED_PRG=${BUSTED_PRG} -DLUA_PRG=${LUA_PRG} -DWORKING_DIR=${CMAKE_CURRENT_SOURCE_DIR} - -DNVIM_TEST_LIB=${NVIM_TEST_LIB} -DBUSTED_OUTPUT_TYPE=${BUSTED_OUTPUT_TYPE} -DTEST_DIR=${CMAKE_CURRENT_SOURCE_DIR}/test - -DTEST_INCLUDES=${CMAKE_BINARY_DIR}/test/includes/post + -DBUILD_DIR=${CMAKE_BINARY_DIR} -P ${CMAKE_MODULE_PATH}/RunUnittests.cmake DEPENDS nvim-test unittest-headers) endif() diff --git a/cmake/RunUnittests.cmake b/cmake/RunUnittests.cmake index 5a1ae35d80..0fa9d79820 100644 --- a/cmake/RunUnittests.cmake +++ b/cmake/RunUnittests.cmake @@ -1,13 +1,11 @@ get_filename_component(BUSTED_DIR ${BUSTED_PRG} PATH) set(ENV{PATH} "${BUSTED_DIR}:$ENV{PATH}") -set(ENV{NVIM_TEST_LIB} ${NVIM_TEST_LIB}) -set(ENV{TEST_INCLUDES} ${TEST_INCLUDES}) if(DEFINED ENV{TEST_FILE}) set(TEST_DIR $ENV{TEST_FILE}) endif() execute_process( - COMMAND ${BUSTED_PRG} -o ${BUSTED_OUTPUT_TYPE} --pattern=.moon ${TEST_DIR} + COMMAND ${BUSTED_PRG} -o ${BUSTED_OUTPUT_TYPE} --lpath=${BUILD_DIR}/?.lua --pattern=.moon ${TEST_DIR} WORKING_DIRECTORY ${WORKING_DIR} RESULT_VARIABLE res) diff --git a/test/config/paths.lua.in b/test/config/paths.lua.in new file mode 100644 index 0000000000..9ec8b23055 --- /dev/null +++ b/test/config/paths.lua.in @@ -0,0 +1,11 @@ +local module = {} + +module.include_paths = {} +for p in ("${TEST_INCLUDE_DIRS}" .. ";"):gmatch("[^;]+") do + table.insert(module.include_paths, p) +end + +module.test_include_path = "${CMAKE_BINARY_DIR}/test/includes/post" +module.test_libnvim_path = "${TEST_LIBNVIM_PATH}" + +return module diff --git a/test/unit/helpers.moon b/test/unit/helpers.moon index e84c569143..8acbe8f992 100644 --- a/test/unit/helpers.moon +++ b/test/unit/helpers.moon @@ -3,24 +3,14 @@ lpeg = require 'lpeg' formatc = require 'test.unit.formatc' Set = require 'test.unit.set' Preprocess = require 'test.unit.preprocess' +Paths = require 'test.config.paths' -- add some standard header locations --- TODO(aktau, jszakmeister): optionally pass more header locations via env -Preprocess.add_to_include_path('./src') -Preprocess.add_to_include_path('./.deps/usr/include') -Preprocess.add_to_include_path('./build/config') - -if ffi.abi('32bit') - Preprocess.add_to_include_path('/opt/neovim-deps/32/include') -else - Preprocess.add_to_include_path('/opt/neovim-deps/include') +for i,p in ipairs(Paths.include_paths) + Preprocess.add_to_include_path(p) -- load neovim shared library -testlib = os.getenv 'NVIM_TEST_LIB' -unless testlib - testlib = './build/src/libnvim-test.so' - -libnvim = ffi.load testlib +libnvim = ffi.load Paths.test_libnvim_path trim = (s) -> s\match'^%s*(.*%S)' or '' @@ -91,12 +81,8 @@ cimport = (...) -> return libnvim -testinc = os.getenv 'TEST_INCLUDES' -unless testinc - testinc = './build/test/includes/post' - cppimport = (path) -> - return cimport testinc .. '/' .. path + return cimport Paths.test_include_path .. '/' .. path cimport './src/types.h' |