summaryrefslogtreecommitdiff
path: root/data/vim/patches/8.1.0820
diff options
context:
space:
mode:
Diffstat (limited to 'data/vim/patches/8.1.0820')
-rw-r--r--data/vim/patches/8.1.0820363
1 files changed, 363 insertions, 0 deletions
diff --git a/data/vim/patches/8.1.0820 b/data/vim/patches/8.1.0820
new file mode 100644
index 000000000..9fd5c13dc
--- /dev/null
+++ b/data/vim/patches/8.1.0820
@@ -0,0 +1,363 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 8.1.0820
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 8.1.0820
+Problem: Test for sending large data over channel sometimes fails.
+Solution: Handle that the job may have finished early. Also fix that file
+ changed test doesn't work in the GUI and reduce flakyness. (Ozaki
+ Kiichi, closes #3861)
+Files: src/testdir/test_channel.vim, src/testdir/test_filechanged.vim
+
+
+*** ../vim-8.1.0819/src/testdir/test_channel.vim 2019-01-24 23:11:44.631650199 +0100
+--- src/testdir/test_channel.vim 2019-01-25 20:58:53.293743070 +0100
+***************
+*** 879,897 ****
+ func Test_pipe_err_to_buffer_name()
+ call Run_test_pipe_err_to_buffer(1, 0, 1)
+ endfunc
+!
+ func Test_pipe_err_to_buffer_nr()
+ call Run_test_pipe_err_to_buffer(0, 0, 1)
+ endfunc
+!
+ func Test_pipe_err_to_buffer_name_nomod()
+ call Run_test_pipe_err_to_buffer(1, 1, 1)
+ endfunc
+!
+ func Test_pipe_err_to_buffer_name_nomsg()
+ call Run_test_pipe_err_to_buffer(1, 0, 0)
+ endfunc
+!
+ func Test_pipe_both_to_buffer()
+ if !has('job')
+ return
+--- 879,897 ----
+ func Test_pipe_err_to_buffer_name()
+ call Run_test_pipe_err_to_buffer(1, 0, 1)
+ endfunc
+!
+ func Test_pipe_err_to_buffer_nr()
+ call Run_test_pipe_err_to_buffer(0, 0, 1)
+ endfunc
+!
+ func Test_pipe_err_to_buffer_name_nomod()
+ call Run_test_pipe_err_to_buffer(1, 1, 1)
+ endfunc
+!
+ func Test_pipe_err_to_buffer_name_nomsg()
+ call Run_test_pipe_err_to_buffer(1, 0, 0)
+ endfunc
+!
+ func Test_pipe_both_to_buffer()
+ if !has('job')
+ return
+***************
+*** 966,980 ****
+ let options.in_top = 2
+ let options.in_bot = 4
+ endif
+! let g:job = job_start('sort', options)
+
+ if !a:use_buffer
+! call assert_equal("run", job_status(g:job))
+! call ch_sendraw(g:job, "ccc\naaa\nddd\nbbb\neee\n")
+! call ch_close_in(g:job)
+ endif
+
+! call WaitForAssert({-> assert_equal("dead", job_status(g:job))})
+
+ sp sortout
+ call WaitFor('line("$") > 3')
+--- 966,980 ----
+ let options.in_top = 2
+ let options.in_bot = 4
+ endif
+! let job = job_start('sort', options)
+
+ if !a:use_buffer
+! call assert_equal("run", job_status(job))
+! call ch_sendraw(job, "ccc\naaa\nddd\nbbb\neee\n")
+! call ch_close_in(job)
+ endif
+
+! call WaitForAssert({-> assert_equal("dead", job_status(job))})
+
+ sp sortout
+ call WaitFor('line("$") > 3')
+***************
+*** 985,992 ****
+ call assert_equal(['aaa', 'bbb', 'ddd'], getline(2, 4))
+ endif
+
+! call job_stop(g:job)
+! unlet g:job
+ if a:use_buffer
+ bwipe! sortin
+ endif
+--- 985,991 ----
+ call assert_equal(['aaa', 'bbb', 'ddd'], getline(2, 4))
+ endif
+
+! call job_stop(job)
+ if a:use_buffer
+ bwipe! sortin
+ endif
+***************
+*** 1186,1192 ****
+ split testout
+ let job = job_start([s:python, '-c',
+ \ 'import sys; [sys.stdout.write(".") and sys.stdout.flush() for _ in range(10000)]'], options)
+! call assert_equal("run", job_status(job))
+ call WaitFor('len(join(getline(1, "$"), "")) >= 10000')
+ try
+ let totlen = 0
+--- 1185,1192 ----
+ split testout
+ let job = job_start([s:python, '-c',
+ \ 'import sys; [sys.stdout.write(".") and sys.stdout.flush() for _ in range(10000)]'], options)
+! " the job may be done quickly, also accept "dead"
+! call assert_match('^\%(dead\|run\)$', job_status(job))
+ call WaitFor('len(join(getline(1, "$"), "")) >= 10000')
+ try
+ let totlen = 0
+***************
+*** 1247,1255 ****
+ endfunc
+ let job = job_start(s:python . " test_channel_pipe.py",
+ \ {'out_cb': dict.outHandler,
+! \ 'out_mode': 'json',
+! \ 'err_cb': dict.errHandler,
+! \ 'err_mode': 'json'})
+ call assert_equal("run", job_status(job))
+ try
+ let g:Ch_outmsg = ''
+--- 1247,1255 ----
+ endfunc
+ let job = job_start(s:python . " test_channel_pipe.py",
+ \ {'out_cb': dict.outHandler,
+! \ 'out_mode': 'json',
+! \ 'err_cb': dict.errHandler,
+! \ 'err_mode': 'json'})
+ call assert_equal("run", job_status(job))
+ try
+ let g:Ch_outmsg = ''
+***************
+*** 1290,1297 ****
+ endfunc
+ let job = job_start(s:python . " test_channel_pipe.py quit now",
+ \ {'out_cb': 'OutHandler',
+! \ 'close_cb': 'CloseHandler'})
+! call assert_equal("run", job_status(job))
+ try
+ call WaitForAssert({-> assert_equal('quit', g:Ch_msg1)})
+ call WaitForAssert({-> assert_equal(2, g:Ch_closemsg)})
+--- 1290,1298 ----
+ endfunc
+ let job = job_start(s:python . " test_channel_pipe.py quit now",
+ \ {'out_cb': 'OutHandler',
+! \ 'close_cb': 'CloseHandler'})
+! " the job may be done quickly, also accept "dead"
+! call assert_match('^\%(dead\|run\)$', job_status(job))
+ try
+ call WaitForAssert({-> assert_equal('quit', g:Ch_msg1)})
+ call WaitForAssert({-> assert_equal(2, g:Ch_closemsg)})
+***************
+*** 1314,1320 ****
+ endfunc
+ let job = job_start(s:python . " test_channel_pipe.py quit now",
+ \ {'close_cb': 'CloseHandler'})
+! call assert_equal("run", job_status(job))
+ try
+ call WaitForAssert({-> assert_equal('quit', g:Ch_received)})
+ finally
+--- 1315,1322 ----
+ endfunc
+ let job = job_start(s:python . " test_channel_pipe.py quit now",
+ \ {'close_cb': 'CloseHandler'})
+! " the job may be done quickly, also accept "dead"
+! call assert_match('^\%(dead\|run\)$', job_status(job))
+ try
+ call WaitForAssert({-> assert_equal('quit', g:Ch_received)})
+ finally
+***************
+*** 1338,1344 ****
+ endfunc
+ let job = job_start(s:python . " test_channel_pipe.py incomplete",
+ \ {'close_cb': 'CloseHandler'})
+! call assert_equal("run", job_status(job))
+ try
+ call WaitForAssert({-> assert_equal('incomplete', g:Ch_received)})
+ finally
+--- 1340,1347 ----
+ endfunc
+ let job = job_start(s:python . " test_channel_pipe.py incomplete",
+ \ {'close_cb': 'CloseHandler'})
+! " the job may be done quickly, also accept "dead"
+! call assert_match('^\%(dead\|run\)$', job_status(job))
+ try
+ call WaitForAssert({-> assert_equal('incomplete', g:Ch_received)})
+ finally
+***************
+*** 1354,1363 ****
+ call ch_log('Test_out_cb_lambda()')
+
+ let job = job_start(s:python . " test_channel_pipe.py",
+! \ {'out_cb': {ch, msg -> execute("let g:Ch_outmsg = 'lambda: ' . msg")},
+! \ 'out_mode': 'json',
+! \ 'err_cb': {ch, msg -> execute(":let g:Ch_errmsg = 'lambda: ' . msg")},
+! \ 'err_mode': 'json'})
+ call assert_equal("run", job_status(job))
+ try
+ let g:Ch_outmsg = ''
+--- 1357,1366 ----
+ call ch_log('Test_out_cb_lambda()')
+
+ let job = job_start(s:python . " test_channel_pipe.py",
+! \ {'out_cb': {ch, msg -> execute("let g:Ch_outmsg = 'lambda: ' . msg")},
+! \ 'out_mode': 'json',
+! \ 'err_cb': {ch, msg -> execute(":let g:Ch_errmsg = 'lambda: ' . msg")},
+! \ 'err_mode': 'json'})
+ call assert_equal("run", job_status(job))
+ try
+ let g:Ch_outmsg = ''
+***************
+*** 1385,1398 ****
+ let self.ret['exit_cb'] = job_status(a:job)
+ endfunc
+
+! let g:job = job_start(has('win32') ? 'cmd /c echo:' : 'echo', {
+! \ 'close_cb': g:retdict.close_cb,
+! \ 'exit_cb': g:retdict.exit_cb,
+! \ })
+! call assert_equal('run', job_status(g:job))
+! unlet g:job
+ call WaitForAssert({-> assert_equal(2, len(g:retdict.ret))})
+! call assert_match('^\%(dead\|run\)', g:retdict.ret['close_cb'])
+ call assert_equal('dead', g:retdict.ret['exit_cb'])
+ unlet g:retdict
+ endfunc
+--- 1388,1400 ----
+ let self.ret['exit_cb'] = job_status(a:job)
+ endfunc
+
+! let job = job_start([&shell, &shellcmdflag, 'echo'],
+! \ {'close_cb': g:retdict.close_cb,
+! \ 'exit_cb': g:retdict.exit_cb})
+! " the job may be done quickly, also accept "dead"
+! call assert_match('^\%(dead\|run\)$', job_status(job))
+ call WaitForAssert({-> assert_equal(2, len(g:retdict.ret))})
+! call assert_match('^\%(dead\|run\)$', g:retdict.ret['close_cb'])
+ call assert_equal('dead', g:retdict.ret['exit_cb'])
+ unlet g:retdict
+ endfunc
+***************
+*** 1415,1421 ****
+ let g:wipe_buf = bufnr('')
+
+ let job = job_start(has('win32') ? 'cmd /c echo:' : ['true'],
+! \ {'exit_cb': 'ExitCbWipe'})
+ let timer = timer_start(300, {-> feedkeys("\<Esc>", 'nt')}, {'repeat': 5})
+ call feedkeys(repeat('g', 1000) . 'o', 'ntx!')
+ call WaitForAssert({-> assert_equal("dead", job_status(job))})
+--- 1417,1423 ----
+ let g:wipe_buf = bufnr('')
+
+ let job = job_start(has('win32') ? 'cmd /c echo:' : ['true'],
+! \ {'exit_cb': 'ExitCbWipe'})
+ let timer = timer_start(300, {-> feedkeys("\<Esc>", 'nt')}, {'repeat': 5})
+ call feedkeys(repeat('g', 1000) . 'o', 'ntx!')
+ call WaitForAssert({-> assert_equal("dead", job_status(job))})
+***************
+*** 1933,1939 ****
+ return
+ endif
+
+! let job = job_start(s:python . ' -c "import time;time.sleep(0.2)"', {'out_io': 'null', 'err_io': 'null', 'pty': 1})
+ let elapsed = WaitFor({-> job_status(job) ==# 'dead'})
+ call assert_inrange(200, 1000, elapsed)
+ call job_stop(job)
+--- 1935,1942 ----
+ return
+ endif
+
+! let job = job_start(s:python . ' -c "import time;time.sleep(0.2)"',
+! \ {'out_io': 'null', 'err_io': 'null', 'pty': 1})
+ let elapsed = WaitFor({-> job_status(job) ==# 'dead'})
+ call assert_inrange(200, 1000, elapsed)
+ call job_stop(job)
+***************
+*** 1985,1997 ****
+ try
+ let g:out = ''
+ let job = job_start(s:python . " test_channel_pipe.py",
+! \ {'mode': 'raw', 'drop': 'never', 'noblock': 1,
+! \ 'callback': {ch, msg -> execute('let g:out .= msg')}})
+
+! let want = repeat('X', 79999) . "\n"
+ call ch_sendraw(job, want)
+! let g:Ch_job = job
+! call WaitForAssert({-> assert_equal("dead", job_status(g:Ch_job))})
+ call assert_equal(want, substitute(g:out, '\r', '', 'g'))
+ finally
+ call job_stop(job)
+--- 1988,2001 ----
+ try
+ let g:out = ''
+ let job = job_start(s:python . " test_channel_pipe.py",
+! \ {'mode': 'raw', 'drop': 'never', 'noblock': 1,
+! \ 'callback': {ch, msg -> execute('let g:out .= msg')}})
+
+! let outlen = 79999
+! let want = repeat('X', outlen) . "\n"
+ call ch_sendraw(job, want)
+! call WaitFor({-> len(g:out) >= outlen}, 10000)
+! call WaitForAssert({-> assert_equal("dead", job_status(job))})
+ call assert_equal(want, substitute(g:out, '\r', '', 'g'))
+ finally
+ call job_stop(job)
+*** ../vim-8.1.0819/src/testdir/test_filechanged.vim 2019-01-24 21:57:11.574719854 +0100
+--- src/testdir/test_filechanged.vim 2019-01-25 20:54:17.931364655 +0100
+***************
+*** 90,96 ****
+ endfunc
+
+ func Test_file_changed_dialog()
+! if !has('unix')
+ return
+ endif
+ au! FileChangedShell
+--- 90,96 ----
+ endfunc
+
+ func Test_file_changed_dialog()
+! if !has('unix') || has('gui_running')
+ return
+ endif
+ au! FileChangedShell
+*** ../vim-8.1.0819/src/version.c 2019-01-25 20:48:29.385157333 +0100
+--- src/version.c 2019-01-25 21:00:22.821191796 +0100
+***************
+*** 789,790 ****
+--- 789,792 ----
+ { /* Add new patch number below this line */
++ /**/
++ 820,
+ /**/
+
+--
+FIRST GUARD: Ah! Now ... we're not allowed to ...
+ SIR LAUNCELOT runs him through, grabs his spear and stabs the other
+ guard who collapses in a heap. Hiccoughs quietly.
+ "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///