diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/functional/legacy/crash_spec.lua | 19 | ||||
-rw-r--r-- | test/functional/legacy/messages_spec.lua | 5 | ||||
-rw-r--r-- | test/old/testdir/crash/poc_did_set_langmap | 1 | ||||
-rw-r--r-- | test/old/testdir/crash/poc_ex_substitute | bin | 0 -> 135 bytes | |||
-rw-r--r-- | test/old/testdir/crash/poc_suggest_trie_walk | bin | 0 -> 100 bytes | |||
-rw-r--r-- | test/old/testdir/crash/poc_win_enter_ext | bin | 0 -> 1958 bytes | |||
-rw-r--r-- | test/old/testdir/test_crash.vim | 37 |
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: pm313"
\ No newline at end of file diff --git a/test/old/testdir/crash/poc_ex_substitute b/test/old/testdir/crash/poc_ex_substitute Binary files differnew file mode 100644 index 0000000000..bcf1286512 --- /dev/null +++ b/test/old/testdir/crash/poc_ex_substitute diff --git a/test/old/testdir/crash/poc_suggest_trie_walk b/test/old/testdir/crash/poc_suggest_trie_walk Binary files differnew file mode 100644 index 0000000000..c79b6eeb5c --- /dev/null +++ b/test/old/testdir/crash/poc_suggest_trie_walk diff --git a/test/old/testdir/crash/poc_win_enter_ext b/test/old/testdir/crash/poc_win_enter_ext Binary files differnew file mode 100644 index 0000000000..73f53b575b --- /dev/null +++ b/test/old/testdir/crash/poc_win_enter_ext 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, '$')) |