aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2023-12-02 10:56:40 +0800
committerGitHub <noreply@github.com>2023-12-02 10:56:40 +0800
commitc45d1e32a92f5027fe12038b856509efe5c158fb (patch)
tree492b01ed1fed314cf279bb84857db1527be91d19 /test
parent387c5ba3de356ea5c5f6fe71465440abd8563d8e (diff)
parent9d7544ac4cd553c9b7c8b41926b7292c5ee85943 (diff)
downloadrneovim-c45d1e32a92f5027fe12038b856509efe5c158fb.tar.gz
rneovim-c45d1e32a92f5027fe12038b856509efe5c158fb.tar.bz2
rneovim-c45d1e32a92f5027fe12038b856509efe5c158fb.zip
Merge pull request #26358 from zeertzjq/vim-9.0.2140
vim-patch:9.0.{2140,2141,2142,2143}
Diffstat (limited to 'test')
-rw-r--r--test/functional/legacy/crash_spec.lua19
-rw-r--r--test/functional/legacy/messages_spec.lua5
-rw-r--r--test/old/testdir/crash/poc_did_set_langmap1
-rw-r--r--test/old/testdir/crash/poc_ex_substitutebin0 -> 135 bytes
-rw-r--r--test/old/testdir/crash/poc_suggest_trie_walkbin0 -> 100 bytes
-rw-r--r--test/old/testdir/crash/poc_win_enter_extbin0 -> 1958 bytes
-rw-r--r--test/old/testdir/test_crash.vim37
7 files changed, 55 insertions, 7 deletions
diff --git a/test/functional/legacy/crash_spec.lua b/test/functional/legacy/crash_spec.lua
index 5094f81847..094bea253e 100644
--- a/test/functional/legacy/crash_spec.lua
+++ b/test/functional/legacy/crash_spec.lua
@@ -6,7 +6,6 @@ local feed = helpers.feed
before_each(clear)
--- oldtest: Test_crash1()
it('no crash when ending Visual mode while editing buffer closes window', function()
command('new')
command('autocmd ModeChanged v:n ++once close')
@@ -14,3 +13,21 @@ it('no crash when ending Visual mode while editing buffer closes window', functi
command('enew')
assert_alive()
end)
+
+it('no crash when ending Visual mode close the window to switch to', function()
+ command('new')
+ command('autocmd ModeChanged v:n ++once only')
+ feed('v')
+ command('wincmd p')
+ assert_alive()
+end)
+
+it('no crash when truncating overlong message', function()
+ pcall(command, 'source test/old/testdir/crash/vim_msg_trunc_poc')
+ assert_alive()
+end)
+
+it('no crash with very long option error message', function()
+ pcall(command, 'source test/old/testdir/crash/poc_did_set_langmap')
+ assert_alive()
+end)
diff --git a/test/functional/legacy/messages_spec.lua b/test/functional/legacy/messages_spec.lua
index e0cc1dc79c..146b00acb0 100644
--- a/test/functional/legacy/messages_spec.lua
+++ b/test/functional/legacy/messages_spec.lua
@@ -801,9 +801,4 @@ describe('messages', function()
]])
os.remove('b.txt')
end)
-
- it('no crash when truncating overlong message', function()
- pcall(command, 'source test/old/testdir/crash/vim_msg_trunc_poc')
- assert_alive()
- end)
end)
diff --git a/test/old/testdir/crash/poc_did_set_langmap b/test/old/testdir/crash/poc_did_set_langmap
new file mode 100644
index 0000000000..f77145b9d1
--- /dev/null
+++ b/test/old/testdir/crash/poc_did_set_langmap
@@ -0,0 +1 @@
+se lmap=°xÿ7sil;drlmap=°xÿ7sil;drmo: pm31 3" \ No newline at end of file
diff --git a/test/old/testdir/crash/poc_ex_substitute b/test/old/testdir/crash/poc_ex_substitute
new file mode 100644
index 0000000000..bcf1286512
--- /dev/null
+++ b/test/old/testdir/crash/poc_ex_substitute
Binary files differ
diff --git a/test/old/testdir/crash/poc_suggest_trie_walk b/test/old/testdir/crash/poc_suggest_trie_walk
new file mode 100644
index 0000000000..c79b6eeb5c
--- /dev/null
+++ b/test/old/testdir/crash/poc_suggest_trie_walk
Binary files differ
diff --git a/test/old/testdir/crash/poc_win_enter_ext b/test/old/testdir/crash/poc_win_enter_ext
new file mode 100644
index 0000000000..73f53b575b
--- /dev/null
+++ b/test/old/testdir/crash/poc_win_enter_ext
Binary files differ
diff --git a/test/old/testdir/test_crash.vim b/test/old/testdir/test_crash.vim
index b093b053c5..49e712a901 100644
--- a/test/old/testdir/test_crash.vim
+++ b/test/old/testdir/test_crash.vim
@@ -117,7 +117,7 @@ func Test_crash1_2()
" The following used to crash Vim
let opts = #{cmd: 'sh'}
let vim = GetVimProg()
- let result = 'X_crash1_1_result.txt'
+ let result = 'X_crash1_2_result.txt'
let buf = RunVimInTerminal('sh', opts)
@@ -128,6 +128,38 @@ func Test_crash1_2()
\ ' && echo "crash 1: [OK]" > '.. result .. "\<cr>")
call TermWait(buf, 150)
+ let file = 'crash/poc_win_enter_ext'
+ let cmn_args = "%s -u NONE -i NONE -n -e -s -S %s -c ':qa!'"
+ let args = printf(cmn_args, vim, file)
+ call term_sendkeys(buf, args ..
+ \ ' && echo "crash 2: [OK]" >> '.. result .. "\<cr>")
+ call TermWait(buf, 350)
+
+ let file = 'crash/poc_suggest_trie_walk'
+ let cmn_args = "%s -u NONE -i NONE -n -e -s -S %s -c ':qa!'"
+ let args = printf(cmn_args, vim, file)
+ call term_sendkeys(buf, args ..
+ \ ' && echo "crash 3: [OK]" >> '.. result .. "\<cr>")
+ call TermWait(buf, 150)
+
+ let file = 'crash/poc_did_set_langmap'
+ let cmn_args = "%s -u NONE -i NONE -n -X -m -n -e -s -S %s -c ':qa!'"
+ let args = printf(cmn_args, vim, file)
+ call term_sendkeys(buf, args ..
+ \ ' ; echo "crash 4: [OK]" >> '.. result .. "\<cr>")
+ call TermWait(buf, 150)
+
+ let file = 'crash/poc_ex_substitute'
+ let cmn_args = "%s -u NONE -i NONE -n -e -s -S %s -c ':qa!'"
+ let args = printf(cmn_args, vim, file)
+ " just make sure it runs, we don't care about the resulting echo
+ call term_sendkeys(buf, args .. "\<cr>")
+ " There is no output generated in Github CI for the asan clang build.
+ " so just skip generating the ouput.
+ " call term_sendkeys(buf, args ..
+ " \ ' && echo "crash 5: [OK]" >> '.. result .. "\<cr>")
+ call TermWait(buf, 150)
+
" clean up
exe buf .. "bw!"
@@ -135,6 +167,9 @@ func Test_crash1_2()
let expected = [
\ 'crash 1: [OK]',
+ \ 'crash 2: [OK]',
+ \ 'crash 3: [OK]',
+ \ 'crash 4: [OK]',
\ ]
call assert_equal(expected, getline(1, '$'))