tests: fix system_spec when run with clipboard manager (#10956)

* tests: move os_kill to functional helpers

* tests: fix system_spec when run with clipboard manager

Replaces "xclip" with a dedicated helper program.

Fixes: https://github.com/neovim/neovim/issues/4900#issuecomment-501866842
This commit is contained in:
Daniel Hahler
2019-09-12 03:26:35 +02:00
committed by GitHub
parent 108763171f
commit 11fe132dd9
6 changed files with 54 additions and 36 deletions

View File

@@ -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)