diff options
author | Justin M. Keyes <justinkz@gmail.com> | 2017-03-29 20:07:39 +0200 |
---|---|---|
committer | Justin M. Keyes <justinkz@gmail.com> | 2017-03-30 02:55:00 +0200 |
commit | 1ea9ebf112d6c9d6355038afb4aaee794187cb23 (patch) | |
tree | cec418a7bae041575d91b8eabbc0f3b1926b8a56 /test/helpers.lua | |
parent | 1f478cebeb929332e90c1b50de4b8a4f311a0df2 (diff) | |
download | rneovim-1ea9ebf112d6c9d6355038afb4aaee794187cb23.tar.gz rneovim-1ea9ebf112d6c9d6355038afb4aaee794187cb23.tar.bz2 rneovim-1ea9ebf112d6c9d6355038afb4aaee794187cb23.zip |
test: Use workspace-local temp directory.
Closes #6291
Diffstat (limited to 'test/helpers.lua')
-rw-r--r-- | test/helpers.lua | 41 |
1 files changed, 27 insertions, 14 deletions
diff --git a/test/helpers.lua b/test/helpers.lua index 1a86effa1c..82451bc61d 100644 --- a/test/helpers.lua +++ b/test/helpers.lua @@ -106,20 +106,33 @@ local uname = (function() end) end)() -local function tmpname() - local fname = os.tmpname() - if uname() == 'Windows' and fname:sub(1, 2) == '\\s' then - -- In Windows tmpname() returns a filename starting with - -- special sequence \s, prepend $TEMP path - local tmpdir = os.getenv('TEMP') - return tmpdir..fname - elseif fname:match('^/tmp') and uname() == 'Darwin' then - -- In OS X /tmp links to /private/tmp - return '/private'..fname - else - return fname - end -end +local tmpname = (function() + local seq = 0 + local tmpdir = os.getenv('TMPDIR') and os.getenv('TMPDIR') or os.getenv('TEMP') + -- Is $TMPDIR defined local to the project workspace? + local in_workspace = not not (tmpdir and string.find(tmpdir, 'Xtest')) + return (function() + if in_workspace then + -- Cannot control os.tmpname() dir, so hack our own tmpname() impl. + seq = seq + 1 + local fname = tmpdir..'/nvim-test-lua-'..seq + io.open(fname, 'w'):close() + return fname + else + local fname = os.tmpname() + if uname() == 'Windows' and fname:sub(1, 2) == '\\s' then + -- In Windows tmpname() returns a filename starting with + -- special sequence \s, prepend $TEMP path + return tmpdir..fname + elseif fname:match('^/tmp') and uname() == 'Darwin' then + -- In OS X /tmp links to /private/tmp + return '/private'..fname + else + return fname + end + end + end) +end)() local function map(func, tab) local rettab = {} |