Merge pull request #5225 from equalsraf/windows-functionaltests

Enable functional tests in Appveyor
This commit is contained in:
Björn Linse 2016-08-31 21:39:42 +02:00 committed by GitHub
commit 0ade1bb706
67 changed files with 197 additions and 37 deletions

View File

@ -28,13 +28,14 @@ cd ..
:: Build Neovim :: Build Neovim
mkdir build mkdir build
cd build cd build
cmake -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release .. || goto :error cmake -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release -DBUSTED_OUTPUT_TYPE=gtest .. || goto :error
mingw32-make VERBOSE=1 || goto :error mingw32-make VERBOSE=1 || goto :error
bin\nvim --version || goto :error bin\nvim --version || goto :error
cd ..
:: Functional tests
mingw32-make functionaltest VERBOSE=1 || goto :error
:: Build artifacts :: Build artifacts
cd build
cpack -G ZIP -C Release cpack -G ZIP -C Release
if defined APPVEYOR_REPO_TAG_NAME cpack -G NSIS -C Release if defined APPVEYOR_REPO_TAG_NAME cpack -G NSIS -C Release

View File

@ -395,7 +395,7 @@ endif()
message(STATUS "Using the Lua interpreter ${LUA_PRG}.") message(STATUS "Using the Lua interpreter ${LUA_PRG}.")
# Setup busted. # Setup busted.
find_program(BUSTED_PRG busted) find_program(BUSTED_PRG NAMES busted busted.bat)
find_program(BUSTED_LUA_PRG busted-lua) find_program(BUSTED_LUA_PRG busted-lua)
if(NOT BUSTED_OUTPUT_TYPE) if(NOT BUSTED_OUTPUT_TYPE)
if(WIN32) if(WIN32)
@ -498,6 +498,7 @@ if(BUSTED_PRG)
-DTEST_DIR=${CMAKE_CURRENT_SOURCE_DIR}/test -DTEST_DIR=${CMAKE_CURRENT_SOURCE_DIR}/test
-DBUILD_DIR=${CMAKE_BINARY_DIR} -DBUILD_DIR=${CMAKE_BINARY_DIR}
-DTEST_TYPE=unit -DTEST_TYPE=unit
-DSYSTEM_NAME=${CMAKE_SYSTEM_NAME}
-P ${PROJECT_SOURCE_DIR}/cmake/RunTests.cmake -P ${PROJECT_SOURCE_DIR}/cmake/RunTests.cmake
DEPENDS ${UNITTEST_PREREQS} DEPENDS ${UNITTEST_PREREQS}
${TEST_TARGET_ARGS}) ${TEST_TARGET_ARGS})
@ -516,6 +517,7 @@ if(BUSTED_PRG)
-DTEST_DIR=${CMAKE_CURRENT_SOURCE_DIR}/test -DTEST_DIR=${CMAKE_CURRENT_SOURCE_DIR}/test
-DBUILD_DIR=${CMAKE_BINARY_DIR} -DBUILD_DIR=${CMAKE_BINARY_DIR}
-DTEST_TYPE=functional -DTEST_TYPE=functional
-DSYSTEM_NAME=${CMAKE_SYSTEM_NAME}
-P ${PROJECT_SOURCE_DIR}/cmake/RunTests.cmake -P ${PROJECT_SOURCE_DIR}/cmake/RunTests.cmake
DEPENDS ${FUNCTIONALTEST_PREREQS} DEPENDS ${FUNCTIONALTEST_PREREQS}
${TEST_TARGET_ARGS}) ${TEST_TARGET_ARGS})
@ -530,6 +532,7 @@ if(BUSTED_PRG)
-DTEST_DIR=${CMAKE_CURRENT_SOURCE_DIR}/test -DTEST_DIR=${CMAKE_CURRENT_SOURCE_DIR}/test
-DBUILD_DIR=${CMAKE_BINARY_DIR} -DBUILD_DIR=${CMAKE_BINARY_DIR}
-DTEST_TYPE=benchmark -DTEST_TYPE=benchmark
-DCMAKE_SYSTEM_NAME=${CMAKE_SYSTEM_NAME}
-P ${PROJECT_SOURCE_DIR}/cmake/RunTests.cmake -P ${PROJECT_SOURCE_DIR}/cmake/RunTests.cmake
DEPENDS ${BENCHMARK_PREREQS} DEPENDS ${BENCHMARK_PREREQS}
${TEST_TARGET_ARGS}) ${TEST_TARGET_ARGS})
@ -546,6 +549,7 @@ if(BUSTED_LUA_PRG)
-DTEST_DIR=${CMAKE_CURRENT_SOURCE_DIR}/test -DTEST_DIR=${CMAKE_CURRENT_SOURCE_DIR}/test
-DBUILD_DIR=${CMAKE_BINARY_DIR} -DBUILD_DIR=${CMAKE_BINARY_DIR}
-DTEST_TYPE=functional -DTEST_TYPE=functional
-DCMAKE_SYSTEM_NAME=${CMAKE_SYSTEM_NAME}
-P ${PROJECT_SOURCE_DIR}/cmake/RunTests.cmake -P ${PROJECT_SOURCE_DIR}/cmake/RunTests.cmake
DEPENDS ${FUNCTIONALTEST_PREREQS} DEPENDS ${FUNCTIONALTEST_PREREQS}
${TEST_TARGET_ARGS}) ${TEST_TARGET_ARGS})
@ -556,6 +560,7 @@ if(LUACHECK_PRG)
COMMAND ${CMAKE_COMMAND} COMMAND ${CMAKE_COMMAND}
-DLUACHECK_PRG=${LUACHECK_PRG} -DLUACHECK_PRG=${LUACHECK_PRG}
-DTEST_DIR=${CMAKE_CURRENT_SOURCE_DIR}/test -DTEST_DIR=${CMAKE_CURRENT_SOURCE_DIR}/test
-DCMAKE_SYSTEM_NAME=${CMAKE_SYSTEM_NAME}
-P ${PROJECT_SOURCE_DIR}/cmake/RunTestsLint.cmake) -P ${PROJECT_SOURCE_DIR}/cmake/RunTestsLint.cmake)
endif() endif()

View File

@ -28,6 +28,7 @@ if(DEFINED ENV{TEST_FILTER})
set(TEST_TAG "--filter=$ENV{TEST_FILTER}") set(TEST_TAG "--filter=$ENV{TEST_FILTER}")
endif() endif()
set(ENV{SYSTEM_NAME} ${SYSTEM_NAME})
execute_process( execute_process(
COMMAND ${BUSTED_PRG} ${TEST_TAG} ${TEST_FILTER} -v -o ${BUSTED_OUTPUT_TYPE} COMMAND ${BUSTED_PRG} ${TEST_TAG} ${TEST_FILTER} -v -o ${BUSTED_OUTPUT_TYPE}
--lua=${LUA_PRG} --lazy --helper=${TEST_DIR}/${TEST_TYPE}/preload.lua --lua=${LUA_PRG} --lazy --helper=${TEST_DIR}/${TEST_TYPE}/preload.lua

View File

@ -8,6 +8,7 @@ local nvim_prog, command, funcs = helpers.nvim_prog, helpers.command, helpers.fu
local source, next_message = helpers.source, helpers.next_message local source, next_message = helpers.source, helpers.next_message
local meths = helpers.meths local meths = helpers.meths
if helpers.pending_win32(pending) then return end
describe('server -> client', function() describe('server -> client', function()
local cid local cid

View File

@ -13,7 +13,7 @@ describe('vim_* functions', function()
describe('command', function() describe('command', function()
it('works', function() it('works', function()
local fname = os.tmpname() local fname = helpers.tmpname()
nvim('command', 'new') nvim('command', 'new')
nvim('command', 'edit '..fname) nvim('command', 'edit '..fname)
nvim('command', 'normal itesting\napi') nvim('command', 'normal itesting\napi')

View File

@ -5,6 +5,8 @@ local command = helpers.command
local eq = helpers.eq local eq = helpers.eq
local eval = helpers.eval local eval = helpers.eval
if helpers.pending_win32(pending) then return end
describe('autocmd TabNew', function() describe('autocmd TabNew', function()
before_each(clear) before_each(clear)

View File

@ -1,6 +1,8 @@
local helpers = require('test.functional.helpers')(after_each) local helpers = require('test.functional.helpers')(after_each)
local clear, nvim, eq = helpers.clear, helpers.nvim, helpers.eq local clear, nvim, eq = helpers.clear, helpers.nvim, helpers.eq
if helpers.pending_win32(pending) then return end
describe('TabNewEntered', function() describe('TabNewEntered', function()
describe('au TabNewEntered', function() describe('au TabNewEntered', function()
describe('with * as <afile>', function() describe('with * as <afile>', function()

View File

@ -5,6 +5,8 @@ local clear, execute, feed, nvim, nvim_dir = helpers.clear,
helpers.execute, helpers.feed, helpers.nvim, helpers.nvim_dir helpers.execute, helpers.feed, helpers.nvim, helpers.nvim_dir
local eval, eq = helpers.eval, helpers.eq local eval, eq = helpers.eval, helpers.eq
if helpers.pending_win32(pending) then return end
describe('TermClose event', function() describe('TermClose event', function()
local screen local screen
before_each(function() before_each(function()

View File

@ -5,6 +5,8 @@ local Screen = require('test.functional.ui.screen')
local clear, feed, insert = helpers.clear, helpers.feed, helpers.insert local clear, feed, insert = helpers.clear, helpers.feed, helpers.insert
local execute, expect, eq, eval = helpers.execute, helpers.expect, helpers.eq, helpers.eval local execute, expect, eq, eval = helpers.execute, helpers.expect, helpers.eq, helpers.eval
if helpers.pending_win32(pending) then return end
local function basic_register_test(noblock) local function basic_register_test(noblock)
insert("some words") insert("some words")

View File

@ -8,6 +8,7 @@ local clear, eq, eval, execute, feed, insert, neq, next_msg, nvim,
local command = helpers.command local command = helpers.command
local Screen = require('test.functional.ui.screen') local Screen = require('test.functional.ui.screen')
if helpers.pending_win32(pending) then return end
describe('jobs', function() describe('jobs', function()
local channel local channel
@ -90,7 +91,7 @@ describe('jobs', function()
it('preserves NULs', function() it('preserves NULs', function()
-- Make a file with NULs in it. -- Make a file with NULs in it.
local filename = os.tmpname() local filename = helpers.tmpname()
write_file(filename, "abc\0def\n") write_file(filename, "abc\0def\n")
nvim('command', "let j = jobstart(['cat', '"..filename.."'], g:job_opts)") nvim('command', "let j = jobstart(['cat', '"..filename.."'], g:job_opts)")

View File

@ -4,6 +4,8 @@ local nvim, eq, neq, eval = helpers.nvim, helpers.eq, helpers.neq, helpers.eval
local clear, funcs, meths = helpers.clear, helpers.funcs, helpers.meths local clear, funcs, meths = helpers.clear, helpers.funcs, helpers.meths
local os_name = helpers.os_name local os_name = helpers.os_name
if helpers.pending_win32(pending) then return end
describe('serverstart(), serverstop()', function() describe('serverstart(), serverstop()', function()
before_each(clear) before_each(clear)

View File

@ -9,6 +9,8 @@ local clear = helpers.clear
local execute = helpers.execute local execute = helpers.execute
local exc_exec = helpers.exc_exec local exc_exec = helpers.exc_exec
if helpers.pending_win32(pending) then return end
-- These directories will be created for testing -- These directories will be created for testing
local directories = { local directories = {
tab = 'Xtest-functional-ex_cmds-cd_spec.tab', -- Tab tab = 'Xtest-functional-ex_cmds-cd_spec.tab', -- Tab

View File

@ -5,9 +5,9 @@ local helpers = require('test.functional.helpers')(after_each)
local eval = helpers.eval local eval = helpers.eval
local command = helpers.command local command = helpers.command
local eq, neq = helpers.eq, helpers.neq local eq, neq = helpers.eq, helpers.neq
local tempfile = os.tmpname() local tempfile = helpers.tmpname()
-- os.tmpname() also creates the file on POSIX systems. Remove it again. -- tmpname() also creates the file on POSIX systems. Remove it again.
-- We just need the name, ignoring any race conditions. -- We just need the name, ignoring any race conditions.
if lfs.attributes(tempfile, 'uid') then if lfs.attributes(tempfile, 'uid') then
os.remove(tempfile) os.remove(tempfile)

View File

@ -6,6 +6,8 @@ local execute, eq, clear, eval, feed, expect, source =
helpers.execute, helpers.eq, helpers.clear, helpers.eval, helpers.feed, helpers.execute, helpers.eq, helpers.clear, helpers.eval, helpers.feed,
helpers.expect, helpers.source helpers.expect, helpers.source
if helpers.pending_win32(pending) then return end
describe(':recover', function() describe(':recover', function()
before_each(clear) before_each(clear)

View File

@ -5,6 +5,8 @@ local eq, eval, clear, write_file, execute, source =
helpers.eq, helpers.eval, helpers.clear, helpers.write_file, helpers.eq, helpers.eval, helpers.clear, helpers.write_file,
helpers.execute, helpers.source helpers.execute, helpers.source
if helpers.pending_win32(pending) then return end
describe(':write', function() describe(':write', function()
after_each(function() after_each(function()
os.remove('test_bkc_file.txt') os.remove('test_bkc_file.txt')

View File

@ -291,15 +291,51 @@ local function write_file(name, text, dont_dedent)
file:close() file:close()
end end
local function source(code) -- Tries to get platform name, from $SYSTEM_NAME, uname,
local tmpname = os.tmpname() -- fallback is 'Windows'
if os_name() == 'osx' and string.match(tmpname, '^/tmp') then local uname = (function()
tmpname = '/private'..tmpname local platform = nil
return (function()
if platform then
return platform
end
platform = os.getenv("SYSTEM_NAME")
if platform then
return platform
end
local status, f = pcall(io.popen, "uname -s")
if status then
platform = f:read("*l")
else
platform = 'Windows'
end
return platform
end)
end)()
local function tmpname()
local fname = os.tmpname()
if uname() == 'Windows' and fname:sub(1, 2) == '\\s' then
-- In Windows tmpname() returns a filename starting with
-- special sequence \s, prepend $TEMP path
local tmpdir = os.getenv('TEMP')
return tmpdir..fname
elseif fname:match('^/tmp') and uname() == 'Darwin' then
-- In OS X /tmp links to /private/tmp
return '/private'..fname
else
return fname
end end
write_file(tmpname, code) end
nvim_command('source '..tmpname)
os.remove(tmpname) local function source(code)
return tmpname local fname = tmpname()
write_file(fname, code)
nvim_command('source '..fname)
os.remove(fname)
return fname
end end
local function nvim(method, ...) local function nvim(method, ...)
@ -434,6 +470,20 @@ local function create_callindex(func)
return table return table
end end
-- Helper to skip tests. Returns true in Windows systems.
-- pending_func is pending() from busted
local function pending_win32(pending_func)
clear()
if uname() == 'Windows' then
if pending_func ~= nil then
pending_func('FIXME: Windows', function() end)
end
return true
else
return false
end
end
local funcs = create_callindex(nvim_call) local funcs = create_callindex(nvim_call)
local meths = create_callindex(nvim) local meths = create_callindex(nvim)
local uimeths = create_callindex(ui) local uimeths = create_callindex(ui)
@ -499,6 +549,8 @@ return function(after_each)
curbufmeths = curbufmeths, curbufmeths = curbufmeths,
curwinmeths = curwinmeths, curwinmeths = curwinmeths,
curtabmeths = curtabmeths, curtabmeths = curtabmeths,
pending_win32 = pending_win32,
tmpname = tmpname,
NIL = mpack.NIL, NIL = mpack.NIL,
} }
end end

View File

@ -18,6 +18,8 @@ local clear, execute, expect, eq, neq, dedent, write_file, feed =
helpers.clear, helpers.execute, helpers.expect, helpers.eq, helpers.neq, helpers.clear, helpers.execute, helpers.expect, helpers.eq, helpers.neq,
helpers.dedent, helpers.write_file, helpers.feed helpers.dedent, helpers.write_file, helpers.feed
if helpers.pending_win32(pending) then return end
local function has_gzip() local function has_gzip()
return os.execute('gzip --help >/dev/null 2>&1') == 0 return os.execute('gzip --help >/dev/null 2>&1') == 0
end end

View File

@ -5,6 +5,8 @@ local helpers = require('test.functional.helpers')(after_each)
local clear, feed, insert = helpers.clear, helpers.feed, helpers.insert local clear, feed, insert = helpers.clear, helpers.feed, helpers.insert
local execute, expect = helpers.execute, helpers.expect local execute, expect = helpers.execute, helpers.expect
if helpers.pending_win32(pending) then return end
describe('jump to a tag with hidden set', function() describe('jump to a tag with hidden set', function()
setup(clear) setup(clear)

View File

@ -4,6 +4,8 @@ local helpers = require('test.functional.helpers')(after_each)
local feed, clear, execute = helpers.feed, helpers.clear, helpers.execute local feed, clear, execute = helpers.feed, helpers.clear, helpers.execute
local eq, write_file = helpers.eq, helpers.write_file local eq, write_file = helpers.eq, helpers.write_file
if helpers.pending_win32(pending) then return end
describe('fileformats option', function() describe('fileformats option', function()
setup(function() setup(function()
clear() clear()

View File

@ -3,7 +3,6 @@
local helpers = require('test.functional.helpers')(after_each) local helpers = require('test.functional.helpers')(after_each)
local clear, execute, expect = helpers.clear, helpers.execute, helpers.expect local clear, execute, expect = helpers.clear, helpers.execute, helpers.expect
local source, write_file = helpers.source, helpers.write_file local source, write_file = helpers.source, helpers.write_file
local os_name = helpers.os_name
local function sixlines(text) local function sixlines(text)
local result = '' local result = ''
@ -14,19 +13,16 @@ local function sixlines(text)
end end
local function diff(text, nodedent) local function diff(text, nodedent)
local tmpname = os.tmpname() local fname = helpers.tmpname()
if os_name() == 'osx' and string.match(tmpname, '^/tmp') then execute('w! '..fname)
tmpname = '/private'..tmpname
end
execute('w! '..tmpname)
helpers.wait() helpers.wait()
local data = io.open(tmpname):read('*all') local data = io.open(fname):read('*all')
if nodedent then if nodedent then
helpers.eq(text, data) helpers.eq(text, data)
else else
helpers.eq(helpers.dedent(text), data) helpers.eq(helpers.dedent(text), data)
end end
os.remove(tmpname) os.remove(fname)
end end
describe('character classes in regexp', function() describe('character classes in regexp', function()

View File

@ -7,6 +7,8 @@ local clear, feed = helpers.clear, helpers.feed
local execute, expect = helpers.execute, helpers.expect local execute, expect = helpers.execute, helpers.expect
local wait = helpers.wait local wait = helpers.wait
if helpers.pending_win32(pending) then return end
describe(':highlight', function() describe(':highlight', function()
setup(clear) setup(clear)

View File

@ -5,6 +5,8 @@ local feed, insert, source = helpers.feed, helpers.insert, helpers.source
local clear, execute, expect = helpers.clear, helpers.execute, helpers.expect local clear, execute, expect = helpers.clear, helpers.execute, helpers.expect
local write_file, call = helpers.write_file, helpers.call local write_file, call = helpers.write_file, helpers.call
if helpers.pending_win32(pending) then return end
local function write_latin1(name, text) local function write_latin1(name, text)
text = call('iconv', text, 'utf-8', 'latin-1') text = call('iconv', text, 'utf-8', 'latin-1')
write_file(name, text) write_file(name, text)

View File

@ -7,6 +7,8 @@ local helpers = require('test.functional.helpers')(after_each)
local feed, insert = helpers.feed, helpers.insert local feed, insert = helpers.feed, helpers.insert
local clear, execute, expect = helpers.clear, helpers.execute, helpers.expect local clear, execute, expect = helpers.clear, helpers.execute, helpers.expect
if helpers.pending_win32(pending) then return end
describe('store cursor position in session file in Latin-1', function() describe('store cursor position in session file in Latin-1', function()
setup(clear) setup(clear)

View File

@ -6,6 +6,8 @@ local helpers = require('test.functional.helpers')(after_each)
local clear = helpers.clear local clear = helpers.clear
local execute, expect = helpers.execute, helpers.expect local execute, expect = helpers.execute, helpers.expect
if helpers.pending_win32(pending) then return end
describe('glob() and globpath()', function() describe('glob() and globpath()', function()
setup(clear) setup(clear)

View File

@ -5,6 +5,8 @@ local Screen = require('test.functional.ui.screen')
local insert = helpers.insert local insert = helpers.insert
local clear, execute = helpers.clear, helpers.execute local clear, execute = helpers.clear, helpers.execute
if helpers.pending_win32(pending) then return end
describe('107', function() describe('107', function()
setup(clear) setup(clear)

View File

@ -4,6 +4,8 @@ local helpers = require('test.functional.helpers')(after_each)
local clear, execute, eq = helpers.clear, helpers.execute, helpers.eq local clear, execute, eq = helpers.clear, helpers.execute, helpers.eq
local eval, exc_exec, neq = helpers.eval, helpers.exc_exec, helpers.neq local eval, exc_exec, neq = helpers.eval, helpers.exc_exec, helpers.neq
if helpers.pending_win32(pending) then return end
describe('argument list commands', function() describe('argument list commands', function()
before_each(clear) before_each(clear)

View File

@ -2,6 +2,8 @@ local helpers = require('test.functional.helpers')(after_each)
local clear, source = helpers.clear, helpers.source local clear, source = helpers.clear, helpers.source
local eq, eval, execute = helpers.eq, helpers.eval, helpers.execute local eq, eval, execute = helpers.eq, helpers.eval, helpers.execute
if helpers.pending_win32(pending) then return end
describe('Test for delete()', function() describe('Test for delete()', function()
before_each(clear) before_each(clear)

View File

@ -6,7 +6,7 @@ local clear, call, eq = helpers.clear, helpers.call, helpers.eq
local neq, exc_exec = helpers.neq, helpers.exc_exec local neq, exc_exec = helpers.neq, helpers.exc_exec
describe('Test getting and setting file permissions', function() describe('Test getting and setting file permissions', function()
local tempfile = os.tmpname() local tempfile = helpers.tmpname()
before_each(function() before_each(function()
os.remove(tempfile) os.remove(tempfile)

View File

@ -4,6 +4,8 @@ local helpers = require('test.functional.helpers')(after_each)
local feed = helpers.feed local feed = helpers.feed
local clear, execute, expect = helpers.clear, helpers.execute, helpers.expect local clear, execute, expect = helpers.clear, helpers.execute, helpers.expect
if helpers.pending_win32(pending) then return end
describe('fixeol', function() describe('fixeol', function()
local function rmtestfiles() local function rmtestfiles()
os.remove('test.out') os.remove('test.out')

View File

@ -4,6 +4,8 @@ local helpers = require('test.functional.helpers')(after_each)
local clear, source = helpers.clear, helpers.source local clear, source = helpers.clear, helpers.source
local call, eq, nvim = helpers.call, helpers.eq, helpers.meths local call, eq, nvim = helpers.call, helpers.eq, helpers.meths
if helpers.pending_win32(pending) then return end
local function expected_empty() local function expected_empty()
eq({}, nvim.get_vvar('errors')) eq({}, nvim.get_vvar('errors'))
end end

View File

@ -4,6 +4,8 @@ local helpers = require('test.functional.helpers')(after_each)
local eq, eval, source = helpers.eq, helpers.eval, helpers.source local eq, eval, source = helpers.eq, helpers.eval, helpers.source
local call, clear, execute = helpers.call, helpers.clear, helpers.execute local call, clear, execute = helpers.call, helpers.clear, helpers.execute
if helpers.pending_win32(pending) then return end
describe('getcwd', function() describe('getcwd', function()
before_each(clear) before_each(clear)

View File

@ -9,6 +9,8 @@ local function expected_empty()
eq({}, nvim.get_vvar('errors')) eq({}, nvim.get_vvar('errors'))
end end
if helpers.pending_win32(pending) then return end
describe('packadd', function() describe('packadd', function()
before_each(function() before_each(function()
clear() clear()

View File

@ -5,6 +5,8 @@ local feed, insert, source = helpers.feed, helpers.insert, helpers.source
local clear, execute = helpers.clear, helpers.execute local clear, execute = helpers.clear, helpers.execute
local eq, eval = helpers.eq, helpers.eval local eq, eval = helpers.eq, helpers.eval
if helpers.pending_win32(pending) then return end
describe('wordcount', function() describe('wordcount', function()
before_each(clear) before_each(clear)

View File

@ -2,6 +2,8 @@ local helpers = require('test.functional.helpers')(after_each)
local eq, clear, eval, feed = local eq, clear, eval, feed =
helpers.eq, helpers.clear, helpers.eval, helpers.feed helpers.eq, helpers.clear, helpers.eval, helpers.feed
if helpers.pending_win32(pending) then return end
describe('K', function() describe('K', function()
local test_file = 'K_spec_out' local test_file = 'K_spec_out'
before_each(function() before_each(function()

View File

@ -3,6 +3,8 @@ local clear = helpers.clear
local eq = helpers.eq local eq = helpers.eq
local getcwd = helpers.funcs.getcwd local getcwd = helpers.funcs.getcwd
if helpers.pending_win32(pending) then return end
describe("'autochdir'", function() describe("'autochdir'", function()
it('given on the shell gets processed properly', function() it('given on the shell gets processed properly', function()
local targetdir = 'test/functional/fixtures' local targetdir = 'test/functional/fixtures'

View File

@ -9,6 +9,8 @@ local eval = helpers.eval
local eq = helpers.eq local eq = helpers.eq
local neq = helpers.neq local neq = helpers.neq
if helpers.pending_win32(pending) then return end
local function init_session(...) local function init_session(...)
local args = { helpers.nvim_prog, '-i', 'NONE', '--embed', local args = { helpers.nvim_prog, '-i', 'NONE', '--embed',
'--cmd', 'set shortmess+=I background=light noswapfile noautoindent', '--cmd', 'set shortmess+=I background=light noswapfile noautoindent',

View File

@ -2,6 +2,8 @@ local helpers = require('test.functional.helpers')(after_each)
local Screen = require('test.functional.ui.screen') local Screen = require('test.functional.ui.screen')
local clear, execute = helpers.clear, helpers.execute local clear, execute = helpers.clear, helpers.execute
if helpers.pending_win32(pending) then return end
describe("'shortmess'", function() describe("'shortmess'", function()
local screen local screen

View File

@ -43,6 +43,8 @@ local wshada, _, fname = get_shada_rw('Xtest-functional-plugin-shada.shada')
local wshada_tmp, _, fname_tmp = local wshada_tmp, _, fname_tmp =
get_shada_rw('Xtest-functional-plugin-shada.shada.tmp.f') get_shada_rw('Xtest-functional-plugin-shada.shada.tmp.f')
if helpers.pending_win32(pending) then return end
describe('In autoload/shada.vim', function() describe('In autoload/shada.vim', function()
local epoch = os.date('%Y-%m-%dT%H:%M:%S', 0) local epoch = os.date('%Y-%m-%dT%H:%M:%S', 0)
before_each(function() before_each(function()

View File

@ -8,6 +8,8 @@ local reset, set_additional_cmd, clear =
shada_helpers.reset, shada_helpers.set_additional_cmd, shada_helpers.reset, shada_helpers.set_additional_cmd,
shada_helpers.clear shada_helpers.clear
if helpers.pending_win32(pending) then return end
describe('ShaDa support code', function() describe('ShaDa support code', function()
local testfilename = 'Xtestfile-functional-shada-buffers' local testfilename = 'Xtestfile-functional-shada-buffers'
local testfilename_2 = 'Xtestfile-functional-shada-buffers-2' local testfilename_2 = 'Xtestfile-functional-shada-buffers-2'

View File

@ -5,7 +5,7 @@ local write_file, merge_args = helpers.write_file, helpers.merge_args
local mpack = require('mpack') local mpack = require('mpack')
local tmpname = os.tmpname() local tmpname = helpers.tmpname()
local additional_cmd = '' local additional_cmd = ''
local function nvim_argv() local function nvim_argv()

View File

@ -14,6 +14,8 @@ local nvim_current_line = function()
return curwinmeths.get_cursor()[1] return curwinmeths.get_cursor()[1]
end end
if helpers.pending_win32(pending) then return end
describe('ShaDa support code', function() describe('ShaDa support code', function()
local testfilename = 'Xtestfile-functional-shada-marks' local testfilename = 'Xtestfile-functional-shada-marks'
local testfilename_2 = 'Xtestfile-functional-shada-marks-2' local testfilename_2 = 'Xtestfile-functional-shada-marks-2'

View File

@ -18,6 +18,8 @@ local read_shada_file = shada_helpers.read_shada_file
local wshada, _, shada_fname, clean = local wshada, _, shada_fname, clean =
get_shada_rw('Xtest-functional-shada-shada.shada') get_shada_rw('Xtest-functional-shada-shada.shada')
if helpers.pending_win32(pending) then return end
describe('ShaDa support code', function() describe('ShaDa support code', function()
before_each(reset) before_each(reset)
after_each(function() after_each(function()

View File

@ -4,6 +4,8 @@ local helpers = require('test.functional.helpers')(after_each)
local feed, execute, clear = helpers.feed, helpers.execute, helpers.clear local feed, execute, clear = helpers.feed, helpers.execute, helpers.clear
local mkdir, write_file, rmdir = helpers.mkdir, helpers.write_file, helpers.rmdir local mkdir, write_file, rmdir = helpers.mkdir, helpers.write_file, helpers.rmdir
if helpers.pending_win32(pending) then return end
local Screen = require('test.functional.ui.screen') local Screen = require('test.functional.ui.screen')

View File

@ -8,6 +8,7 @@ local eq, clear, eval, feed, nvim =
local Screen = require('test.functional.ui.screen') local Screen = require('test.functional.ui.screen')
if helpers.pending_win32(pending) then return end
local function create_file_with_nuls(name) local function create_file_with_nuls(name)
return function() return function()

View File

@ -6,6 +6,8 @@ local feed_data = thelpers.feed_data
local enter_altscreen = thelpers.enter_altscreen local enter_altscreen = thelpers.enter_altscreen
local exit_altscreen = thelpers.exit_altscreen local exit_altscreen = thelpers.exit_altscreen
if helpers.pending_win32(pending) then return end
describe('terminal altscreen', function() describe('terminal altscreen', function()
local screen local screen

View File

@ -5,6 +5,7 @@ local wait = helpers.wait
local eval, execute, source = helpers.eval, helpers.execute, helpers.source local eval, execute, source = helpers.eval, helpers.execute, helpers.source
local eq, neq = helpers.eq, helpers.neq local eq, neq = helpers.eq, helpers.neq
if helpers.pending_win32(pending) then return end
describe('terminal buffer', function() describe('terminal buffer', function()
local screen local screen

View File

@ -6,6 +6,7 @@ local nvim_dir, execute = helpers.nvim_dir, helpers.execute
local hide_cursor = thelpers.hide_cursor local hide_cursor = thelpers.hide_cursor
local show_cursor = thelpers.show_cursor local show_cursor = thelpers.show_cursor
if helpers.pending_win32(pending) then return end
describe('terminal cursor', function() describe('terminal cursor', function()
local screen local screen

View File

@ -4,6 +4,8 @@ local clear, wait, nvim = helpers.clear, helpers.wait, helpers.nvim
local nvim_dir, source, eq = helpers.nvim_dir, helpers.source, helpers.eq local nvim_dir, source, eq = helpers.nvim_dir, helpers.source, helpers.eq
local execute, eval = helpers.execute, helpers.eval local execute, eval = helpers.execute, helpers.eval
if helpers.pending_win32(pending) then return end
describe(':terminal', function() describe(':terminal', function()
local screen local screen

View File

@ -5,6 +5,7 @@ local feed, clear, nvim = helpers.feed, helpers.clear, helpers.nvim
local nvim_dir, execute = helpers.nvim_dir, helpers.execute local nvim_dir, execute = helpers.nvim_dir, helpers.execute
local eq, eval = helpers.eq, helpers.eval local eq, eval = helpers.eq, helpers.eval
if helpers.pending_win32(pending) then return end
describe('terminal window highlighting', function() describe('terminal window highlighting', function()
local screen local screen

View File

@ -4,6 +4,8 @@ local clear = helpers.clear
local feed, nvim = helpers.feed, helpers.nvim local feed, nvim = helpers.feed, helpers.nvim
local feed_data = thelpers.feed_data local feed_data = thelpers.feed_data
if helpers.pending_win32(pending) then return end
describe('terminal mouse', function() describe('terminal mouse', function()
local screen local screen

View File

@ -6,6 +6,8 @@ local feed, nvim_dir, execute = helpers.feed, helpers.nvim_dir, helpers.execute
local wait = helpers.wait local wait = helpers.wait
local feed_data = thelpers.feed_data local feed_data = thelpers.feed_data
if helpers.pending_win32(pending) then return end
describe('terminal scrollback', function() describe('terminal scrollback', function()
local screen local screen

View File

@ -6,6 +6,8 @@ local feed = thelpers.feed_data
local execute = helpers.execute local execute = helpers.execute
local nvim_dir = helpers.nvim_dir local nvim_dir = helpers.nvim_dir
if helpers.pending_win32(pending) then return end
describe('tui', function() describe('tui', function()
local screen local screen

View File

@ -4,6 +4,8 @@ local feed, clear = helpers.feed, helpers.clear
local wait = helpers.wait local wait = helpers.wait
local execute = helpers.execute local execute = helpers.execute
if helpers.pending_win32(pending) then return end
describe('terminal window', function() describe('terminal window', function()
local screen local screen

View File

@ -4,6 +4,8 @@ local clear = helpers.clear
local feed, nvim = helpers.feed, helpers.nvim local feed, nvim = helpers.feed, helpers.nvim
local execute = helpers.execute local execute = helpers.execute
if helpers.pending_win32(pending) then return end
describe('terminal', function() describe('terminal', function()
local screen local screen

View File

@ -3,6 +3,7 @@ local Screen = require('test.functional.ui.screen')
local clear, feed, insert = helpers.clear, helpers.feed, helpers.insert local clear, feed, insert = helpers.clear, helpers.feed, helpers.insert
local execute, request, neq = helpers.execute, helpers.request, helpers.neq local execute, request, neq = helpers.execute, helpers.request, helpers.neq
if helpers.pending_win32(pending) then return end
describe('Buffer highlighting', function() describe('Buffer highlighting', function()
local screen local screen

View File

@ -4,6 +4,7 @@ local os = require('os')
local clear, feed, insert = helpers.clear, helpers.feed, helpers.insert local clear, feed, insert = helpers.clear, helpers.feed, helpers.insert
local execute, request, eq = helpers.execute, helpers.request, helpers.eq local execute, request, eq = helpers.execute, helpers.request, helpers.eq
if helpers.pending_win32(pending) then return end
describe('color scheme compatibility', function() describe('color scheme compatibility', function()
before_each(function() before_each(function()

View File

@ -4,6 +4,8 @@ local feed, next_message, eq = helpers.feed, helpers.next_message, helpers.eq
local expect = helpers.expect local expect = helpers.expect
local Screen = require('test.functional.ui.screen') local Screen = require('test.functional.ui.screen')
if helpers.pending_win32(pending) then return end
describe('mappings', function() describe('mappings', function()
local cid local cid

View File

@ -4,6 +4,8 @@ local clear, feed, meths = helpers.clear, helpers.feed, helpers.meths
local insert, execute = helpers.insert, helpers.execute local insert, execute = helpers.insert, helpers.execute
local eq, funcs = helpers.eq, helpers.funcs local eq, funcs = helpers.eq, helpers.funcs
if helpers.pending_win32(pending) then return end
describe('Mouse input', function() describe('Mouse input', function()
local screen local screen

View File

@ -1,6 +1,8 @@
local session = require('test.functional.helpers')(after_each) local session = require('test.functional.helpers')(after_each)
local child_session = require('test.functional.terminal.helpers') local child_session = require('test.functional.terminal.helpers')
if session.pending_win32(pending) then return end
describe("shell command :!", function() describe("shell command :!", function()
local screen local screen
before_each(function() before_each(function()

View File

@ -4,6 +4,8 @@ local spawn, set_session, clear = helpers.spawn, helpers.set_session, helpers.cl
local feed, execute = helpers.feed, helpers.execute local feed, execute = helpers.feed, helpers.execute
local insert = helpers.insert local insert = helpers.insert
if helpers.pending_win32(pending) then return end
describe('Initial screen', function() describe('Initial screen', function()
local screen local screen
local nvim_argv = {helpers.nvim_prog, '-u', 'NONE', '-i', 'NONE', '-N', local nvim_argv = {helpers.nvim_prog, '-u', 'NONE', '-i', 'NONE', '-N',

View File

@ -3,6 +3,8 @@ local Screen = require('test.functional.ui.screen')
local clear, feed, insert = helpers.clear, helpers.feed, helpers.insert local clear, feed, insert = helpers.clear, helpers.feed, helpers.insert
local execute = helpers.execute local execute = helpers.execute
if helpers.pending_win32(pending) then return end
describe('search highlighting', function() describe('search highlighting', function()
local screen local screen
local colors = Screen.colors local colors = Screen.colors

View File

@ -2,6 +2,8 @@ local helpers = require('test.functional.helpers')(after_each)
local Screen = require('test.functional.ui.screen') local Screen = require('test.functional.ui.screen')
local clear, feed, execute = helpers.clear, helpers.feed, helpers.execute local clear, feed, execute = helpers.clear, helpers.feed, helpers.execute
if helpers.pending_win32(pending) then return end
describe('Signs', function() describe('Signs', function()
local screen local screen

View File

@ -3,6 +3,8 @@ local Screen = require('test.functional.ui.screen')
local clear, feed, execute = helpers.clear, helpers.feed, helpers.execute local clear, feed, execute = helpers.clear, helpers.feed, helpers.execute
local insert = helpers.insert local insert = helpers.insert
if helpers.pending_win32(pending) then return end
describe('Screen', function() describe('Screen', function()
local screen local screen

View File

@ -3,6 +3,8 @@ local Screen = require('test.functional.ui.screen')
local clear, feed, execute = helpers.clear, helpers.feed, helpers.execute local clear, feed, execute = helpers.clear, helpers.feed, helpers.execute
local funcs = helpers.funcs local funcs = helpers.funcs
if helpers.pending_win32(pending) then return end
describe("'wildmode'", function() describe("'wildmode'", function()
local screen local screen

View File

@ -4,6 +4,8 @@ local clear, feed = helpers.clear, helpers.feed
local eval, eq, neq = helpers.eval, helpers.eq, helpers.neq local eval, eq, neq = helpers.eval, helpers.eq, helpers.neq
local execute, source, expect = helpers.execute, helpers.source, helpers.expect local execute, source, expect = helpers.execute, helpers.source, helpers.expect
if helpers.pending_win32(pending) then return end
describe('completion', function() describe('completion', function()
local screen local screen

View File

@ -81,8 +81,8 @@ endif()
include(ExternalProject) include(ExternalProject)
set(LIBUV_URL https://github.com/libuv/libuv/archive/v1.8.0.tar.gz) set(LIBUV_URL https://github.com/libuv/libuv/archive/v1.9.1.tar.gz)
set(LIBUV_SHA256 906e1a5c673c95cb261adeacdb7308a65b4a8f7c9c50d85f3021364951fa9cde) set(LIBUV_SHA256 a6ca9f0648973d1463f46b495ce546ddcbe7cce2f04b32e802a15539e46c57ad)
set(MSGPACK_URL https://github.com/msgpack/msgpack-c/archive/cpp-1.0.0.tar.gz) set(MSGPACK_URL https://github.com/msgpack/msgpack-c/archive/cpp-1.0.0.tar.gz)
set(MSGPACK_SHA256 afda64ca445203bb7092372b822bae8b2539fdcebbfc3f753f393628c2bcfe7d) set(MSGPACK_SHA256 afda64ca445203bb7092372b822bae8b2539fdcebbfc3f753f393628c2bcfe7d)

View File

@ -3,11 +3,7 @@
# writing a recipe that is meant for cross-compile, use the HOSTDEPS_* variables # writing a recipe that is meant for cross-compile, use the HOSTDEPS_* variables
# instead of DEPS_* - check the main CMakeLists.txt for a list. # instead of DEPS_* - check the main CMakeLists.txt for a list.
if(MSVC OR (MINGW AND NOT CMAKE_CROSSCOMPILING)) option(USE_BUNDLED_BUSTED "Use the bundled version of busted to run tests." ON)
message(STATUS "Building busted in Windows is not supported (skipping)")
else()
option(USE_BUNDLED_BUSTED "Use the bundled version of busted to run tests." ON)
endif()
# BuildLuarocks(CONFIGURE_COMMAND ... BUILD_COMMAND ... INSTALL_COMMAND ...) # BuildLuarocks(CONFIGURE_COMMAND ... BUILD_COMMAND ... INSTALL_COMMAND ...)
# Reusable function to build luarocks, wraps ExternalProject_Add. # Reusable function to build luarocks, wraps ExternalProject_Add.
@ -134,12 +130,17 @@ if(USE_BUNDLED_BUSTED)
add_custom_target(penlight add_custom_target(penlight
DEPENDS ${HOSTDEPS_LIB_DIR}/luarocks/rocks/penlight/1.3.2-2) DEPENDS ${HOSTDEPS_LIB_DIR}/luarocks/rocks/penlight/1.3.2-2)
add_custom_command(OUTPUT ${HOSTDEPS_BIN_DIR}/busted if(WIN32)
set(BUSTED_EXE "${HOSTDEPS_BIN_DIR}/busted.bat")
else()
set(BUSTED_EXE "${HOSTDEPS_BIN_DIR}/busted")
endif()
add_custom_command(OUTPUT ${BUSTED_EXE}
COMMAND ${LUAROCKS_BINARY} COMMAND ${LUAROCKS_BINARY}
ARGS build https://raw.githubusercontent.com/Olivine-Labs/busted/v2.0.rc11-0/busted-2.0.rc11-0.rockspec ${LUAROCKS_BUILDARGS} ARGS build https://raw.githubusercontent.com/Olivine-Labs/busted/v2.0.rc11-0/busted-2.0.rc11-0.rockspec ${LUAROCKS_BUILDARGS}
DEPENDS penlight) DEPENDS penlight)
add_custom_target(busted add_custom_target(busted
DEPENDS ${HOSTDEPS_BIN_DIR}/busted) DEPENDS ${BUSTED_EXE})
add_custom_command(OUTPUT ${HOSTDEPS_BIN_DIR}/luacheck add_custom_command(OUTPUT ${HOSTDEPS_BIN_DIR}/luacheck
COMMAND ${LUAROCKS_BINARY} COMMAND ${LUAROCKS_BINARY}
@ -152,9 +153,9 @@ if(USE_BUNDLED_BUSTED)
if(MINGW AND CMAKE_CROSSCOMPILING) if(MINGW AND CMAKE_CROSSCOMPILING)
set(LUV_DEPS ${LUV_DEPS} libuv_host) set(LUV_DEPS ${LUV_DEPS} libuv_host)
endif() endif()
set(LUV_ARGS CFLAGS='-O0 -g3 -fPIC') set(LUV_ARGS "CFLAGS=-O0 -g3 -fPIC")
if(USE_BUNDLED_LIBUV) if(USE_BUNDLED_LIBUV)
set(LUV_ARGS LIBUV_DIR=${HOSTDEPS_INSTALL_DIR} CFLAGS='-O0 -g3 -fPIC') list(APPEND LUV_ARGS LIBUV_DIR=${HOSTDEPS_INSTALL_DIR})
endif() endif()
add_custom_command(OUTPUT ${HOSTDEPS_LIB_DIR}/luarocks/rocks/luv add_custom_command(OUTPUT ${HOSTDEPS_LIB_DIR}/luarocks/rocks/luv
COMMAND ${LUAROCKS_BINARY} COMMAND ${LUAROCKS_BINARY}