diff options
Diffstat (limited to 'test/functional/eval/system_spec.lua')
-rw-r--r-- | test/functional/eval/system_spec.lua | 37 |
1 files changed, 9 insertions, 28 deletions
diff --git a/test/functional/eval/system_spec.lua b/test/functional/eval/system_spec.lua index 13134bc6e7..0a478fd05c 100644 --- a/test/functional/eval/system_spec.lua +++ b/test/functional/eval/system_spec.lua @@ -7,6 +7,7 @@ local eq, call, clear, eval, feed_command, feed, nvim = local command = helpers.command local exc_exec = helpers.exc_exec local iswin = helpers.iswin +local os_kill = helpers.os_kill local Screen = require('test.functional.ui.screen') @@ -23,14 +24,6 @@ local function delete_file(name) end end --- Some tests require the xclip program and a x server. -local xclip = nil -do - if os.getenv('DISPLAY') then - xclip = (os.execute('command -v xclip > /dev/null 2>&1') == 0) - end -end - describe('system()', function() before_each(clear) @@ -378,15 +371,10 @@ describe('system()', function() end) end) - describe("with a program that doesn't close stdout", function() - if not xclip then - pending('missing `xclip`', function() end) - else - it('will exit properly after passing input', function() - eq('', eval([[system('xclip -i -loops 1 -selection clipboard', 'clip-data')]])) - eq('clip-data', eval([[system('xclip -o -selection clipboard')]])) - end) - end + it("with a program that doesn't close stdout will exit properly after passing input", function() + local out = eval(string.format("system('%s', 'clip-data')", nvim_dir..'/streams-test')) + assert(out:sub(0, 5) == 'pid: ', out) + os_kill(out:match("%d+")) end) end) @@ -562,16 +550,9 @@ describe('systemlist()', function() end) end) - describe("with a program that doesn't close stdout", function() - if not xclip then - pending('missing `xclip`', function() end) - else - it('will exit properly after passing input', function() - eq({}, eval( - "systemlist('xclip -i -loops 1 -selection clipboard', ['clip', 'data'])")) - eq({'clip', 'data'}, eval( - "systemlist('xclip -o -selection clipboard')")) - end) - end + it("with a program that doesn't close stdout will exit properly after passing input", function() + local out = eval(string.format("systemlist('%s', 'clip-data')", nvim_dir..'/streams-test')) + assert(out[1]:sub(0, 5) == 'pid: ', out) + os_kill(out[1]:match("%d+")) end) end) |