Merge #11642 'CI: test powershell core'

This commit is contained in:
Justin M. Keyes
2020-01-01 06:36:10 -08:00
committed by GitHub
5 changed files with 17 additions and 6 deletions

View File

@@ -86,6 +86,8 @@ addons:
- xclip - xclip
homebrew: homebrew:
update: false update: false
casks:
- powershell
packages: packages:
- ccache - ccache
- ninja - ninja
@@ -115,9 +117,12 @@ jobs:
apt: apt:
sources: sources:
- sourceline: 'ppa:ubuntu-toolchain-r/test' - sourceline: 'ppa:ubuntu-toolchain-r/test'
- sourceline: 'deb [arch=amd64] https://packages.microsoft.com/ubuntu/16.04/prod xenial main'
key_url: 'https://packages.microsoft.com/keys/microsoft.asc'
packages: packages:
- *common-apt-packages - *common-apt-packages
- gcc-9 - gcc-9
- powershell
- if: branch = master AND commit_message !~ /\[skip.lint\]/ - if: branch = master AND commit_message !~ /\[skip.lint\]/
name: lint name: lint
os: linux os: linux

View File

@@ -17,12 +17,12 @@ build_nvim
exit_suite --continue exit_suite --continue
enter_suite tests
source ~/.nvm/nvm.sh source ~/.nvm/nvm.sh
nvm use 10 nvm use 10
export TREE_SITTER_DIR=$HOME/tree-sitter-build/ export TREE_SITTER_DIR=$HOME/tree-sitter-build/
enter_suite tests
if test "$CLANG_SANITIZER" != "TSAN" ; then if test "$CLANG_SANITIZER" != "TSAN" ; then
# Additional threads are only created when the builtin UI starts, which # Additional threads are only created when the builtin UI starts, which
# doesn't happen in the unit/functional tests # doesn't happen in the unit/functional tests

View File

@@ -5202,8 +5202,9 @@ A jump table for the options with a short description can be found at |Q_op|.
Note that such processing is done after |:set| did its own round of Note that such processing is done after |:set| did its own round of
unescaping, so to keep yourself sane use |:let-&| like shown above. unescaping, so to keep yourself sane use |:let-&| like shown above.
*shell-powershell* *shell-powershell*
To use powershell (on Windows): > To use powershell: >
set shell=powershell shellquote= shellpipe=\| shellxquote= let &shell = has('win32') ? 'powershell' : 'pwsh'
set shellquote= shellpipe=\| shellxquote=
set shellcmdflag=-NoLogo\ -NoProfile\ -ExecutionPolicy\ RemoteSigned\ -Command set shellcmdflag=-NoLogo\ -NoProfile\ -ExecutionPolicy\ RemoteSigned\ -Command
set shellredir=\|\ Out-File\ -Encoding\ UTF8 set shellredir=\|\ Out-File\ -Encoding\ UTF8

View File

@@ -504,9 +504,13 @@ function module.source(code)
return fname return fname
end end
function module.has_powershell()
return module.eval('executable("'..(iswin() and 'powershell' or 'pwsh')..'")') == 1
end
function module.set_shell_powershell() function module.set_shell_powershell()
local shell = iswin() and 'powershell' or 'pwsh' local shell = iswin() and 'powershell' or 'pwsh'
assert(module.eval('executable("'..shell..'")')) assert(module.has_powershell())
local cmd = 'Remove-Item -Force '..table.concat(iswin() local cmd = 'Remove-Item -Force '..table.concat(iswin()
and {'alias:cat', 'alias:echo', 'alias:sleep'} and {'alias:cat', 'alias:echo', 'alias:sleep'}
or {'alias:echo'}, ',')..';' or {'alias:echo'}, ',')..';'

View File

@@ -10,6 +10,7 @@ local iswin = helpers.iswin
local clear = helpers.clear local clear = helpers.clear
local command = helpers.command local command = helpers.command
local nvim_dir = helpers.nvim_dir local nvim_dir = helpers.nvim_dir
local has_powershell = helpers.has_powershell
local set_shell_powershell = helpers.set_shell_powershell local set_shell_powershell = helpers.set_shell_powershell
describe("shell command :!", function() describe("shell command :!", function()
@@ -228,7 +229,7 @@ describe("shell command :!", function()
]]) ]])
end) end)
end) end)
if iswin() or eval('executable("pwsh")') == 1 then if has_powershell() then
it('powershell supports literal strings', function() it('powershell supports literal strings', function()
set_shell_powershell() set_shell_powershell()
local screen = Screen.new(30, 4) local screen = Screen.new(30, 4)