summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2016-02-03 20:13:24 +0100
committerBram Moolenaar <Bram@vim.org>2016-02-03 20:13:24 +0100
commita0f9cd148eaab23b2037d2f543f3b8f5a3a7ad3c (patch)
treeaa37caa09db632881e111994979b251f4c254606
parent7c764f7bbf71a7a49baae07641efd2ead69e4d08 (diff)
patch 7.4.1247v7.4.1247
Problem: The channel test doesn't run on MS-Windows. Solution: Make it work on the MS-Windows console. (Ken Takata)
-rwxr-xr-xsrc/testdir/test_channel.py6
-rw-r--r--src/testdir/test_channel.vim36
-rw-r--r--src/version.c2
3 files changed, 33 insertions, 11 deletions
diff --git a/src/testdir/test_channel.py b/src/testdir/test_channel.py
index a706243e43..2364494831 100755
--- a/src/testdir/test_channel.py
+++ b/src/testdir/test_channel.py
@@ -7,12 +7,6 @@
# Then Vim can send requests to the server:
# :let response = ch_sendexpr(handle, 'hello!')
#
-# And you can control Vim by typing a JSON message here, e.g.:
-# ["ex","echo 'hi there'"]
-#
-# There is no prompt, just type a line and press Enter.
-# To exit cleanly type "quit<Enter>".
-#
# See ":help channel-demo" in Vim.
#
# This requires Python 2.6 or later.
diff --git a/src/testdir/test_channel.vim b/src/testdir/test_channel.vim
index 140691c398..ee7a422447 100644
--- a/src/testdir/test_channel.vim
+++ b/src/testdir/test_channel.vim
@@ -2,14 +2,40 @@
scriptencoding utf-8
" This requires the Python command to run the test server.
-" This most likely only works on Unix.
-if !has('unix') || !executable('python')
+" This most likely only works on Unix and Windows console.
+if has('unix')
+ if !executable('python')
+ finish
+ endif
+elseif has('win32') && !has('gui_win32')
+ " Use Python Launcher for Windows (py.exe).
+ if !executable('py')
+ finish
+ endif
+else
finish
endif
+func s:start_server()
+ if has('win32')
+ silent !start cmd /c start "test_channel" py test_channel.py
+ else
+ silent !./test_channel.py&
+ endif
+endfunc
+
+func s:kill_server()
+ if has('win32')
+ call system('taskkill /IM py.exe /T /F /FI "WINDOWTITLE eq test_channel"')
+ else
+ call system("killall test_channel.py")
+ endif
+endfunc
+
func Test_communicate()
+ call delete("Xportnr")
" The Python program writes the port number in Xportnr.
- silent !./test_channel.py&
+ call s:start_server()
" Wait for up to 2 seconds for the port number to be there.
let cnt = 20
@@ -29,7 +55,7 @@ func Test_communicate()
if len(l) == 0
" Can't make the connection, give up.
- call system("killall test_channel.py")
+ call s:kill_server()
return
endif
let port = l[0]
@@ -49,5 +75,5 @@ func Test_communicate()
" make the server quit, can't check if this works, should not hang.
call ch_sendexpr(handle, '!quit!', 0)
- call system("killall test_channel.py")
+ call s:kill_server()
endfunc
diff --git a/src/version.c b/src/version.c
index 6aa4baa932..9417f5e445 100644
--- a/src/version.c
+++ b/src/version.c
@@ -743,6 +743,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1247,
+/**/
1246,
/**/
1245,