aboutsummaryrefslogtreecommitdiff
path: root/test/functional/eval/execute_spec.lua
diff options
context:
space:
mode:
authorSha Liu <dev.xinkele@gmail.com>2018-12-08 17:14:43 +0800
committerJan Edmund Lazo <jan.lazo@mail.utoronto.ca>2019-06-03 00:12:01 -0400
commit5a4e7af77d0f819d61604b9440cc2f6376a3186b (patch)
treee0f5a2d9e796e5997e4f79de8adbd11d24587b6a /test/functional/eval/execute_spec.lua
parent73a2922413b4fd119fc0ec1cca06ba0982ad576a (diff)
downloadrneovim-5a4e7af77d0f819d61604b9440cc2f6376a3186b.tar.gz
rneovim-5a4e7af77d0f819d61604b9440cc2f6376a3186b.tar.bz2
rneovim-5a4e7af77d0f819d61604b9440cc2f6376a3186b.zip
update functional test for "places cursor correctly #6035"
Diffstat (limited to 'test/functional/eval/execute_spec.lua')
-rw-r--r--test/functional/eval/execute_spec.lua169
1 files changed, 84 insertions, 85 deletions
diff --git a/test/functional/eval/execute_spec.lua b/test/functional/eval/execute_spec.lua
index 6f82b0d99c..45664e1060 100644
--- a/test/functional/eval/execute_spec.lua
+++ b/test/functional/eval/execute_spec.lua
@@ -126,135 +126,134 @@ describe('execute()', function()
end)
it('places cursor correctly #6035', function()
- local screen = Screen.new(40, 5)
+ local screen = Screen.new(40, 6)
screen:attach()
source([=[
- " test 1
- function! Test1a()
- echo 12345678
- let x = execute('echo 1234567890', '')
- echon '1234'
+ " test 1: non-silenced output goes as usual
+ function! Test1()
+ echo 1234
+ let x = execute('echon "abcdef"', '')
+ echon 'ABCD'
endfunction
- function! Test1b()
- echo 12345678
- echo 1234567890
- echon '1234'
+ " test 2: silenced output does not affect ui
+ function! Test2()
+ echo 1234
+ let x = execute('echon "abcdef"', 'silent')
+ echon 'ABCD'
endfunction
- " test 2
- function! Test2a()
- echo 12345678
- let x = execute('echo 1234567890', 'silent')
- echon '1234'
+ " test 3: silenced! error does not affect ui
+ function! Test3()
+ echo 1234
+ let x = execute('echoerr "abcdef"', 'silent!')
+ echon 'ABCD'
endfunction
- function! Test2b()
- echo 12345678
- silent echo 1234567890
- echon '1234'
+ " test 4: silenced echoerr goes as usual
+ " bug here
+ function! Test4()
+ echo 1234
+ let x = execute('echoerr "abcdef"', 'silent')
+ echon 'ABCD'
endfunction
- " test 3
- function! Test3a()
- echo 12345678
- let x = execute('echoerr 1234567890', 'silent!')
- echon '1234'
+ " test 5: silenced! echoerr does not affect ui
+ function! Test5()
+ echo 1234
+ let x = execute('echoerr "abcdef"', 'silent!')
+ echon 'ABCD'
endfunction
- function! Test3b()
- echo 12345678
- silent! echoerr 1234567890
- echon '1234'
+ " test 6: silenced error goes as usual
+ function! Test6()
+ echo 1234
+ let x = execute('echo undefined', 'silent')
+ echon 'ABCD'
endfunction
- " test 4
- function! Test4a()
- echo 12345678
- let x = execute('echoerr 1234567890', 'silent')
- echon '1234'
- endfunction
-
- function! Test4b()
- echo 12345678
- silent echoerr 1234567890
- echon '1234'
+ " test 7: existing error does not mess the result
+ function! Test7()
+ " display from Test6() is still visible
+ " why does the "abcdef" goes into a newline
+ let x = execute('echon "abcdef"', '')
+ echon 'ABCD'
endfunction
]=])
- feed([[:call Test1a()<cr>]])
+ feed([[:call Test1()<cr>]])
screen:expect([[
- |
- |
- 12345678 |
- 12345678901234 |
- Press ENTER or type command to continue^ |
- ]])
-
- feed([[:call Test1b()<cr>]])
- screen:expect([[
- 12345678 |
- 12345678901234 |
- 12345678 |
- 12345678901234 |
- Press ENTER or type command to continue^ |
+ ^ |
+ ~ |
+ ~ |
+ ~ |
+ ~ |
+ 1234abcdefABCD |
]])
- feed([[:call Test2a()<cr>]])
+ feed([[:call Test2()<cr>]])
screen:expect([[
- 12345678901234 |
- 12345678 |
- 12345678901234 |
- 123456781234 |
- Press ENTER or type command to continue^ |
+ ^ |
+ ~ |
+ ~ |
+ ~ |
+ ~ |
+ 1234ABCD |
]])
- feed([[:call Test2b()<cr>]])
+ feed([[:call Test3()<cr>]])
screen:expect([[
- 12345678 |
- 12345678901234 |
- 123456781234 |
- 123456781234 |
- Press ENTER or type command to continue^ |
+ ^ |
+ ~ |
+ ~ |
+ ~ |
+ ~ |
+ 1234ABCD |
]])
- feed([[:call Test3a()<cr>]])
+ feed([[:call Test4()<cr>]])
+ -- unexpected: need to fix
+ -- echoerr does not set did_emsg
+ -- "ef" was overwritten since msg_col was recovered wrongly
screen:expect([[
- 12345678901234 |
- 123456781234 |
- 123456781234 |
- 123456781234 |
+ 1234 |
+ Error detected while processing function|
+ Test4: |
+ line 2: |
+ abcdABCD |
Press ENTER or type command to continue^ |
]])
- feed([[:call Test3b()<cr>]])
+ feed([[<cr>]]) -- to clear screen
+ feed([[:call Test5()<cr>]])
screen:expect([[
- 123456781234 |
- 123456781234 |
- 123456781234 |
- 123456781234 |
- Press ENTER or type command to continue^ |
+ ^ |
+ ~ |
+ ~ |
+ ~ |
+ ~ |
+ 1234ABCD |
]])
- feed([[:call Test4a()<cr>]])
+ feed([[:call Test6()<cr>]])
screen:expect([[
+ 1234 |
Error detected while processing function|
- Test4a: |
+ Test6: |
line 2: |
- 123456781234 |
+ E121: Undefined variable: undefinedABCD |
Press ENTER or type command to continue^ |
]])
- feed([[:call Test4b()<cr>]])
+ feed([[:call Test7()<cr>]])
screen:expect([[
Error detected while processing function|
- Test4b: |
+ Test6: |
line 2: |
- 12345678901234 |
+ E121: Undefined variable: undefinedABCD |
+ abcdefABCD |
Press ENTER or type command to continue^ |
]])
-
-
end)
-- This deviates from vim behavior, but is consistent