diff options
author | Justin M. Keyes <justinkz@gmail.com> | 2021-09-17 09:16:40 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-09-17 09:16:40 -0700 |
commit | d8de4eb685e35646c7d541e9a75bdc296127b7e2 (patch) | |
tree | 4bb05ec713856715ac9ba57e5d116eed344511b9 /test/functional/eval/let_spec.lua | |
parent | d56002f7b722facd97b0958e141c8ed2d01495f7 (diff) | |
download | rneovim-d8de4eb685e35646c7d541e9a75bdc296127b7e2.tar.gz rneovim-d8de4eb685e35646c7d541e9a75bdc296127b7e2.tar.bz2 rneovim-d8de4eb685e35646c7d541e9a75bdc296127b7e2.zip |
test: reorg #15698
Problem:
Subdirectories like "visual", "insert", "normal" encourage people to
separate *related* tests for no good reason. Typically the _mode_ is
not the relevant topic of a test (and when it is, _then_ create
an appropriate describe() or it()).
Solution:
- Delete the various `test/functional/<mode>/` subdirectories, move
their tests to more meaningful topics.
- Rename `…/normal/` to `…/editor/`.
- Move or merge `…/visual/*` and `…/insert/*` tests into here where
appropriate.
- Rename `…/eval/` to `…/vimscript/`.
- Move `…/viml/*` into here also.
* test(reorg): insert/* => editor/mode_insert_spec.lua
* test(reorg): cmdline/* => editor/mode_cmdline_spec.lua
* test(reorg): eval core tests => eval_spec.lua
Diffstat (limited to 'test/functional/eval/let_spec.lua')
-rw-r--r-- | test/functional/eval/let_spec.lua | 93 |
1 files changed, 0 insertions, 93 deletions
diff --git a/test/functional/eval/let_spec.lua b/test/functional/eval/let_spec.lua deleted file mode 100644 index 5bc703b567..0000000000 --- a/test/functional/eval/let_spec.lua +++ /dev/null @@ -1,93 +0,0 @@ -local helpers = require('test.functional.helpers')(after_each) - -local eq = helpers.eq -local clear = helpers.clear -local command = helpers.command -local eval = helpers.eval -local meths = helpers.meths -local redir_exec = helpers.redir_exec -local source = helpers.source -local nvim_dir = helpers.nvim_dir - -before_each(clear) - -describe(':let', function() - it('correctly lists variables with curly-braces', function() - meths.set_var('v', {0}) - eq('\nv [0]', redir_exec('let {"v"}')) - end) - - it('correctly lists variables with subscript', function() - meths.set_var('v', {0}) - eq('\nv[0] #0', redir_exec('let v[0]')) - eq('\ng:["v"][0] #0', redir_exec('let g:["v"][0]')) - eq('\n{"g:"}["v"][0] #0', redir_exec('let {"g:"}["v"][0]')) - end) - - it(":unlet self-referencing node in a List graph #6070", function() - -- :unlet-ing a self-referencing List must not allow GC on indirectly - -- referenced in-scope Lists. Before #6070 this caused use-after-free. - source([=[ - let [l1, l2] = [[], []] - echo 'l1:' . id(l1) - echo 'l2:' . id(l2) - echo '' - let [l3, l4] = [[], []] - call add(l4, l4) - call add(l4, l3) - call add(l3, 1) - call add(l2, l2) - call add(l2, l1) - call add(l1, 1) - unlet l2 - unlet l4 - call garbagecollect(1) - call feedkeys(":\e:echo l1 l3\n:echo 42\n:cq\n", "t") - ]=]) - end) - - it("multibyte env var #8398 #9267", function() - command("let $NVIM_TEST = 'AìaB'") - eq('AìaB', eval('$NVIM_TEST')) - command("let $NVIM_TEST = 'AaあB'") - eq('AaあB', eval('$NVIM_TEST')) - local mbyte = [[\p* .ม .ม .ม .ม่ .ม่ .ม่ ֹ ֹ ֹ .ֹ .ֹ .ֹ ֹֻ ֹֻ ֹֻ - .ֹֻ .ֹֻ .ֹֻ ֹֻ ֹֻ ֹֻ .ֹֻ .ֹֻ .ֹֻ ֹ ֹ ֹ .ֹ .ֹ .ֹ ֹ ֹ ֹ .ֹ .ֹ .ֹ ֹֻ ֹֻ - .ֹֻ .ֹֻ .ֹֻ a a a ca ca ca à à à]] - command("let $NVIM_TEST = '"..mbyte.."'") - eq(mbyte, eval('$NVIM_TEST')) - end) - - it("multibyte env var to child process #8398 #9267", function() - local cmd_get_child_env = "let g:env_from_child = system(['"..nvim_dir.."/printenv-test', 'NVIM_TEST'])" - command("let $NVIM_TEST = 'AìaB'") - command(cmd_get_child_env) - eq(eval('$NVIM_TEST'), eval('g:env_from_child')) - - command("let $NVIM_TEST = 'AaあB'") - command(cmd_get_child_env) - eq(eval('$NVIM_TEST'), eval('g:env_from_child')) - - local mbyte = [[\p* .ม .ม .ม .ม่ .ม่ .ม่ ֹ ֹ ֹ .ֹ .ֹ .ֹ ֹֻ ֹֻ ֹֻ - .ֹֻ .ֹֻ .ֹֻ ֹֻ ֹֻ ֹֻ .ֹֻ .ֹֻ .ֹֻ ֹ ֹ ֹ .ֹ .ֹ .ֹ ֹ ֹ ֹ .ֹ .ֹ .ֹ ֹֻ ֹֻ - .ֹֻ .ֹֻ .ֹֻ a a a ca ca ca à à à]] - command("let $NVIM_TEST = '"..mbyte.."'") - command(cmd_get_child_env) - eq(eval('$NVIM_TEST'), eval('g:env_from_child')) - end) - - it("release of list assigned to l: variable does not trigger assertion #12387, #12430", function() - source([[ - func! s:f() - let l:x = [1] - let g:x = l: - endfunc - for _ in range(2) - call s:f() - endfor - call garbagecollect() - call feedkeys('i', 't') - ]]) - eq(1, eval('1')) - end) -end) |