diff options
author | Justin M. Keyes <justinkz@gmail.com> | 2017-03-30 03:50:17 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-03-30 03:50:17 +0200 |
commit | 8d13955328ab0259a3b870893b4bd5b3a130564e (patch) | |
tree | cec418a7bae041575d91b8eabbc0f3b1926b8a56 /test/helpers.lua | |
parent | 6964b67c00f9aa029791137f44f30ed4aef20ef4 (diff) | |
parent | 1ea9ebf112d6c9d6355038afb4aaee794187cb23 (diff) | |
download | rneovim-8d13955328ab0259a3b870893b4bd5b3a130564e.tar.gz rneovim-8d13955328ab0259a3b870893b4bd5b3a130564e.tar.bz2 rneovim-8d13955328ab0259a3b870893b4bd5b3a130564e.zip |
Merge #6395 'test: Use workspace-local temp directory.'
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 = {} |