mirror of
https://github.com/vim/vim.git
synced 2025-10-03 05:14:07 -04:00
patch 7.4.1661
Problem: No test for special characters in channel eval command. Solution: Testing sending and receiving text with special characters.
This commit is contained in:
@@ -85,16 +85,28 @@ class ThreadedTCPRequestHandler(socketserver.BaseRequestHandler):
|
|||||||
print("sending: {0}".format(cmd))
|
print("sending: {0}".format(cmd))
|
||||||
self.request.sendall(cmd.encode('utf-8'))
|
self.request.sendall(cmd.encode('utf-8'))
|
||||||
response = "ok"
|
response = "ok"
|
||||||
|
elif decoded[1] == 'eval-special':
|
||||||
|
# Send an eval request. We ignore the response.
|
||||||
|
cmd = '["expr","\\"foo\x7f\x10\x01bar\\"", -2]'
|
||||||
|
print("sending: {0}".format(cmd))
|
||||||
|
self.request.sendall(cmd.encode('utf-8'))
|
||||||
|
response = "ok"
|
||||||
|
elif decoded[1] == 'eval-getline':
|
||||||
|
# Send an eval request. We ignore the response.
|
||||||
|
cmd = '["expr","getline(3)", -3]'
|
||||||
|
print("sending: {0}".format(cmd))
|
||||||
|
self.request.sendall(cmd.encode('utf-8'))
|
||||||
|
response = "ok"
|
||||||
elif decoded[1] == 'eval-fails':
|
elif decoded[1] == 'eval-fails':
|
||||||
# Send an eval request that will fail.
|
# Send an eval request that will fail.
|
||||||
cmd = '["expr","xxx", -2]'
|
cmd = '["expr","xxx", -4]'
|
||||||
print("sending: {0}".format(cmd))
|
print("sending: {0}".format(cmd))
|
||||||
self.request.sendall(cmd.encode('utf-8'))
|
self.request.sendall(cmd.encode('utf-8'))
|
||||||
response = "ok"
|
response = "ok"
|
||||||
elif decoded[1] == 'eval-error':
|
elif decoded[1] == 'eval-error':
|
||||||
# Send an eval request that works but the result can't
|
# Send an eval request that works but the result can't
|
||||||
# be encoded.
|
# be encoded.
|
||||||
cmd = '["expr","function(\\"tr\\")", -3]'
|
cmd = '["expr","function(\\"tr\\")", -5]'
|
||||||
print("sending: {0}".format(cmd))
|
print("sending: {0}".format(cmd))
|
||||||
self.request.sendall(cmd.encode('utf-8'))
|
self.request.sendall(cmd.encode('utf-8'))
|
||||||
response = "ok"
|
response = "ok"
|
||||||
|
@@ -192,20 +192,31 @@ func s:communicate(port)
|
|||||||
sleep 10m
|
sleep 10m
|
||||||
call assert_equal([-1, 'foo123'], ch_evalexpr(handle, 'eval-result'))
|
call assert_equal([-1, 'foo123'], ch_evalexpr(handle, 'eval-result'))
|
||||||
|
|
||||||
|
" Send an eval request with special characters.
|
||||||
|
call assert_equal('ok', ch_evalexpr(handle, 'eval-special'))
|
||||||
|
sleep 10m
|
||||||
|
call assert_equal([-2, "foo\x7f\x10\x01bar"], ch_evalexpr(handle, 'eval-result'))
|
||||||
|
|
||||||
|
" Send an eval request to get a line with special characters.
|
||||||
|
call setline(3, "a\nb\<CR>c\x01d\x7fe")
|
||||||
|
call assert_equal('ok', ch_evalexpr(handle, 'eval-getline'))
|
||||||
|
sleep 10m
|
||||||
|
call assert_equal([-3, "a\nb\<CR>c\x01d\x7fe"], ch_evalexpr(handle, 'eval-result'))
|
||||||
|
|
||||||
" Send an eval request that fails.
|
" Send an eval request that fails.
|
||||||
call assert_equal('ok', ch_evalexpr(handle, 'eval-fails'))
|
call assert_equal('ok', ch_evalexpr(handle, 'eval-fails'))
|
||||||
sleep 10m
|
sleep 10m
|
||||||
call assert_equal([-2, 'ERROR'], ch_evalexpr(handle, 'eval-result'))
|
call assert_equal([-4, 'ERROR'], ch_evalexpr(handle, 'eval-result'))
|
||||||
|
|
||||||
" Send an eval request that works but can't be encoded.
|
" Send an eval request that works but can't be encoded.
|
||||||
call assert_equal('ok', ch_evalexpr(handle, 'eval-error'))
|
call assert_equal('ok', ch_evalexpr(handle, 'eval-error'))
|
||||||
sleep 10m
|
sleep 10m
|
||||||
call assert_equal([-3, 'ERROR'], ch_evalexpr(handle, 'eval-result'))
|
call assert_equal([-5, 'ERROR'], ch_evalexpr(handle, 'eval-result'))
|
||||||
|
|
||||||
" Send a bad eval request. There will be no response.
|
" Send a bad eval request. There will be no response.
|
||||||
call assert_equal('ok', ch_evalexpr(handle, 'eval-bad'))
|
call assert_equal('ok', ch_evalexpr(handle, 'eval-bad'))
|
||||||
sleep 10m
|
sleep 10m
|
||||||
call assert_equal([-3, 'ERROR'], ch_evalexpr(handle, 'eval-result'))
|
call assert_equal([-5, 'ERROR'], ch_evalexpr(handle, 'eval-result'))
|
||||||
|
|
||||||
" Send an expr request
|
" Send an expr request
|
||||||
call assert_equal('ok', ch_evalexpr(handle, 'an expr'))
|
call assert_equal('ok', ch_evalexpr(handle, 'an expr'))
|
||||||
|
@@ -748,6 +748,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 */
|
||||||
|
/**/
|
||||||
|
1661,
|
||||||
/**/
|
/**/
|
||||||
1660,
|
1660,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user