diff options
author | Björn Linse <bjorn.linse@gmail.com> | 2016-08-31 21:39:42 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-08-31 21:39:42 +0200 |
commit | 0ade1bb7067d0cdb9b059fb66a8c4b868408be9c (patch) | |
tree | 36c02a63f28bef74b6f8a3cf891267912867e193 | |
parent | 7fd771619f2a2e2fe6007aaa6aa9a02cbdd205bd (diff) | |
parent | 9ce81f7b2b90846063f6bd4a5ce8efc61e437983 (diff) | |
download | rneovim-0ade1bb7067d0cdb9b059fb66a8c4b868408be9c.tar.gz rneovim-0ade1bb7067d0cdb9b059fb66a8c4b868408be9c.tar.bz2 rneovim-0ade1bb7067d0cdb9b059fb66a8c4b868408be9c.zip |
Merge pull request #5225 from equalsraf/windows-functionaltests
Enable functional tests in Appveyor
67 files changed, 197 insertions, 37 deletions
diff --git a/.ci/build.bat b/.ci/build.bat index 2f545fbe82..e7c42be7fa 100644 --- a/.ci/build.bat +++ b/.ci/build.bat @@ -28,13 +28,14 @@ cd .. :: Build Neovim mkdir 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 bin\nvim --version || goto :error -cd .. + +:: Functional tests +mingw32-make functionaltest VERBOSE=1 || goto :error :: Build artifacts -cd build cpack -G ZIP -C Release if defined APPVEYOR_REPO_TAG_NAME cpack -G NSIS -C Release diff --git a/CMakeLists.txt b/CMakeLists.txt index cb044d521c..01015fe270 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -395,7 +395,7 @@ endif() message(STATUS "Using the Lua interpreter ${LUA_PRG}.") # Setup busted. -find_program(BUSTED_PRG busted) +find_program(BUSTED_PRG NAMES busted busted.bat) find_program(BUSTED_LUA_PRG busted-lua) if(NOT BUSTED_OUTPUT_TYPE) if(WIN32) @@ -498,6 +498,7 @@ if(BUSTED_PRG) -DTEST_DIR=${CMAKE_CURRENT_SOURCE_DIR}/test -DBUILD_DIR=${CMAKE_BINARY_DIR} -DTEST_TYPE=unit + -DSYSTEM_NAME=${CMAKE_SYSTEM_NAME} -P ${PROJECT_SOURCE_DIR}/cmake/RunTests.cmake DEPENDS ${UNITTEST_PREREQS} ${TEST_TARGET_ARGS}) @@ -516,6 +517,7 @@ if(BUSTED_PRG) -DTEST_DIR=${CMAKE_CURRENT_SOURCE_DIR}/test -DBUILD_DIR=${CMAKE_BINARY_DIR} -DTEST_TYPE=functional + -DSYSTEM_NAME=${CMAKE_SYSTEM_NAME} -P ${PROJECT_SOURCE_DIR}/cmake/RunTests.cmake DEPENDS ${FUNCTIONALTEST_PREREQS} ${TEST_TARGET_ARGS}) @@ -530,6 +532,7 @@ if(BUSTED_PRG) -DTEST_DIR=${CMAKE_CURRENT_SOURCE_DIR}/test -DBUILD_DIR=${CMAKE_BINARY_DIR} -DTEST_TYPE=benchmark + -DCMAKE_SYSTEM_NAME=${CMAKE_SYSTEM_NAME} -P ${PROJECT_SOURCE_DIR}/cmake/RunTests.cmake DEPENDS ${BENCHMARK_PREREQS} ${TEST_TARGET_ARGS}) @@ -546,6 +549,7 @@ if(BUSTED_LUA_PRG) -DTEST_DIR=${CMAKE_CURRENT_SOURCE_DIR}/test -DBUILD_DIR=${CMAKE_BINARY_DIR} -DTEST_TYPE=functional + -DCMAKE_SYSTEM_NAME=${CMAKE_SYSTEM_NAME} -P ${PROJECT_SOURCE_DIR}/cmake/RunTests.cmake DEPENDS ${FUNCTIONALTEST_PREREQS} ${TEST_TARGET_ARGS}) @@ -556,6 +560,7 @@ if(LUACHECK_PRG) COMMAND ${CMAKE_COMMAND} -DLUACHECK_PRG=${LUACHECK_PRG} -DTEST_DIR=${CMAKE_CURRENT_SOURCE_DIR}/test + -DCMAKE_SYSTEM_NAME=${CMAKE_SYSTEM_NAME} -P ${PROJECT_SOURCE_DIR}/cmake/RunTestsLint.cmake) endif() diff --git a/cmake/RunTests.cmake b/cmake/RunTests.cmake index a045f9f982..58f19b6fa5 100644 --- a/cmake/RunTests.cmake +++ b/cmake/RunTests.cmake @@ -28,6 +28,7 @@ if(DEFINED ENV{TEST_FILTER}) set(TEST_TAG "--filter=$ENV{TEST_FILTER}") endif() +set(ENV{SYSTEM_NAME} ${SYSTEM_NAME}) execute_process( COMMAND ${BUSTED_PRG} ${TEST_TAG} ${TEST_FILTER} -v -o ${BUSTED_OUTPUT_TYPE} --lua=${LUA_PRG} --lazy --helper=${TEST_DIR}/${TEST_TYPE}/preload.lua diff --git a/test/functional/api/server_requests_spec.lua b/test/functional/api/server_requests_spec.lua index b76c3b9cd6..6fe87a358c 100644 --- a/test/functional/api/server_requests_spec.lua +++ b/test/functional/api/server_requests_spec.lua @@ -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 meths = helpers.meths +if helpers.pending_win32(pending) then return end describe('server -> client', function() local cid diff --git a/test/functional/api/vim_spec.lua b/test/functional/api/vim_spec.lua index eb2b06edcb..848935fc0f 100644 --- a/test/functional/api/vim_spec.lua +++ b/test/functional/api/vim_spec.lua @@ -13,7 +13,7 @@ describe('vim_* functions', function() describe('command', function() it('works', function() - local fname = os.tmpname() + local fname = helpers.tmpname() nvim('command', 'new') nvim('command', 'edit '..fname) nvim('command', 'normal itesting\napi') diff --git a/test/functional/autocmd/tabnew_spec.lua b/test/functional/autocmd/tabnew_spec.lua index 8c94dee49b..2148b21832 100644 --- a/test/functional/autocmd/tabnew_spec.lua +++ b/test/functional/autocmd/tabnew_spec.lua @@ -5,6 +5,8 @@ local command = helpers.command local eq = helpers.eq local eval = helpers.eval +if helpers.pending_win32(pending) then return end + describe('autocmd TabNew', function() before_each(clear) diff --git a/test/functional/autocmd/tabnewentered_spec.lua b/test/functional/autocmd/tabnewentered_spec.lua index 7044307399..f033bd5fe4 100644 --- a/test/functional/autocmd/tabnewentered_spec.lua +++ b/test/functional/autocmd/tabnewentered_spec.lua @@ -1,6 +1,8 @@ local helpers = require('test.functional.helpers')(after_each) local clear, nvim, eq = helpers.clear, helpers.nvim, helpers.eq +if helpers.pending_win32(pending) then return end + describe('TabNewEntered', function() describe('au TabNewEntered', function() describe('with * as <afile>', function() diff --git a/test/functional/autocmd/termclose_spec.lua b/test/functional/autocmd/termclose_spec.lua index 0bc2931992..6871711058 100644 --- a/test/functional/autocmd/termclose_spec.lua +++ b/test/functional/autocmd/termclose_spec.lua @@ -5,6 +5,8 @@ local clear, execute, feed, nvim, nvim_dir = helpers.clear, helpers.execute, helpers.feed, helpers.nvim, helpers.nvim_dir local eval, eq = helpers.eval, helpers.eq +if helpers.pending_win32(pending) then return end + describe('TermClose event', function() local screen before_each(function() diff --git a/test/functional/clipboard/clipboard_provider_spec.lua b/test/functional/clipboard/clipboard_provider_spec.lua index 15977b9777..6424b39e13 100644 --- a/test/functional/clipboard/clipboard_provider_spec.lua +++ b/test/functional/clipboard/clipboard_provider_spec.lua @@ -5,6 +5,8 @@ local Screen = require('test.functional.ui.screen') local clear, feed, insert = helpers.clear, helpers.feed, helpers.insert 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) insert("some words") diff --git a/test/functional/core/job_spec.lua b/test/functional/core/job_spec.lua index 921bf1655e..f764898f72 100644 --- a/test/functional/core/job_spec.lua +++ b/test/functional/core/job_spec.lua @@ -8,6 +8,7 @@ local clear, eq, eval, execute, feed, insert, neq, next_msg, nvim, local command = helpers.command local Screen = require('test.functional.ui.screen') +if helpers.pending_win32(pending) then return end describe('jobs', function() local channel @@ -90,7 +91,7 @@ describe('jobs', function() it('preserves NULs', function() -- Make a file with NULs in it. - local filename = os.tmpname() + local filename = helpers.tmpname() write_file(filename, "abc\0def\n") nvim('command', "let j = jobstart(['cat', '"..filename.."'], g:job_opts)") diff --git a/test/functional/eval/server_spec.lua b/test/functional/eval/server_spec.lua index 0fd55ce2f9..d2c985e894 100644 --- a/test/functional/eval/server_spec.lua +++ b/test/functional/eval/server_spec.lua @@ -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 os_name = helpers.os_name +if helpers.pending_win32(pending) then return end + describe('serverstart(), serverstop()', function() before_each(clear) diff --git a/test/functional/ex_cmds/cd_spec.lua b/test/functional/ex_cmds/cd_spec.lua index fcd826c25d..3cf83cdb3b 100644 --- a/test/functional/ex_cmds/cd_spec.lua +++ b/test/functional/ex_cmds/cd_spec.lua @@ -9,6 +9,8 @@ local clear = helpers.clear local execute = helpers.execute local exc_exec = helpers.exc_exec +if helpers.pending_win32(pending) then return end + -- These directories will be created for testing local directories = { tab = 'Xtest-functional-ex_cmds-cd_spec.tab', -- Tab diff --git a/test/functional/ex_cmds/profile_spec.lua b/test/functional/ex_cmds/profile_spec.lua index d390806679..f185db192a 100644 --- a/test/functional/ex_cmds/profile_spec.lua +++ b/test/functional/ex_cmds/profile_spec.lua @@ -5,9 +5,9 @@ local helpers = require('test.functional.helpers')(after_each) local eval = helpers.eval local command = helpers.command 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. if lfs.attributes(tempfile, 'uid') then os.remove(tempfile) diff --git a/test/functional/ex_cmds/recover_spec.lua b/test/functional/ex_cmds/recover_spec.lua index 60673d25ef..0c97857180 100644 --- a/test/functional/ex_cmds/recover_spec.lua +++ b/test/functional/ex_cmds/recover_spec.lua @@ -6,6 +6,8 @@ local execute, eq, clear, eval, feed, expect, source = helpers.execute, helpers.eq, helpers.clear, helpers.eval, helpers.feed, helpers.expect, helpers.source +if helpers.pending_win32(pending) then return end + describe(':recover', function() before_each(clear) diff --git a/test/functional/ex_cmds/write_spec.lua b/test/functional/ex_cmds/write_spec.lua index b38ae29f7d..c1bc5d3140 100644 --- a/test/functional/ex_cmds/write_spec.lua +++ b/test/functional/ex_cmds/write_spec.lua @@ -5,6 +5,8 @@ local eq, eval, clear, write_file, execute, source = helpers.eq, helpers.eval, helpers.clear, helpers.write_file, helpers.execute, helpers.source +if helpers.pending_win32(pending) then return end + describe(':write', function() after_each(function() os.remove('test_bkc_file.txt') diff --git a/test/functional/helpers.lua b/test/functional/helpers.lua index 140e78aeb5..8dca4c5bbe 100644 --- a/test/functional/helpers.lua +++ b/test/functional/helpers.lua @@ -291,15 +291,51 @@ local function write_file(name, text, dont_dedent) file:close() end -local function source(code) - local tmpname = os.tmpname() - if os_name() == 'osx' and string.match(tmpname, '^/tmp') then - tmpname = '/private'..tmpname +-- Tries to get platform name, from $SYSTEM_NAME, uname, +-- fallback is 'Windows' +local uname = (function() + 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 - write_file(tmpname, code) - nvim_command('source '..tmpname) - os.remove(tmpname) - return tmpname +end + +local function source(code) + local fname = tmpname() + write_file(fname, code) + nvim_command('source '..fname) + os.remove(fname) + return fname end local function nvim(method, ...) @@ -434,6 +470,20 @@ local function create_callindex(func) return table 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 meths = create_callindex(nvim) local uimeths = create_callindex(ui) @@ -499,6 +549,8 @@ return function(after_each) curbufmeths = curbufmeths, curwinmeths = curwinmeths, curtabmeths = curtabmeths, + pending_win32 = pending_win32, + tmpname = tmpname, NIL = mpack.NIL, } end diff --git a/test/functional/legacy/011_autocommands_spec.lua b/test/functional/legacy/011_autocommands_spec.lua index 6e613c85df..ba899f8119 100644 --- a/test/functional/legacy/011_autocommands_spec.lua +++ b/test/functional/legacy/011_autocommands_spec.lua @@ -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.dedent, helpers.write_file, helpers.feed +if helpers.pending_win32(pending) then return end + local function has_gzip() return os.execute('gzip --help >/dev/null 2>&1') == 0 end diff --git a/test/functional/legacy/025_jump_tag_hidden_spec.lua b/test/functional/legacy/025_jump_tag_hidden_spec.lua index 7b7ddb07b9..99224f9e08 100644 --- a/test/functional/legacy/025_jump_tag_hidden_spec.lua +++ b/test/functional/legacy/025_jump_tag_hidden_spec.lua @@ -5,6 +5,8 @@ local helpers = require('test.functional.helpers')(after_each) local clear, feed, insert = helpers.clear, helpers.feed, helpers.insert local execute, expect = helpers.execute, helpers.expect +if helpers.pending_win32(pending) then return end + describe('jump to a tag with hidden set', function() setup(clear) diff --git a/test/functional/legacy/030_fileformats_spec.lua b/test/functional/legacy/030_fileformats_spec.lua index 9bc62a375e..5fd78b2c59 100644 --- a/test/functional/legacy/030_fileformats_spec.lua +++ b/test/functional/legacy/030_fileformats_spec.lua @@ -4,6 +4,8 @@ local helpers = require('test.functional.helpers')(after_each) local feed, clear, execute = helpers.feed, helpers.clear, helpers.execute local eq, write_file = helpers.eq, helpers.write_file +if helpers.pending_win32(pending) then return end + describe('fileformats option', function() setup(function() clear() diff --git a/test/functional/legacy/036_regexp_character_classes_spec.lua b/test/functional/legacy/036_regexp_character_classes_spec.lua index 9e67bb9429..15287b9901 100644 --- a/test/functional/legacy/036_regexp_character_classes_spec.lua +++ b/test/functional/legacy/036_regexp_character_classes_spec.lua @@ -3,7 +3,6 @@ local helpers = require('test.functional.helpers')(after_each) local clear, execute, expect = helpers.clear, helpers.execute, helpers.expect local source, write_file = helpers.source, helpers.write_file -local os_name = helpers.os_name local function sixlines(text) local result = '' @@ -14,19 +13,16 @@ local function sixlines(text) end local function diff(text, nodedent) - local tmpname = os.tmpname() - if os_name() == 'osx' and string.match(tmpname, '^/tmp') then - tmpname = '/private'..tmpname - end - execute('w! '..tmpname) + local fname = helpers.tmpname() + execute('w! '..fname) helpers.wait() - local data = io.open(tmpname):read('*all') + local data = io.open(fname):read('*all') if nodedent then helpers.eq(text, data) else helpers.eq(helpers.dedent(text), data) end - os.remove(tmpname) + os.remove(fname) end describe('character classes in regexp', function() diff --git a/test/functional/legacy/051_highlight_spec.lua b/test/functional/legacy/051_highlight_spec.lua index 5bf3b51b90..ef392d8c67 100644 --- a/test/functional/legacy/051_highlight_spec.lua +++ b/test/functional/legacy/051_highlight_spec.lua @@ -7,6 +7,8 @@ local clear, feed = helpers.clear, helpers.feed local execute, expect = helpers.execute, helpers.expect local wait = helpers.wait +if helpers.pending_win32(pending) then return end + describe(':highlight', function() setup(clear) diff --git a/test/functional/legacy/059_utf8_spell_checking_spec.lua b/test/functional/legacy/059_utf8_spell_checking_spec.lua index c44ab44b3c..2fb8f3557d 100644 --- a/test/functional/legacy/059_utf8_spell_checking_spec.lua +++ b/test/functional/legacy/059_utf8_spell_checking_spec.lua @@ -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 write_file, call = helpers.write_file, helpers.call +if helpers.pending_win32(pending) then return end + local function write_latin1(name, text) text = call('iconv', text, 'utf-8', 'latin-1') write_file(name, text) diff --git a/test/functional/legacy/093_mksession_cursor_cols_latin1_spec.lua b/test/functional/legacy/093_mksession_cursor_cols_latin1_spec.lua index 719ce25099..40be7dcca4 100644 --- a/test/functional/legacy/093_mksession_cursor_cols_latin1_spec.lua +++ b/test/functional/legacy/093_mksession_cursor_cols_latin1_spec.lua @@ -7,6 +7,8 @@ local helpers = require('test.functional.helpers')(after_each) local feed, insert = helpers.feed, helpers.insert 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() setup(clear) diff --git a/test/functional/legacy/097_glob_path_spec.lua b/test/functional/legacy/097_glob_path_spec.lua index a6c146891a..23f1427cb5 100644 --- a/test/functional/legacy/097_glob_path_spec.lua +++ b/test/functional/legacy/097_glob_path_spec.lua @@ -6,6 +6,8 @@ local helpers = require('test.functional.helpers')(after_each) local clear = helpers.clear local execute, expect = helpers.execute, helpers.expect +if helpers.pending_win32(pending) then return end + describe('glob() and globpath()', function() setup(clear) diff --git a/test/functional/legacy/107_adjust_window_and_contents_spec.lua b/test/functional/legacy/107_adjust_window_and_contents_spec.lua index ce8d967e00..610bac7f21 100644 --- a/test/functional/legacy/107_adjust_window_and_contents_spec.lua +++ b/test/functional/legacy/107_adjust_window_and_contents_spec.lua @@ -5,6 +5,8 @@ local Screen = require('test.functional.ui.screen') local insert = helpers.insert local clear, execute = helpers.clear, helpers.execute +if helpers.pending_win32(pending) then return end + describe('107', function() setup(clear) diff --git a/test/functional/legacy/arglist_spec.lua b/test/functional/legacy/arglist_spec.lua index c128aaf115..b86d3f0aea 100644 --- a/test/functional/legacy/arglist_spec.lua +++ b/test/functional/legacy/arglist_spec.lua @@ -4,6 +4,8 @@ local helpers = require('test.functional.helpers')(after_each) local clear, execute, eq = helpers.clear, helpers.execute, helpers.eq 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() before_each(clear) diff --git a/test/functional/legacy/delete_spec.lua b/test/functional/legacy/delete_spec.lua index 42238b3a9e..cd19e31a79 100644 --- a/test/functional/legacy/delete_spec.lua +++ b/test/functional/legacy/delete_spec.lua @@ -2,6 +2,8 @@ local helpers = require('test.functional.helpers')(after_each) local clear, source = helpers.clear, helpers.source local eq, eval, execute = helpers.eq, helpers.eval, helpers.execute +if helpers.pending_win32(pending) then return end + describe('Test for delete()', function() before_each(clear) diff --git a/test/functional/legacy/file_perm_spec.lua b/test/functional/legacy/file_perm_spec.lua index 9ebbfd25e4..77e82352c5 100644 --- a/test/functional/legacy/file_perm_spec.lua +++ b/test/functional/legacy/file_perm_spec.lua @@ -6,7 +6,7 @@ local clear, call, eq = helpers.clear, helpers.call, helpers.eq local neq, exc_exec = helpers.neq, helpers.exc_exec describe('Test getting and setting file permissions', function() - local tempfile = os.tmpname() + local tempfile = helpers.tmpname() before_each(function() os.remove(tempfile) diff --git a/test/functional/legacy/fixeol_spec.lua b/test/functional/legacy/fixeol_spec.lua index bba1415535..1e9e832536 100644 --- a/test/functional/legacy/fixeol_spec.lua +++ b/test/functional/legacy/fixeol_spec.lua @@ -4,6 +4,8 @@ local helpers = require('test.functional.helpers')(after_each) local feed = helpers.feed local clear, execute, expect = helpers.clear, helpers.execute, helpers.expect +if helpers.pending_win32(pending) then return end + describe('fixeol', function() local function rmtestfiles() os.remove('test.out') diff --git a/test/functional/legacy/fnamemodify_spec.lua b/test/functional/legacy/fnamemodify_spec.lua index f614b07b36..d8ecbfe058 100644 --- a/test/functional/legacy/fnamemodify_spec.lua +++ b/test/functional/legacy/fnamemodify_spec.lua @@ -4,6 +4,8 @@ local helpers = require('test.functional.helpers')(after_each) local clear, source = helpers.clear, helpers.source local call, eq, nvim = helpers.call, helpers.eq, helpers.meths +if helpers.pending_win32(pending) then return end + local function expected_empty() eq({}, nvim.get_vvar('errors')) end diff --git a/test/functional/legacy/getcwd_spec.lua b/test/functional/legacy/getcwd_spec.lua index 3bb9930b74..dcb56eb242 100644 --- a/test/functional/legacy/getcwd_spec.lua +++ b/test/functional/legacy/getcwd_spec.lua @@ -4,6 +4,8 @@ local helpers = require('test.functional.helpers')(after_each) local eq, eval, source = helpers.eq, helpers.eval, helpers.source local call, clear, execute = helpers.call, helpers.clear, helpers.execute +if helpers.pending_win32(pending) then return end + describe('getcwd', function() before_each(clear) diff --git a/test/functional/legacy/packadd_spec.lua b/test/functional/legacy/packadd_spec.lua index a6979d8eb2..68bdbf5257 100644 --- a/test/functional/legacy/packadd_spec.lua +++ b/test/functional/legacy/packadd_spec.lua @@ -9,6 +9,8 @@ local function expected_empty() eq({}, nvim.get_vvar('errors')) end +if helpers.pending_win32(pending) then return end + describe('packadd', function() before_each(function() clear() diff --git a/test/functional/legacy/wordcount_spec.lua b/test/functional/legacy/wordcount_spec.lua index 300a777772..171ec3de92 100644 --- a/test/functional/legacy/wordcount_spec.lua +++ b/test/functional/legacy/wordcount_spec.lua @@ -5,6 +5,8 @@ local feed, insert, source = helpers.feed, helpers.insert, helpers.source local clear, execute = helpers.clear, helpers.execute local eq, eval = helpers.eq, helpers.eval +if helpers.pending_win32(pending) then return end + describe('wordcount', function() before_each(clear) diff --git a/test/functional/normal/K_spec.lua b/test/functional/normal/K_spec.lua index af0f82ef9a..43e598633c 100644 --- a/test/functional/normal/K_spec.lua +++ b/test/functional/normal/K_spec.lua @@ -2,6 +2,8 @@ local helpers = require('test.functional.helpers')(after_each) local eq, clear, eval, feed = helpers.eq, helpers.clear, helpers.eval, helpers.feed +if helpers.pending_win32(pending) then return end + describe('K', function() local test_file = 'K_spec_out' before_each(function() diff --git a/test/functional/options/autochdir_spec.lua b/test/functional/options/autochdir_spec.lua index 0e293761ad..209531515c 100644 --- a/test/functional/options/autochdir_spec.lua +++ b/test/functional/options/autochdir_spec.lua @@ -3,6 +3,8 @@ local clear = helpers.clear local eq = helpers.eq local getcwd = helpers.funcs.getcwd +if helpers.pending_win32(pending) then return end + describe("'autochdir'", function() it('given on the shell gets processed properly', function() local targetdir = 'test/functional/fixtures' diff --git a/test/functional/options/defaults_spec.lua b/test/functional/options/defaults_spec.lua index a131f72cf6..1ae855f26c 100644 --- a/test/functional/options/defaults_spec.lua +++ b/test/functional/options/defaults_spec.lua @@ -9,6 +9,8 @@ local eval = helpers.eval local eq = helpers.eq local neq = helpers.neq +if helpers.pending_win32(pending) then return end + local function init_session(...) local args = { helpers.nvim_prog, '-i', 'NONE', '--embed', '--cmd', 'set shortmess+=I background=light noswapfile noautoindent', diff --git a/test/functional/options/shortmess_spec.lua b/test/functional/options/shortmess_spec.lua index d531e47e28..22e8a39b79 100644 --- a/test/functional/options/shortmess_spec.lua +++ b/test/functional/options/shortmess_spec.lua @@ -2,6 +2,8 @@ local helpers = require('test.functional.helpers')(after_each) local Screen = require('test.functional.ui.screen') local clear, execute = helpers.clear, helpers.execute +if helpers.pending_win32(pending) then return end + describe("'shortmess'", function() local screen diff --git a/test/functional/plugin/shada_spec.lua b/test/functional/plugin/shada_spec.lua index e18e9ef428..2595f22929 100644 --- a/test/functional/plugin/shada_spec.lua +++ b/test/functional/plugin/shada_spec.lua @@ -43,6 +43,8 @@ local wshada, _, fname = get_shada_rw('Xtest-functional-plugin-shada.shada') local wshada_tmp, _, fname_tmp = get_shada_rw('Xtest-functional-plugin-shada.shada.tmp.f') +if helpers.pending_win32(pending) then return end + describe('In autoload/shada.vim', function() local epoch = os.date('%Y-%m-%dT%H:%M:%S', 0) before_each(function() diff --git a/test/functional/shada/buffers_spec.lua b/test/functional/shada/buffers_spec.lua index e4d02c268b..6694e736dc 100644 --- a/test/functional/shada/buffers_spec.lua +++ b/test/functional/shada/buffers_spec.lua @@ -8,6 +8,8 @@ local reset, set_additional_cmd, clear = shada_helpers.reset, shada_helpers.set_additional_cmd, shada_helpers.clear +if helpers.pending_win32(pending) then return end + describe('ShaDa support code', function() local testfilename = 'Xtestfile-functional-shada-buffers' local testfilename_2 = 'Xtestfile-functional-shada-buffers-2' diff --git a/test/functional/shada/helpers.lua b/test/functional/shada/helpers.lua index bb2919d4fb..cde555f0a7 100644 --- a/test/functional/shada/helpers.lua +++ b/test/functional/shada/helpers.lua @@ -5,7 +5,7 @@ local write_file, merge_args = helpers.write_file, helpers.merge_args local mpack = require('mpack') -local tmpname = os.tmpname() +local tmpname = helpers.tmpname() local additional_cmd = '' local function nvim_argv() diff --git a/test/functional/shada/marks_spec.lua b/test/functional/shada/marks_spec.lua index ace3c74a62..646b0b692e 100644 --- a/test/functional/shada/marks_spec.lua +++ b/test/functional/shada/marks_spec.lua @@ -14,6 +14,8 @@ local nvim_current_line = function() return curwinmeths.get_cursor()[1] end +if helpers.pending_win32(pending) then return end + describe('ShaDa support code', function() local testfilename = 'Xtestfile-functional-shada-marks' local testfilename_2 = 'Xtestfile-functional-shada-marks-2' diff --git a/test/functional/shada/shada_spec.lua b/test/functional/shada/shada_spec.lua index 32e7b16fc5..f6f3a8f826 100644 --- a/test/functional/shada/shada_spec.lua +++ b/test/functional/shada/shada_spec.lua @@ -18,6 +18,8 @@ local read_shada_file = shada_helpers.read_shada_file local wshada, _, shada_fname, clean = get_shada_rw('Xtest-functional-shada-shada.shada') +if helpers.pending_win32(pending) then return end + describe('ShaDa support code', function() before_each(reset) after_each(function() diff --git a/test/functional/shell/bang_filter_spec.lua b/test/functional/shell/bang_filter_spec.lua index cd5325c4e1..a320e6d018 100644 --- a/test/functional/shell/bang_filter_spec.lua +++ b/test/functional/shell/bang_filter_spec.lua @@ -4,6 +4,8 @@ local helpers = require('test.functional.helpers')(after_each) local feed, execute, clear = helpers.feed, helpers.execute, helpers.clear 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') diff --git a/test/functional/shell/viml_system_spec.lua b/test/functional/shell/viml_system_spec.lua index 3de022cbd9..b8de7cc86f 100644 --- a/test/functional/shell/viml_system_spec.lua +++ b/test/functional/shell/viml_system_spec.lua @@ -8,6 +8,7 @@ local eq, clear, eval, feed, nvim = local Screen = require('test.functional.ui.screen') +if helpers.pending_win32(pending) then return end local function create_file_with_nuls(name) return function() diff --git a/test/functional/terminal/altscreen_spec.lua b/test/functional/terminal/altscreen_spec.lua index 9553ffac43..4526037808 100644 --- a/test/functional/terminal/altscreen_spec.lua +++ b/test/functional/terminal/altscreen_spec.lua @@ -6,6 +6,8 @@ local feed_data = thelpers.feed_data local enter_altscreen = thelpers.enter_altscreen local exit_altscreen = thelpers.exit_altscreen +if helpers.pending_win32(pending) then return end + describe('terminal altscreen', function() local screen diff --git a/test/functional/terminal/buffer_spec.lua b/test/functional/terminal/buffer_spec.lua index 1923e2c675..427aa011e9 100644 --- a/test/functional/terminal/buffer_spec.lua +++ b/test/functional/terminal/buffer_spec.lua @@ -5,6 +5,7 @@ local wait = helpers.wait local eval, execute, source = helpers.eval, helpers.execute, helpers.source local eq, neq = helpers.eq, helpers.neq +if helpers.pending_win32(pending) then return end describe('terminal buffer', function() local screen diff --git a/test/functional/terminal/cursor_spec.lua b/test/functional/terminal/cursor_spec.lua index 45595e0eb8..1953022a7a 100644 --- a/test/functional/terminal/cursor_spec.lua +++ b/test/functional/terminal/cursor_spec.lua @@ -6,6 +6,7 @@ local nvim_dir, execute = helpers.nvim_dir, helpers.execute local hide_cursor = thelpers.hide_cursor local show_cursor = thelpers.show_cursor +if helpers.pending_win32(pending) then return end describe('terminal cursor', function() local screen diff --git a/test/functional/terminal/ex_terminal_spec.lua b/test/functional/terminal/ex_terminal_spec.lua index 135a234a23..6f929f17e4 100644 --- a/test/functional/terminal/ex_terminal_spec.lua +++ b/test/functional/terminal/ex_terminal_spec.lua @@ -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 execute, eval = helpers.execute, helpers.eval +if helpers.pending_win32(pending) then return end + describe(':terminal', function() local screen diff --git a/test/functional/terminal/highlight_spec.lua b/test/functional/terminal/highlight_spec.lua index 3d0ff6091d..30377d51bb 100644 --- a/test/functional/terminal/highlight_spec.lua +++ b/test/functional/terminal/highlight_spec.lua @@ -5,6 +5,7 @@ local feed, clear, nvim = helpers.feed, helpers.clear, helpers.nvim local nvim_dir, execute = helpers.nvim_dir, helpers.execute local eq, eval = helpers.eq, helpers.eval +if helpers.pending_win32(pending) then return end describe('terminal window highlighting', function() local screen diff --git a/test/functional/terminal/mouse_spec.lua b/test/functional/terminal/mouse_spec.lua index 715f071708..ecb0b2beb0 100644 --- a/test/functional/terminal/mouse_spec.lua +++ b/test/functional/terminal/mouse_spec.lua @@ -4,6 +4,8 @@ local clear = helpers.clear local feed, nvim = helpers.feed, helpers.nvim local feed_data = thelpers.feed_data +if helpers.pending_win32(pending) then return end + describe('terminal mouse', function() local screen diff --git a/test/functional/terminal/scrollback_spec.lua b/test/functional/terminal/scrollback_spec.lua index 60d6a6cc36..d60819af65 100644 --- a/test/functional/terminal/scrollback_spec.lua +++ b/test/functional/terminal/scrollback_spec.lua @@ -6,6 +6,8 @@ local feed, nvim_dir, execute = helpers.feed, helpers.nvim_dir, helpers.execute local wait = helpers.wait local feed_data = thelpers.feed_data +if helpers.pending_win32(pending) then return end + describe('terminal scrollback', function() local screen diff --git a/test/functional/terminal/tui_spec.lua b/test/functional/terminal/tui_spec.lua index 0f7bf7ba9a..27f00e8550 100644 --- a/test/functional/terminal/tui_spec.lua +++ b/test/functional/terminal/tui_spec.lua @@ -6,6 +6,8 @@ local feed = thelpers.feed_data local execute = helpers.execute local nvim_dir = helpers.nvim_dir +if helpers.pending_win32(pending) then return end + describe('tui', function() local screen diff --git a/test/functional/terminal/window_spec.lua b/test/functional/terminal/window_spec.lua index 96489045e4..70c234d897 100644 --- a/test/functional/terminal/window_spec.lua +++ b/test/functional/terminal/window_spec.lua @@ -4,6 +4,8 @@ local feed, clear = helpers.feed, helpers.clear local wait = helpers.wait local execute = helpers.execute +if helpers.pending_win32(pending) then return end + describe('terminal window', function() local screen diff --git a/test/functional/terminal/window_split_tab_spec.lua b/test/functional/terminal/window_split_tab_spec.lua index f4de5f7fca..6951b84a69 100644 --- a/test/functional/terminal/window_split_tab_spec.lua +++ b/test/functional/terminal/window_split_tab_spec.lua @@ -4,6 +4,8 @@ local clear = helpers.clear local feed, nvim = helpers.feed, helpers.nvim local execute = helpers.execute +if helpers.pending_win32(pending) then return end + describe('terminal', function() local screen diff --git a/test/functional/ui/bufhl_spec.lua b/test/functional/ui/bufhl_spec.lua index 80d413a455..579530bd6d 100644 --- a/test/functional/ui/bufhl_spec.lua +++ b/test/functional/ui/bufhl_spec.lua @@ -3,6 +3,7 @@ local Screen = require('test.functional.ui.screen') local clear, feed, insert = helpers.clear, helpers.feed, helpers.insert local execute, request, neq = helpers.execute, helpers.request, helpers.neq +if helpers.pending_win32(pending) then return end describe('Buffer highlighting', function() local screen diff --git a/test/functional/ui/highlight_spec.lua b/test/functional/ui/highlight_spec.lua index 46c0964a67..3e0b99996e 100644 --- a/test/functional/ui/highlight_spec.lua +++ b/test/functional/ui/highlight_spec.lua @@ -4,6 +4,7 @@ local os = require('os') local clear, feed, insert = helpers.clear, helpers.feed, helpers.insert local execute, request, eq = helpers.execute, helpers.request, helpers.eq +if helpers.pending_win32(pending) then return end describe('color scheme compatibility', function() before_each(function() diff --git a/test/functional/ui/input_spec.lua b/test/functional/ui/input_spec.lua index 407c576002..cec19250d2 100644 --- a/test/functional/ui/input_spec.lua +++ b/test/functional/ui/input_spec.lua @@ -4,6 +4,8 @@ local feed, next_message, eq = helpers.feed, helpers.next_message, helpers.eq local expect = helpers.expect local Screen = require('test.functional.ui.screen') +if helpers.pending_win32(pending) then return end + describe('mappings', function() local cid diff --git a/test/functional/ui/mouse_spec.lua b/test/functional/ui/mouse_spec.lua index 3f6d8e4663..041e9338b1 100644 --- a/test/functional/ui/mouse_spec.lua +++ b/test/functional/ui/mouse_spec.lua @@ -4,6 +4,8 @@ local clear, feed, meths = helpers.clear, helpers.feed, helpers.meths local insert, execute = helpers.insert, helpers.execute local eq, funcs = helpers.eq, helpers.funcs +if helpers.pending_win32(pending) then return end + describe('Mouse input', function() local screen diff --git a/test/functional/ui/output_spec.lua b/test/functional/ui/output_spec.lua index 22ffc156ef..6d24a3c9ff 100644 --- a/test/functional/ui/output_spec.lua +++ b/test/functional/ui/output_spec.lua @@ -1,6 +1,8 @@ local session = require('test.functional.helpers')(after_each) local child_session = require('test.functional.terminal.helpers') +if session.pending_win32(pending) then return end + describe("shell command :!", function() local screen before_each(function() diff --git a/test/functional/ui/screen_basic_spec.lua b/test/functional/ui/screen_basic_spec.lua index d8cff1c766..2b44b92336 100644 --- a/test/functional/ui/screen_basic_spec.lua +++ b/test/functional/ui/screen_basic_spec.lua @@ -4,6 +4,8 @@ local spawn, set_session, clear = helpers.spawn, helpers.set_session, helpers.cl local feed, execute = helpers.feed, helpers.execute local insert = helpers.insert +if helpers.pending_win32(pending) then return end + describe('Initial screen', function() local screen local nvim_argv = {helpers.nvim_prog, '-u', 'NONE', '-i', 'NONE', '-N', diff --git a/test/functional/ui/searchhl_spec.lua b/test/functional/ui/searchhl_spec.lua index cd4cc68c80..3914648e8f 100644 --- a/test/functional/ui/searchhl_spec.lua +++ b/test/functional/ui/searchhl_spec.lua @@ -3,6 +3,8 @@ local Screen = require('test.functional.ui.screen') local clear, feed, insert = helpers.clear, helpers.feed, helpers.insert local execute = helpers.execute +if helpers.pending_win32(pending) then return end + describe('search highlighting', function() local screen local colors = Screen.colors diff --git a/test/functional/ui/sign_spec.lua b/test/functional/ui/sign_spec.lua index eabd05b349..d02fc83809 100644 --- a/test/functional/ui/sign_spec.lua +++ b/test/functional/ui/sign_spec.lua @@ -2,6 +2,8 @@ local helpers = require('test.functional.helpers')(after_each) local Screen = require('test.functional.ui.screen') local clear, feed, execute = helpers.clear, helpers.feed, helpers.execute +if helpers.pending_win32(pending) then return end + describe('Signs', function() local screen diff --git a/test/functional/ui/syntax_conceal_spec.lua b/test/functional/ui/syntax_conceal_spec.lua index 4e2bd4d6be..58e3597233 100644 --- a/test/functional/ui/syntax_conceal_spec.lua +++ b/test/functional/ui/syntax_conceal_spec.lua @@ -3,6 +3,8 @@ local Screen = require('test.functional.ui.screen') local clear, feed, execute = helpers.clear, helpers.feed, helpers.execute local insert = helpers.insert +if helpers.pending_win32(pending) then return end + describe('Screen', function() local screen diff --git a/test/functional/ui/wildmode_spec.lua b/test/functional/ui/wildmode_spec.lua index 1d582703d0..6a6dc99c3d 100644 --- a/test/functional/ui/wildmode_spec.lua +++ b/test/functional/ui/wildmode_spec.lua @@ -3,6 +3,8 @@ local Screen = require('test.functional.ui.screen') local clear, feed, execute = helpers.clear, helpers.feed, helpers.execute local funcs = helpers.funcs +if helpers.pending_win32(pending) then return end + describe("'wildmode'", function() local screen diff --git a/test/functional/viml/completion_spec.lua b/test/functional/viml/completion_spec.lua index 5de3bb5da7..0897c2d836 100644 --- a/test/functional/viml/completion_spec.lua +++ b/test/functional/viml/completion_spec.lua @@ -4,6 +4,8 @@ local clear, feed = helpers.clear, helpers.feed local eval, eq, neq = helpers.eval, helpers.eq, helpers.neq local execute, source, expect = helpers.execute, helpers.source, helpers.expect +if helpers.pending_win32(pending) then return end + describe('completion', function() local screen diff --git a/third-party/CMakeLists.txt b/third-party/CMakeLists.txt index 7eba17aba3..2e41d745d7 100644 --- a/third-party/CMakeLists.txt +++ b/third-party/CMakeLists.txt @@ -81,8 +81,8 @@ endif() include(ExternalProject) -set(LIBUV_URL https://github.com/libuv/libuv/archive/v1.8.0.tar.gz) -set(LIBUV_SHA256 906e1a5c673c95cb261adeacdb7308a65b4a8f7c9c50d85f3021364951fa9cde) +set(LIBUV_URL https://github.com/libuv/libuv/archive/v1.9.1.tar.gz) +set(LIBUV_SHA256 a6ca9f0648973d1463f46b495ce546ddcbe7cce2f04b32e802a15539e46c57ad) set(MSGPACK_URL https://github.com/msgpack/msgpack-c/archive/cpp-1.0.0.tar.gz) set(MSGPACK_SHA256 afda64ca445203bb7092372b822bae8b2539fdcebbfc3f753f393628c2bcfe7d) diff --git a/third-party/cmake/BuildLuarocks.cmake b/third-party/cmake/BuildLuarocks.cmake index cbc1959d4f..fee8dba207 100644 --- a/third-party/cmake/BuildLuarocks.cmake +++ b/third-party/cmake/BuildLuarocks.cmake @@ -3,11 +3,7 @@ # writing a recipe that is meant for cross-compile, use the HOSTDEPS_* variables # instead of DEPS_* - check the main CMakeLists.txt for a list. -if(MSVC OR (MINGW AND NOT CMAKE_CROSSCOMPILING)) - 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() +option(USE_BUNDLED_BUSTED "Use the bundled version of busted to run tests." ON) # BuildLuarocks(CONFIGURE_COMMAND ... BUILD_COMMAND ... INSTALL_COMMAND ...) # Reusable function to build luarocks, wraps ExternalProject_Add. @@ -134,12 +130,17 @@ if(USE_BUNDLED_BUSTED) add_custom_target(penlight 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} ARGS build https://raw.githubusercontent.com/Olivine-Labs/busted/v2.0.rc11-0/busted-2.0.rc11-0.rockspec ${LUAROCKS_BUILDARGS} DEPENDS penlight) add_custom_target(busted - DEPENDS ${HOSTDEPS_BIN_DIR}/busted) + DEPENDS ${BUSTED_EXE}) add_custom_command(OUTPUT ${HOSTDEPS_BIN_DIR}/luacheck COMMAND ${LUAROCKS_BINARY} @@ -152,9 +153,9 @@ if(USE_BUNDLED_BUSTED) if(MINGW AND CMAKE_CROSSCOMPILING) set(LUV_DEPS ${LUV_DEPS} libuv_host) endif() - set(LUV_ARGS CFLAGS='-O0 -g3 -fPIC') + set(LUV_ARGS "CFLAGS=-O0 -g3 -fPIC") 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() add_custom_command(OUTPUT ${HOSTDEPS_LIB_DIR}/luarocks/rocks/luv COMMAND ${LUAROCKS_BINARY} |