diff options
author | Gregory Anders <8965202+gpanders@users.noreply.github.com> | 2023-12-07 13:02:02 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-12-07 13:02:02 -0800 |
commit | 75aaec1b60e81742c01156e6884e6df977a1803e (patch) | |
tree | 0c277084471e60006799bec4053e66789b636e02 | |
parent | 9ae7d36ff5ebaf75597b442e10890bd77df01fbe (diff) | |
parent | 8957df4f22af508fa44b9f8ada7ee4636d972bd3 (diff) | |
download | rneovim-75aaec1b60e81742c01156e6884e6df977a1803e.tar.gz rneovim-75aaec1b60e81742c01156e6884e6df977a1803e.tar.bz2 rneovim-75aaec1b60e81742c01156e6884e6df977a1803e.zip |
Merge pull request #26456 from gpanders/ignore-vim-runtime
fix(terminal): ignore $VIM and $VIMRUNTIME in pty jobs
-rw-r--r-- | src/nvim/eval/funcs.c | 2 | ||||
-rw-r--r-- | test/functional/core/startup_spec.lua | 6 | ||||
-rw-r--r-- | test/functional/terminal/helpers.lua | 8 | ||||
-rw-r--r-- | test/functional/terminal/highlight_spec.lua | 4 | ||||
-rw-r--r-- | test/functional/terminal/tui_spec.lua | 24 | ||||
-rw-r--r-- | test/helpers.lua | 13 | ||||
-rw-r--r-- | test/old/testdir/runnvim.vim | 2 |
7 files changed, 54 insertions, 5 deletions
diff --git a/src/nvim/eval/funcs.c b/src/nvim/eval/funcs.c index c1c865df60..15b81f2f56 100644 --- a/src/nvim/eval/funcs.c +++ b/src/nvim/eval/funcs.c @@ -3903,6 +3903,8 @@ static const char *pty_ignored_env_vars[] = { "COLORFGBG", "COLORTERM", #endif + "VIM", + "VIMRUNTIME", NULL }; diff --git a/test/functional/core/startup_spec.lua b/test/functional/core/startup_spec.lua index 94ec3d4907..1460870774 100644 --- a/test/functional/core/startup_spec.lua +++ b/test/functional/core/startup_spec.lua @@ -866,7 +866,11 @@ describe('user config init', function() local screen = Screen.new(50, 8) screen:attach() - funcs.termopen({nvim_prog}) + funcs.termopen({nvim_prog}, { + env = { + VIMRUNTIME = os.getenv('VIMRUNTIME'), + }, + }) screen:expect({ any = pesc('[i]gnore, (v)iew, (d)eny, (a)llow:') }) -- `i` to enter Terminal mode, `a` to allow feed('ia') diff --git a/test/functional/terminal/helpers.lua b/test/functional/terminal/helpers.lua index 78c9218679..9566079389 100644 --- a/test/functional/terminal/helpers.lua +++ b/test/functional/terminal/helpers.lua @@ -127,7 +127,13 @@ end local function setup_child_nvim(args, opts) opts = opts or {} local argv = { nvim_prog, unpack(args) } - return screen_setup(0, argv, opts.cols, opts.env) + + local env = opts.env or {} + if not env.VIMRUNTIME then + env.VIMRUNTIME = os.getenv('VIMRUNTIME') + end + + return screen_setup(0, argv, opts.cols, env) end return { diff --git a/test/functional/terminal/highlight_spec.lua b/test/functional/terminal/highlight_spec.lua index 4754d14052..84bd7a2d4a 100644 --- a/test/functional/terminal/highlight_spec.lua +++ b/test/functional/terminal/highlight_spec.lua @@ -147,6 +147,10 @@ it(':terminal highlight has lower precedence than editor #9964', function() '+hi Normal ctermfg=Blue ctermbg=Yellow', '+norm! ichild nvim', '+norm! oline 2', + }, { + env = { + VIMRUNTIME = os.getenv('VIMRUNTIME'), + }, }) screen:expect([[ {N_child:^child nvim }| diff --git a/test/functional/terminal/tui_spec.lua b/test/functional/terminal/tui_spec.lua index 362f1fc1ee..5c1f3e7c65 100644 --- a/test/functional/terminal/tui_spec.lua +++ b/test/functional/terminal/tui_spec.lua @@ -24,6 +24,7 @@ local funcs = helpers.funcs local meths = helpers.meths local is_ci = helpers.is_ci local is_os = helpers.is_os +local is_arch = helpers.is_arch local new_pipename = helpers.new_pipename local spawn_argv = helpers.spawn_argv local set_session = helpers.set_session @@ -1829,8 +1830,18 @@ describe('TUI', function() [5] = {bold = true, reverse = true}, }) screen:attach() + funcs.termopen({ + nvim_prog, + '--clean', + '--cmd', 'colorscheme vim', + '--cmd', 'set notermguicolors', + '--cmd', 'let start = reltime() | while v:true | if reltimefloat(reltime(start)) > 2 | break | endif | endwhile', + }, { + env = { + VIMRUNTIME = os.getenv('VIMRUNTIME'), + }, + }) exec([[ - call termopen([v:progpath, '--clean', '--cmd', 'set notermguicolors', '--cmd', 'colorscheme vim', '--cmd', 'let start = reltime() | while v:true | if reltimefloat(reltime(start)) > 2 | break | endif | endwhile']) sleep 500m vs new ]]) @@ -1849,6 +1860,9 @@ describe('TUI', function() end) it('argv[0] can be overridden #23953', function() + if is_arch('aarch64') then + pending('execl does not work on aarch64') + end if not exec_lua('return pcall(require, "ffi")') then pending('missing LuaJIT FFI') end @@ -1887,8 +1901,12 @@ describe('TUI', function() finally(function() os.remove('testF') end) - local screen = thelpers.screen_setup(0, nvim_prog - ..' -u NONE -i NONE --cmd \'set noswapfile noshowcmd noruler\' --cmd \'normal iabc\' > /dev/null 2>&1 && cat testF && rm testF') + local screen = thelpers.screen_setup(0, + string.format( + 'VIMRUNTIME=%s %s -u NONE -i NONE --cmd \'set noswapfile noshowcmd noruler\' --cmd \'normal iabc\' > /dev/null 2>&1 && cat testF && rm testF', + os.getenv('VIMRUNTIME'), + nvim_prog + )) feed_data(':w testF\n:q\n') screen:expect([[ :w testF | diff --git a/test/helpers.lua b/test/helpers.lua index 4db2175a63..0ced3ec163 100644 --- a/test/helpers.lua +++ b/test/helpers.lua @@ -376,6 +376,19 @@ function module.is_os(s) ) end +function module.is_arch(s) + local machine = luv.os_uname().machine + if s == 'arm64' or s == 'aarch64' then + return machine == 'arm64' or machine == 'aarch64' + end + + if s == 'x86' or s == 'x86_64' or s == 'amd64' then + return machine == 'x86_64' + end + + return machine == s +end + local function tmpdir_get() return os.getenv('TMPDIR') and os.getenv('TMPDIR') or os.getenv('TEMP') end diff --git a/test/old/testdir/runnvim.vim b/test/old/testdir/runnvim.vim index 2db60d05b3..3ccb9988cf 100644 --- a/test/old/testdir/runnvim.vim +++ b/test/old/testdir/runnvim.vim @@ -7,6 +7,8 @@ function s:logger.on_exit(id, data, event) call add(self.d_events, [a:event, ['']]) endfunction +let s:logger.env = #{VIMRUNTIME: $VIMRUNTIME} + " Replace non-printable chars by special sequence, or "<%x>". let s:escaped_char = {"\n": '\n', "\r": '\r', "\t": '\t'} function! s:escape_non_printable(char) abort |