mirror of
https://github.com/vim/vim.git
synced 2025-10-02 05:04:20 -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))
|
||||
self.request.sendall(cmd.encode('utf-8'))
|
||||
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':
|
||||
# Send an eval request that will fail.
|
||||
cmd = '["expr","xxx", -2]'
|
||||
cmd = '["expr","xxx", -4]'
|
||||
print("sending: {0}".format(cmd))
|
||||
self.request.sendall(cmd.encode('utf-8'))
|
||||
response = "ok"
|
||||
elif decoded[1] == 'eval-error':
|
||||
# Send an eval request that works but the result can't
|
||||
# be encoded.
|
||||
cmd = '["expr","function(\\"tr\\")", -3]'
|
||||
cmd = '["expr","function(\\"tr\\")", -5]'
|
||||
print("sending: {0}".format(cmd))
|
||||
self.request.sendall(cmd.encode('utf-8'))
|
||||
response = "ok"
|
||||
|
@@ -192,20 +192,31 @@ func s:communicate(port)
|
||||
sleep 10m
|
||||
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.
|
||||
call assert_equal('ok', ch_evalexpr(handle, 'eval-fails'))
|
||||
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.
|
||||
call assert_equal('ok', ch_evalexpr(handle, 'eval-error'))
|
||||
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.
|
||||
call assert_equal('ok', ch_evalexpr(handle, 'eval-bad'))
|
||||
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
|
||||
call assert_equal('ok', ch_evalexpr(handle, 'an expr'))
|
||||
|
@@ -748,6 +748,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
1661,
|
||||
/**/
|
||||
1660,
|
||||
/**/
|
||||
|
Reference in New Issue
Block a user