mirror of
https://github.com/neovim/neovim.git
synced 2024-12-20 11:15:14 -07:00
3c8d974f73
The directory name could contain special characters that trips up the matching used by find. Instead, let's just make sure that the filename starts with the directory name.
69 lines
1.9 KiB
Lua
69 lines
1.9 KiB
Lua
local lfs = require('lfs')
|
|
local helpers = require('test.unit.helpers')(after_each)
|
|
local itp = helpers.gen_itp(it)
|
|
|
|
local eq = helpers.eq
|
|
local neq = helpers.neq
|
|
local cimport = helpers.cimport
|
|
local child_call_once = helpers.child_call_once
|
|
local child_cleanup_once = helpers.child_cleanup_once
|
|
|
|
local lib = cimport('./src/nvim/os/os.h', './src/nvim/fileio.h')
|
|
|
|
describe('tempfile related functions', function()
|
|
before_each(function()
|
|
local function vim_deltempdir()
|
|
lib.vim_deltempdir()
|
|
end
|
|
child_call_once(vim_deltempdir)
|
|
child_cleanup_once(vim_deltempdir)
|
|
end)
|
|
|
|
local vim_gettempdir = function()
|
|
return helpers.ffi.string(lib.vim_gettempdir())
|
|
end
|
|
|
|
describe('vim_gettempdir', function()
|
|
itp('returns path to Neovim own temp directory', function()
|
|
local dir = vim_gettempdir()
|
|
assert.True(dir ~= nil and dir:len() > 0)
|
|
-- os_file_is_writable returns 2 for a directory which we have rights
|
|
-- to write into.
|
|
eq(lib.os_file_is_writable(helpers.to_cstr(dir)), 2)
|
|
for entry in lfs.dir(dir) do
|
|
assert.True(entry == '.' or entry == '..')
|
|
end
|
|
end)
|
|
|
|
itp('returns the same directory on each call', function()
|
|
local dir1 = vim_gettempdir()
|
|
local dir2 = vim_gettempdir()
|
|
eq(dir1, dir2)
|
|
end)
|
|
end)
|
|
|
|
describe('vim_tempname', function()
|
|
local vim_tempname = function()
|
|
return helpers.ffi.string(lib.vim_tempname())
|
|
end
|
|
|
|
itp('generate name of non-existing file', function()
|
|
local file = vim_tempname()
|
|
assert.truthy(file)
|
|
assert.False(lib.os_path_exists(file))
|
|
end)
|
|
|
|
itp('generate different names on each call', function()
|
|
local fst = vim_tempname()
|
|
local snd = vim_tempname()
|
|
neq(fst, snd)
|
|
end)
|
|
|
|
itp('generate file name in Neovim own temp directory', function()
|
|
local dir = vim_gettempdir()
|
|
local file = vim_tempname()
|
|
eq(string.sub(file, 1, string.len(dir)), dir)
|
|
end)
|
|
end)
|
|
end)
|