To: vim_dev@googlegroups.com Subject: Patch 7.4.2157 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ Patch 7.4.2157 Problem: Test_job_start_fails() is expected to report memory leaks, making it hard to see other leaks in test_partial. Solution: Move Test_job_start_fails() to a separate test file. Files: src/testdir/test_partial.vim, src/testdir/test_job_fails.vim, src/Makefile, src/testdir/Make_all.mak *** ../vim-7.4.2156/src/testdir/test_partial.vim 2016-07-30 23:14:24.747383275 +0200 --- src/testdir/test_partial.vim 2016-08-05 19:29:05.157610686 +0200 *************** *** 1,27 **** " Test binding arguments to a Funcref. - " NOTE: This function may cause memory leaks to be reported. - " That is because when fork/exec fails memory is not freed. Since the process - " exists right away it's not a real leak. - func Test_job_start_fails() - if has('job') - let job = job_start('axdfxsdf') - for i in range(100) - let status = job_status(job) - if status == 'dead' || status == 'fail' - break - endif - sleep 10m - endfor - if has('unix') - call assert_equal('dead', job_status(job)) - else - call assert_equal('fail', job_status(job)) - endif - unlet job - endif - endfunc - func MyFunc(arg1, arg2, arg3) return a:arg1 . '/' . a:arg2 . '/' . a:arg3 endfunc --- 1,5 ---- *** ../vim-7.4.2156/src/testdir/test_job_fails.vim 2016-08-05 19:31:02.872696232 +0200 --- src/testdir/test_job_fails.vim 2016-08-05 19:27:24.990388984 +0200 *************** *** 0 **** --- 1,19 ---- + " This test is in a separate file, because it usually causes reports for memory + " leaks under valgrind. That is because when fork/exec fails memory is not + " freed. Since the process exists right away it's not a real leak. + + source shared.vim + + func Test_job_start_fails() + if has('job') + let g:job = job_start('axdfxsdf') + if has('unix') + call WaitFor('job_status(g:job) == "dead"') + call assert_equal('dead', job_status(g:job)) + else + call WaitFor('job_status(g:job) == "fail"') + call assert_equal('fail', job_status(g:job)) + endif + unlet g:job + endif + endfunc *** ../vim-7.4.2156/src/Makefile 2016-08-04 20:05:35.935253358 +0200 --- src/Makefile 2016-08-05 19:30:04.213151897 +0200 *************** *** 2086,2091 **** --- 2086,2092 ---- test_history \ test_increment \ test_increment_dbcs \ + test_job_fails \ test_join \ test_json \ test_jumps \ *** ../vim-7.4.2156/src/testdir/Make_all.mak 2016-08-04 20:05:35.935253358 +0200 --- src/testdir/Make_all.mak 2016-08-05 19:29:35.113377961 +0200 *************** *** 176,181 **** --- 176,182 ---- test_history.res \ test_increment.res \ test_increment_dbcs.res \ + test_job_fails.res \ test_json.res \ test_langmap.res \ test_man.res \ *** ../vim-7.4.2156/src/version.c 2016-08-04 22:00:07.756346935 +0200 --- src/version.c 2016-08-05 19:29:01.961635518 +0200 *************** *** 765,766 **** --- 765,768 ---- { /* Add new patch number below this line */ + /**/ + 2157, /**/ -- Bad programs can be written in any language. /// 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 ///