0
0
mirror of https://github.com/vim/vim.git synced 2025-07-24 10:45:12 -04:00

patch 9.0.0169: insufficient testing for line2byte() with text properties

Problem:    Insufficient testing for line2byte() with text properties.
Solution:   Add tests with a lot of text.
This commit is contained in:
Bram Moolenaar 2022-08-08 14:59:47 +01:00
parent 25463610df
commit cf85d97baf
3 changed files with 31 additions and 4 deletions

View File

@ -904,6 +904,30 @@ func Test_prop_multiline()
call prop_type_delete('comment')
endfunc
func Run_test_with_line2byte(add_props)
new
setlocal ff=unix
if a:add_props
call prop_type_add('textprop', #{highlight: 'Search'})
endif
for nr in range(1, 1000)
call setline(nr, 'some longer text here')
if a:add_props && nr % 17 == 0
call prop_add(nr, 13, #{type: 'textprop', length: 4})
endif
endfor
call assert_equal(21935, line2byte(998))
for nr in range(1, 1000, 7)
exe nr .. "s/longer/much more/"
endfor
call assert_equal(22364, line2byte(998))
if a:add_props
call prop_type_delete('textprop')
endif
bwipe!
endfunc
func Test_prop_line2byte()
call prop_type_add('comment', {'highlight': 'Directory'})
new
@ -935,6 +959,11 @@ func Test_prop_line2byte()
call assert_equal(1489, line2byte(400))
bwipe!
" Add many lines so that the data block is split.
" With and without props should give the same result.
call Run_test_with_line2byte(0)
call Run_test_with_line2byte(1)
call prop_type_delete('comment')
endfunc

View File

@ -9,10 +9,6 @@
/*
* Text properties implementation. See ":help text-properties".
*
* TODO:
* - Also test line2byte() with many lines, so that ml_updatechunk() is taken
* into account.
*/
#include "vim.h"

View File

@ -735,6 +735,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
169,
/**/
168,
/**/