forked from aniani/vim
patch 7.4.2270
Problem: Insufficient testing for NUL bytes on a raw channel. Solution: Add a test for writing and reading.
This commit is contained in:
@@ -1321,7 +1321,7 @@ func Test_using_freed_memory()
|
|||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
func Test_collapse_buffers()
|
func Test_collapse_buffers()
|
||||||
if !executable('cat')
|
if !executable('cat') || !has('job')
|
||||||
return
|
return
|
||||||
endif
|
endif
|
||||||
sp test_channel.vim
|
sp test_channel.vim
|
||||||
@@ -1335,6 +1335,42 @@ func Test_collapse_buffers()
|
|||||||
bwipe!
|
bwipe!
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
|
func Test_raw_passes_nul()
|
||||||
|
if !executable('cat') || !has('job')
|
||||||
|
return
|
||||||
|
endif
|
||||||
|
|
||||||
|
" Test lines from the job containing NUL are stored correctly in a buffer.
|
||||||
|
new
|
||||||
|
call setline(1, ["asdf\nasdf", "xxx\n", "\nyyy"])
|
||||||
|
w! Xtestread
|
||||||
|
bwipe!
|
||||||
|
split testout
|
||||||
|
1,$delete
|
||||||
|
call job_start('cat Xtestread', {'out_io': 'buffer', 'out_name': 'testout'})
|
||||||
|
call WaitFor('line("$") > 2')
|
||||||
|
call assert_equal("asdf\nasdf", getline(2))
|
||||||
|
call assert_equal("xxx\n", getline(3))
|
||||||
|
call assert_equal("\nyyy", getline(4))
|
||||||
|
|
||||||
|
call delete('Xtestread')
|
||||||
|
bwipe!
|
||||||
|
|
||||||
|
" Test lines from a buffer with NUL bytes are written correctly to the job.
|
||||||
|
new mybuffer
|
||||||
|
call setline(1, ["asdf\nasdf", "xxx\n", "\nyyy"])
|
||||||
|
let g:Ch_job = job_start('cat', {'in_io': 'buffer', 'in_name': 'mybuffer', 'out_io': 'file', 'out_name': 'Xtestwrite'})
|
||||||
|
call WaitFor('"dead" == job_status(g:Ch_job)')
|
||||||
|
bwipe!
|
||||||
|
split Xtestwrite
|
||||||
|
call assert_equal("asdf\nasdf", getline(1))
|
||||||
|
call assert_equal("xxx\n", getline(2))
|
||||||
|
call assert_equal("\nyyy", getline(3))
|
||||||
|
|
||||||
|
call delete('Xtestwrite')
|
||||||
|
bwipe!
|
||||||
|
endfunc
|
||||||
|
|
||||||
function Ch_test_close_lambda(port)
|
function Ch_test_close_lambda(port)
|
||||||
let handle = ch_open('localhost:' . a:port, s:chopt)
|
let handle = ch_open('localhost:' . a:port, s:chopt)
|
||||||
if ch_status(handle) == "fail"
|
if ch_status(handle) == "fail"
|
||||||
|
@@ -763,6 +763,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
2270,
|
||||||
/**/
|
/**/
|
||||||
2269,
|
2269,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user