Generate a lua module to help pass build-related settings.

This allows us to avoid hard-coding paths and using environment
variables to communicate key information to unit tests, which fits
with the overall goal of making sure that folks driving CMake directly
can continue to do out-of-tree builds.
This commit is contained in:
John Szakmeister
2014-04-30 05:10:37 -04:00
parent 4fe0a51844
commit 7cb20fd1b0
4 changed files with 26 additions and 25 deletions

11
test/config/paths.lua.in Normal file
View File

@@ -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

View File

@@ -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'