aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/functional/ui/messages_spec.lua37
-rw-r--r--test/functional/ui/wildmode_spec.lua85
-rw-r--r--test/unit/os/fs_spec.lua147
3 files changed, 196 insertions, 73 deletions
diff --git a/test/functional/ui/messages_spec.lua b/test/functional/ui/messages_spec.lua
index 50e354a7ee..34b9ac8882 100644
--- a/test/functional/ui/messages_spec.lua
+++ b/test/functional/ui/messages_spec.lua
@@ -681,6 +681,43 @@ describe('ui/ext_messages', function()
end)
end)
+describe('ui/ext_messages', function()
+ local screen
+ before_each(function()
+ clear()
+ screen = Screen.new(25, 7)
+ screen:attach({rgb=true, ext_messages=true})
+ screen:set_default_attr_ids({
+ [1] = {bold = true, foreground = Screen.colors.Blue1},
+ [2] = {foreground = Screen.colors.Grey100, background = Screen.colors.Red},
+ [3] = {bold = true, reverse = true},
+ [4] = {bold = true, foreground = Screen.colors.SeaGreen4},
+ })
+ end)
+
+ it('wildmode=list', function()
+ command('set wildmenu wildmode=list')
+ feed(':set wildm<tab>')
+ screen:expect{grid=[[
+ ^ |
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ ]], messages={{
+ content = {{'wildmenu wildmode'}},
+ kind = '',
+ }},
+ cmdline={{
+ firstc = ':',
+ content = {{ 'set wildm' }},
+ pos = 9,
+ }}}
+ end)
+end)
+
describe('ui/builtin messages', function()
local screen
before_each(function()
diff --git a/test/functional/ui/wildmode_spec.lua b/test/functional/ui/wildmode_spec.lua
index f4b80fd428..f960b793c9 100644
--- a/test/functional/ui/wildmode_spec.lua
+++ b/test/functional/ui/wildmode_spec.lua
@@ -169,6 +169,91 @@ describe("'wildmenu'", function()
end)
end)
+describe("'wildmenu'", function()
+ local screen
+ before_each(function()
+ clear()
+ -- screen needs to be more than 5 rows
+ -- otherwise the tabline is covered and will be redrawn
+ screen = Screen.new(25, 7)
+ screen:attach()
+ end)
+ after_each(function()
+ screen:detach()
+ end)
+
+ it('wildmode=list,full and display+=msgsep interact correctly #10092', function()
+ command('set display+=msgsep')
+ command('set wildmenu wildmode=list,full')
+ command('set showtabline=2')
+ feed(':set wildm<tab>')
+ screen:expect([[
+ [No Name] |
+ |
+ ~ |
+ |
+ :set wildm |
+ wildmenu wildmode |
+ :set wildm^ |
+ ]])
+ feed('<tab>') -- trigger wildmode full
+ screen:expect([[
+ [No Name] |
+ |
+ |
+ :set wildm |
+ wildmenu wildmode |
+ wildmenu wildmode |
+ :set wildmenu^ |
+ ]])
+ feed('<Esc>')
+ screen:expect([[
+ [No Name] |
+ ^ |
+ ~ |
+ ~ |
+ ~ |
+ ~ |
+ |
+ ]])
+ end)
+
+ it('wildmode=list,full and display-=msgsep interact correctly', function()
+ command('set display-=msgsep')
+ command('set wildmenu wildmode=list,full')
+ feed(':set wildm<tab>')
+ screen:expect([[
+ ~ |
+ ~ |
+ ~ |
+ ~ |
+ :set wildm |
+ wildmenu wildmode |
+ :set wildm^ |
+ ]])
+ feed('<tab>') -- trigger wildmode full
+ screen:expect([[
+ ~ |
+ ~ |
+ ~ |
+ :set wildm |
+ wildmenu wildmode |
+ wildmenu wildmode |
+ :set wildmenu^ |
+ ]])
+ feed('<Esc>')
+ screen:expect([[
+ ^ |
+ ~ |
+ ~ |
+ ~ |
+ ~ |
+ ~ |
+ |
+ ]])
+ end)
+end)
+
describe('command line completion', function()
local screen
before_each(function()
diff --git a/test/unit/os/fs_spec.lua b/test/unit/os/fs_spec.lua
index ddb438eb3d..f1ec94ae87 100644
--- a/test/unit/os/fs_spec.lua
+++ b/test/unit/os/fs_spec.lua
@@ -860,86 +860,87 @@ describe('fs.c', function()
describe('FileInfo', function()
local function file_info_new()
- local file_info = ffi.new('FileInfo[1]')
- file_info[0].stat.st_ino = 0
- file_info[0].stat.st_dev = 0
- return file_info
+ local info = ffi.new('FileInfo[1]')
+ info[0].stat.st_ino = 0
+ info[0].stat.st_dev = 0
+ return info
end
- local function is_file_info_filled(file_info)
- return file_info[0].stat.st_ino > 0 and file_info[0].stat.st_dev > 0
+ -- Returns true if the FileInfo object has non-empty fields.
+ local function has_fileinfo(info)
+ return info[0].stat.st_ino > 0 and info[0].stat.st_dev > 0
end
local function file_id_new()
- local file_info = ffi.new('FileID[1]')
- file_info[0].inode = 0
- file_info[0].device_id = 0
- return file_info
+ local info = ffi.new('FileID[1]')
+ info[0].inode = 0
+ info[0].device_id = 0
+ return info
end
describe('os_fileinfo', function()
itp('returns false if path=NULL', function()
- local file_info = file_info_new()
- assert.is_false((fs.os_fileinfo(nil, file_info)))
+ local info = file_info_new()
+ assert.is_false((fs.os_fileinfo(nil, info)))
end)
itp('returns false if given a non-existing file', function()
- local file_info = file_info_new()
- assert.is_false((fs.os_fileinfo('/non-existent', file_info)))
+ local info = file_info_new()
+ assert.is_false((fs.os_fileinfo('/non-existent', info)))
end)
- itp('returns true if given an existing file and fills file_info', function()
- local file_info = file_info_new()
+ itp('returns true if given an existing file and fills FileInfo', function()
+ local info = file_info_new()
local path = 'unit-test-directory/test.file'
- assert.is_true((fs.os_fileinfo(path, file_info)))
- assert.is_true((is_file_info_filled(file_info)))
+ assert.is_true((fs.os_fileinfo(path, info)))
+ assert.is_true((has_fileinfo(info)))
end)
- itp('returns the file info of the linked file, not the link', function()
- local file_info = file_info_new()
+ itp('returns the FileInfo of the linked file, not the link', function()
+ local info = file_info_new()
local path = 'unit-test-directory/test_link.file'
- assert.is_true((fs.os_fileinfo(path, file_info)))
- assert.is_true((is_file_info_filled(file_info)))
- local mode = tonumber(file_info[0].stat.st_mode)
+ assert.is_true((fs.os_fileinfo(path, info)))
+ assert.is_true((has_fileinfo(info)))
+ local mode = tonumber(info[0].stat.st_mode)
return eq(ffi.C.kS_IFREG, (bit.band(mode, ffi.C.kS_IFMT)))
end)
end)
describe('os_fileinfo_link', function()
- itp('returns false if given a non-existing file', function()
- local file_info = file_info_new()
- assert.is_false((fs.os_fileinfo_link('/non-existent', file_info)))
+ itp('returns false for non-existing file', function()
+ local info = file_info_new()
+ assert.is_false((fs.os_fileinfo_link('/non-existent', info)))
end)
- itp('returns true if given an existing file and fills file_info', function()
- local file_info = file_info_new()
+ itp('returns true and fills FileInfo for existing file', function()
+ local info = file_info_new()
local path = 'unit-test-directory/test.file'
- assert.is_true((fs.os_fileinfo_link(path, file_info)))
- assert.is_true((is_file_info_filled(file_info)))
+ assert.is_true((fs.os_fileinfo_link(path, info)))
+ assert.is_true((has_fileinfo(info)))
end)
- itp('returns the file info of the link, not the linked file', function()
- local file_info = file_info_new()
- local path = 'unit-test-directory/test_link.file'
- assert.is_true((fs.os_fileinfo_link(path, file_info)))
- assert.is_true((is_file_info_filled(file_info)))
- local mode = tonumber(file_info[0].stat.st_mode)
+ itp('returns FileInfo of the link, not its target', function()
+ local info = file_info_new()
+ local link = 'unit-test-directory/test_link.file'
+ assert.is_true((fs.os_fileinfo_link(link, info)))
+ assert.is_true((has_fileinfo(info)))
+ local mode = tonumber(info[0].stat.st_mode)
eq(ffi.C.kS_IFLNK, (bit.band(mode, ffi.C.kS_IFMT)))
end)
end)
describe('os_fileinfo_fd', function()
itp('returns false if given an invalid file descriptor', function()
- local file_info = file_info_new()
- assert.is_false((fs.os_fileinfo_fd(-1, file_info)))
+ local info = file_info_new()
+ assert.is_false((fs.os_fileinfo_fd(-1, info)))
end)
- itp('returns true if given a file descriptor and fills file_info', function()
- local file_info = file_info_new()
+ itp('returns true if given a file descriptor and fills FileInfo', function()
+ local info = file_info_new()
local path = 'unit-test-directory/test.file'
local fd = ffi.C.open(path, 0)
- assert.is_true((fs.os_fileinfo_fd(fd, file_info)))
- assert.is_true((is_file_info_filled(file_info)))
+ assert.is_true((fs.os_fileinfo_fd(fd, info)))
+ assert.is_true((has_fileinfo(info)))
ffi.C.close(fd)
end)
end)
@@ -976,24 +977,24 @@ describe('fs.c', function()
end)
describe('os_fileinfo_id', function()
- itp('extracts ino/dev from file_info into file_id', function()
- local file_info = file_info_new()
+ itp('extracts ino/dev from FileInfo into file_id', function()
+ local info = file_info_new()
local file_id = file_id_new()
local path = 'unit-test-directory/test.file'
- assert.is_true((fs.os_fileinfo(path, file_info)))
- fs.os_fileinfo_id(file_info, file_id)
- eq(file_info[0].stat.st_ino, file_id[0].inode)
- eq(file_info[0].stat.st_dev, file_id[0].device_id)
+ assert.is_true((fs.os_fileinfo(path, info)))
+ fs.os_fileinfo_id(info, file_id)
+ eq(info[0].stat.st_ino, file_id[0].inode)
+ eq(info[0].stat.st_dev, file_id[0].device_id)
end)
end)
describe('os_fileinfo_inode', function()
- itp('returns the inode from file_info', function()
- local file_info = file_info_new()
+ itp('returns the inode from FileInfo', function()
+ local info = file_info_new()
local path = 'unit-test-directory/test.file'
- assert.is_true((fs.os_fileinfo(path, file_info)))
- local inode = fs.os_fileinfo_inode(file_info)
- eq(file_info[0].stat.st_ino, inode)
+ assert.is_true((fs.os_fileinfo(path, info)))
+ local inode = fs.os_fileinfo_inode(info)
+ eq(info[0].stat.st_ino, inode)
end)
end)
@@ -1005,9 +1006,9 @@ describe('fs.c', function()
file:flush()
file:close()
local size = lfs.attributes(path, 'size')
- local file_info = file_info_new()
- assert.is_true(fs.os_fileinfo(path, file_info))
- eq(size, fs.os_fileinfo_size(file_info))
+ local info = file_info_new()
+ assert.is_true(fs.os_fileinfo(path, info))
+ eq(size, fs.os_fileinfo_size(info))
end)
end)
@@ -1015,12 +1016,12 @@ describe('fs.c', function()
itp('returns the correct number of hardlinks', function()
local path = 'unit-test-directory/test.file'
local path_link = 'unit-test-directory/test_hlink.file'
- local file_info = file_info_new()
- assert.is_true(fs.os_fileinfo(path, file_info))
- eq(1, fs.os_fileinfo_hardlinks(file_info))
+ local info = file_info_new()
+ assert.is_true(fs.os_fileinfo(path, info))
+ eq(1, fs.os_fileinfo_hardlinks(info))
lfs.link(path, path_link)
- assert.is_true(fs.os_fileinfo(path, file_info))
- eq(2, fs.os_fileinfo_hardlinks(file_info))
+ assert.is_true(fs.os_fileinfo(path, info))
+ eq(2, fs.os_fileinfo_hardlinks(info))
end)
end)
@@ -1032,15 +1033,15 @@ describe('fs.c', function()
-- https://github.com/keplerproject/luafilesystem/pull/44
-- using this workaround for now:
local blksize = lfs.attributes(path).blksize
- local file_info = file_info_new()
- assert.is_true(fs.os_fileinfo(path, file_info))
+ local info = file_info_new()
+ assert.is_true(fs.os_fileinfo(path, info))
if blksize then
- eq(blksize, fs.os_fileinfo_blocksize(file_info))
+ eq(blksize, fs.os_fileinfo_blocksize(info))
else
-- luafs dosn't support blksize on windows
-- libuv on windows returns a constant value as blocksize
-- checking for this constant value should be enough
- eq(2048, fs.os_fileinfo_blocksize(file_info))
+ eq(2048, fs.os_fileinfo_blocksize(info))
end
end)
end)
@@ -1080,23 +1081,23 @@ describe('fs.c', function()
end)
describe('os_fileid_equal_fileinfo', function()
- itp('returns true if file_id and file_info represent the same file', function()
+ itp('returns true if file_id and FileInfo represent the same file', function()
local file_id = file_id_new()
- local file_info = file_info_new()
+ local info = file_info_new()
local path = 'unit-test-directory/test.file'
assert.is_true((fs.os_fileid(path, file_id)))
- assert.is_true((fs.os_fileinfo(path, file_info)))
- assert.is_true((fs.os_fileid_equal_fileinfo(file_id, file_info)))
+ assert.is_true((fs.os_fileinfo(path, info)))
+ assert.is_true((fs.os_fileid_equal_fileinfo(file_id, info)))
end)
- itp('returns false if file_id and file_info represent different files', function()
+ itp('returns false if file_id and FileInfo represent different files', function()
local file_id = file_id_new()
- local file_info = file_info_new()
+ local info = file_info_new()
local path_1 = 'unit-test-directory/test.file'
local path_2 = 'unit-test-directory/test_2.file'
assert.is_true((fs.os_fileid(path_1, file_id)))
- assert.is_true((fs.os_fileinfo(path_2, file_info)))
- assert.is_false((fs.os_fileid_equal_fileinfo(file_id, file_info)))
+ assert.is_true((fs.os_fileinfo(path_2, info)))
+ assert.is_false((fs.os_fileid_equal_fileinfo(file_id, info)))
end)
end)
end)