aboutsummaryrefslogtreecommitdiff
path: root/test/functional
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2022-07-27 06:02:13 +0800
committerzeertzjq <zeertzjq@outlook.com>2022-07-27 06:19:43 +0800
commit9f1dc1466e0391c9f592455136f5a07106acf150 (patch)
tree04e371645c8ca4395c2552789381f1fb81dd339e /test/functional
parent45e2bbae835fab479f8e900a2f9c7c47ae22caea (diff)
downloadrneovim-9f1dc1466e0391c9f592455136f5a07106acf150.tar.gz
rneovim-9f1dc1466e0391c9f592455136f5a07106acf150.tar.bz2
rneovim-9f1dc1466e0391c9f592455136f5a07106acf150.zip
vim-patch:9.0.0082: cannot interrupt global command from command line
Problem: Cannot interrupt global command from command line. Solution: Reset got_int in another place. (closes vim/vim#10739) https://github.com/vim/vim/commit/3cfae39b087c2724991d385e5e8ee7d011aa8e99
Diffstat (limited to 'test/functional')
-rw-r--r--test/functional/legacy/ex_mode_spec.lua2
-rw-r--r--test/functional/legacy/global_spec.lua51
2 files changed, 52 insertions, 1 deletions
diff --git a/test/functional/legacy/ex_mode_spec.lua b/test/functional/legacy/ex_mode_spec.lua
index 59f4a21f5f..a8f54c6939 100644
--- a/test/functional/legacy/ex_mode_spec.lua
+++ b/test/functional/legacy/ex_mode_spec.lua
@@ -143,7 +143,7 @@ describe('Ex mode', function()
^ |
]])
feed('<C-C>')
- sleep(10) -- Wait for Ctrl-C to flush input
+ sleep(10) -- Wait for input to be flushed
feed('foo<CR>')
screen:expect([[
Entering Ex mode. Type "visual" to go to Normal mode. |
diff --git a/test/functional/legacy/global_spec.lua b/test/functional/legacy/global_spec.lua
new file mode 100644
index 0000000000..9f4528530c
--- /dev/null
+++ b/test/functional/legacy/global_spec.lua
@@ -0,0 +1,51 @@
+local helpers = require('test.functional.helpers')(after_each)
+local Screen = require('test.functional.ui.screen')
+local clear = helpers.clear
+local exec = helpers.exec
+local feed = helpers.feed
+local sleep = helpers.sleep
+
+before_each(clear)
+
+describe(':global', function()
+ -- oldtest: Test_interrupt_global()
+ it('can be interrupted using Ctrl-C in cmdline mode vim-patch:9.0.0082', function()
+ local screen = Screen.new(75, 6)
+ screen:set_default_attr_ids({
+ [0] = {bold = true, reverse = true}, -- MsgSeparator
+ [1] = {background = Screen.colors.Red, foreground = Screen.colors.White}, -- ErrorMsg
+ })
+ screen:attach()
+
+ exec([[
+ set nohlsearch noincsearch
+ cnoremap ; <Cmd>sleep 10<CR>
+ call setline(1, repeat(['foo'], 5))
+ ]])
+
+ feed(':g/foo/norm :<C-V>;<CR>')
+ sleep(10) -- Wait for :sleep to start
+ feed('<C-C>')
+ screen:expect([[
+ ^foo |
+ foo |
+ foo |
+ foo |
+ foo |
+ {1:Interrupted} |
+ ]])
+
+ -- Also test in Ex mode
+ feed('gQg/foo/norm :<C-V>;<CR>')
+ sleep(10) -- Wait for :sleep to start
+ feed('<C-C>')
+ screen:expect([[
+ {0: }|
+ Entering Ex mode. Type "visual" to go to Normal mode. |
+ :g/foo/norm :; |
+ |
+ {1:Interrupted} |
+ :^ |
+ ]])
+ end)
+end)