diff options
author | Bram Moolenaar <Bram@vim.org> | 2017-09-09 18:16:43 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2017-09-09 18:16:43 +0200 |
commit | 5b5adf5b9cd226d775643872e65c62674d6ada95 (patch) | |
tree | 4b06972c0929cd46fd955b5a25e872727ffe450d /src/testdir/test_terminal_fail.vim | |
parent | 9d18961323a2a5c3b609c98ce0d78613c71f3532 (diff) | |
download | vim-git-5b5adf5b9cd226d775643872e65c62674d6ada95.tar.gz |
patch 8.0.1083: leaking memory in input part of channelv8.0.1083
Problem: Leaking memory in input part of channel.
Solution: Clear the input part of channel. Free the entry. Move failing
command test to a separate file to avoid bogus leak reports
clouding tests that should not leak.
Diffstat (limited to 'src/testdir/test_terminal_fail.vim')
-rw-r--r-- | src/testdir/test_terminal_fail.vim | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/testdir/test_terminal_fail.vim b/src/testdir/test_terminal_fail.vim new file mode 100644 index 000000000..aad4b98cb --- /dev/null +++ b/src/testdir/test_terminal_fail.vim @@ -0,0 +1,21 @@ +" 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. + +if !has('terminal') + finish +endif + +source shared.vim + +func Test_terminal_redir_fails() + if has('unix') + let buf = term_start('xyzabc', {'err_io': 'file', 'err_name': 'Xfile'}) + call term_wait(buf) + call WaitFor('len(readfile("Xfile")) > 0') + call assert_match('executing job failed', readfile('Xfile')[0]) + call WaitFor('!&modified') + call delete('Xfile') + bwipe + endif +endfunc |