diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/functional/legacy/messages_spec.lua | 6 | ||||
-rw-r--r-- | test/old/testdir/crash/bt_quickfix1_poc | 5 | ||||
-rw-r--r-- | test/old/testdir/crash/bt_quickfix_poc | 9 | ||||
-rw-r--r-- | test/old/testdir/crash/crash_scrollbar | 2 | ||||
-rw-r--r-- | test/old/testdir/crash/editing_arg_idx_POC_1 | bin | 0 -> 398 bytes | |||
-rw-r--r-- | test/old/testdir/crash/poc1 | bin | 0 -> 3264 bytes | |||
-rw-r--r-- | test/old/testdir/crash/poc_huaf1 | bin | 0 -> 1541 bytes | |||
-rw-r--r-- | test/old/testdir/crash/poc_huaf2 | bin | 0 -> 3238 bytes | |||
-rw-r--r-- | test/old/testdir/crash/poc_huaf3 | bin | 0 -> 4053 bytes | |||
-rw-r--r-- | test/old/testdir/crash/poc_tagfunc.vim | 6 | ||||
-rw-r--r-- | test/old/testdir/crash/vim_msg_trunc_poc | 1 | ||||
-rw-r--r-- | test/old/testdir/crash/vim_regsub_both_poc | bin | 0 -> 244 bytes | |||
-rw-r--r-- | test/old/testdir/test_crash.vim | 139 |
13 files changed, 159 insertions, 9 deletions
diff --git a/test/functional/legacy/messages_spec.lua b/test/functional/legacy/messages_spec.lua index a604e68822..7536506aa3 100644 --- a/test/functional/legacy/messages_spec.lua +++ b/test/functional/legacy/messages_spec.lua @@ -6,6 +6,7 @@ local exec = helpers.exec local feed = helpers.feed local meths = helpers.meths local nvim_dir = helpers.nvim_dir +local assert_alive = helpers.assert_alive before_each(clear) @@ -758,4 +759,9 @@ 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/bt_quickfix1_poc b/test/old/testdir/crash/bt_quickfix1_poc new file mode 100644 index 0000000000..97993fde52 --- /dev/null +++ b/test/old/testdir/crash/bt_quickfix1_poc @@ -0,0 +1,5 @@ +au BufReadPre * exe 'sn' .. expand("<abuf>") +call writefile([''],'X') +sil! e X +call writefile([''],'X') +sil! e X diff --git a/test/old/testdir/crash/bt_quickfix_poc b/test/old/testdir/crash/bt_quickfix_poc new file mode 100644 index 0000000000..bf02b4dcb8 --- /dev/null +++ b/test/old/testdir/crash/bt_quickfix_poc @@ -0,0 +1,9 @@ +comman!-narg=* Xexpr <mods>lex<args> +auto BufReadPre * exe"sn" ..expand("<abuf>") +fu Xautocmd_changelist() +cal writefile(['Xtestfile2:4:4'],'Xerr') + sil! edi Xerr +Xexpr 'Xtestfile:4:4' +endf +call Xautocmd_changelist() +call Xautocmd_changelist()
\ No newline at end of file diff --git a/test/old/testdir/crash/crash_scrollbar b/test/old/testdir/crash/crash_scrollbar new file mode 100644 index 0000000000..1de5905228 --- /dev/null +++ b/test/old/testdir/crash/crash_scrollbar @@ -0,0 +1,2 @@ +" this goes to insert mode and presses key k_VerScrollbar which may cause a redraw in exmode, which used ot crash Vim +norm o€ùX diff --git a/test/old/testdir/crash/editing_arg_idx_POC_1 b/test/old/testdir/crash/editing_arg_idx_POC_1 Binary files differnew file mode 100644 index 0000000000..5d048d0340 --- /dev/null +++ b/test/old/testdir/crash/editing_arg_idx_POC_1 diff --git a/test/old/testdir/crash/poc1 b/test/old/testdir/crash/poc1 Binary files differnew file mode 100644 index 0000000000..ec223f16b8 --- /dev/null +++ b/test/old/testdir/crash/poc1 diff --git a/test/old/testdir/crash/poc_huaf1 b/test/old/testdir/crash/poc_huaf1 Binary files differnew file mode 100644 index 0000000000..0d0ea475c1 --- /dev/null +++ b/test/old/testdir/crash/poc_huaf1 diff --git a/test/old/testdir/crash/poc_huaf2 b/test/old/testdir/crash/poc_huaf2 Binary files differnew file mode 100644 index 0000000000..4867e0f956 --- /dev/null +++ b/test/old/testdir/crash/poc_huaf2 diff --git a/test/old/testdir/crash/poc_huaf3 b/test/old/testdir/crash/poc_huaf3 Binary files differnew file mode 100644 index 0000000000..7e38a9a17c --- /dev/null +++ b/test/old/testdir/crash/poc_huaf3 diff --git a/test/old/testdir/crash/poc_tagfunc.vim b/test/old/testdir/crash/poc_tagfunc.vim new file mode 100644 index 0000000000..49d9b6f719 --- /dev/null +++ b/test/old/testdir/crash/poc_tagfunc.vim @@ -0,0 +1,6 @@ +fu Tagfunc(t,f,o) + bw +endf +set tagfunc=Tagfunc +n0 +sil0norm0i diff --git a/test/old/testdir/crash/vim_msg_trunc_poc b/test/old/testdir/crash/vim_msg_trunc_poc new file mode 100644 index 0000000000..73b04bec35 --- /dev/null +++ b/test/old/testdir/crash/vim_msg_trunc_poc @@ -0,0 +1 @@ +lv\ngggggi;norm:á Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá ŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒó ²ŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒáŒá Œá ŒŒá Œá ŒŒá Œá ŒŒá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá Œá diff --git a/test/old/testdir/crash/vim_regsub_both_poc b/test/old/testdir/crash/vim_regsub_both_poc Binary files differnew file mode 100644 index 0000000000..19a57114be --- /dev/null +++ b/test/old/testdir/crash/vim_regsub_both_poc diff --git a/test/old/testdir/test_crash.vim b/test/old/testdir/test_crash.vim index 445fe8d5a7..b093b053c5 100644 --- a/test/old/testdir/test_crash.vim +++ b/test/old/testdir/test_crash.vim @@ -5,21 +5,142 @@ source screendump.vim CheckScreendump func Test_crash1() + CheckNotBSD + CheckExecutable dash + " Test 7 fails on Mac ... + CheckNotMac + " The following used to crash Vim - let opts = #{wait_for_ruler: 0, rows: 20} - let args = ' -u NONE -i NONE -n -e -s -S ' - let buf = RunVimInTerminal(args .. ' crash/poc_huaf1', opts) - call VerifyScreenDump(buf, 'Test_crash_01', {}) - exe buf .. "bw!" + let opts = #{cmd: 'sh'} + let vim = GetVimProg() - let buf = RunVimInTerminal(args .. ' crash/poc_huaf2', opts) - call VerifyScreenDump(buf, 'Test_crash_01', {}) + let buf = RunVimInTerminal('sh', opts) + + let file = 'crash/poc_huaf1' + 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 1: [OK]" > X_crash1_result.txt' .. "\<cr>") + call TermWait(buf, 50) + + let file = 'crash/poc_huaf2' + let args = printf(cmn_args, vim, file) + call term_sendkeys(buf, args .. + \ ' && echo "crash 2: [OK]" >> X_crash1_result.txt' .. "\<cr>") + call TermWait(buf, 50) + + let file = 'crash/poc_huaf3' + let args = printf(cmn_args, vim, file) + call term_sendkeys(buf, args .. + \ ' && echo "crash 3: [OK]" >> X_crash1_result.txt' .. "\<cr>") + call TermWait(buf, 100) + + let file = 'crash/bt_quickfix_poc' + let args = printf(cmn_args, vim, file) + call term_sendkeys(buf, args .. + \ ' && echo "crash 4: [OK]" >> X_crash1_result.txt' .. "\<cr>") + " clean up + call delete('Xerr') + " This test takes a bit longer + call TermWait(buf, 1000) + + let file = 'crash/poc_tagfunc.vim' + let args = printf(cmn_args, vim, file) + " using || because this poc causes vim to exit with exitstatus != 0 + call term_sendkeys(buf, args .. + \ ' || echo "crash 5: [OK]" >> X_crash1_result.txt' .. "\<cr>") + + call TermWait(buf, 100) + + let file = 'crash/bt_quickfix1_poc' + let args = printf(cmn_args, vim, file) + call term_sendkeys(buf, args .. + \ ' && echo "crash 6: [OK]" >> X_crash1_result.txt' .. "\<cr>") + " clean up + call delete('X') + call TermWait(buf, 3000) + + let file = 'crash/vim_regsub_both_poc' + let args = printf(cmn_args, vim, file) + call term_sendkeys(buf, args .. + \ ' && echo "crash 7: [OK]" >> X_crash1_result.txt' .. "\<cr>") + call TermWait(buf, 3000) + + let file = 'crash/vim_msg_trunc_poc' + let args = printf(cmn_args, vim, file) + call term_sendkeys(buf, args .. + \ ' || echo "crash 8: [OK]" >> X_crash1_result.txt' .. "\<cr>") + call TermWait(buf, 3000) + + let file = 'crash/crash_scrollbar' + let args = printf(cmn_args, vim, file) + call term_sendkeys(buf, args .. + \ ' && echo "crash 9: [OK]" >> X_crash1_result.txt' .. "\<cr>") + call TermWait(buf, 1000) + + let file = 'crash/editing_arg_idx_POC_1' + let args = printf(cmn_args, vim, file) + call term_sendkeys(buf, args .. + \ ' || echo "crash 10: [OK]" >> X_crash1_result.txt' .. "\<cr>") + call TermWait(buf, 1000) + call delete('Xerr') + call delete('@') + + " clean up exe buf .. "bw!" - let buf = RunVimInTerminal(args .. ' crash/poc_huaf3', opts) - call VerifyScreenDump(buf, 'Test_crash_01', {}) + sp X_crash1_result.txt + + let expected = [ + \ 'crash 1: [OK]', + \ 'crash 2: [OK]', + \ 'crash 3: [OK]', + \ 'crash 4: [OK]', + \ 'crash 5: [OK]', + \ 'crash 6: [OK]', + \ 'crash 7: [OK]', + \ 'crash 8: [OK]', + \ 'crash 9: [OK]', + \ 'crash 10: [OK]', + \ ] + + call assert_equal(expected, getline(1, '$')) + bw! + + call delete('X_crash1_result.txt') +endfunc + +func Test_crash1_2() + CheckNotBSD + CheckExecutable dash + + " The following used to crash Vim + let opts = #{cmd: 'sh'} + let vim = GetVimProg() + let result = 'X_crash1_1_result.txt' + + let buf = RunVimInTerminal('sh', opts) + + let file = 'crash/poc1' + 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 1: [OK]" > '.. result .. "\<cr>") + call TermWait(buf, 150) + + " clean up exe buf .. "bw!" + exe "sp " .. result + + let expected = [ + \ 'crash 1: [OK]', + \ ] + + call assert_equal(expected, getline(1, '$')) + bw! + + call delete(result) endfunc func Test_crash2() |