commit 76db55c13797c933532dc685d12194bc311439f8
parent ea3942f222789c0ad16befc61071f883052d8099
Author: zeertzjq <zeertzjq@outlook.com>
Date: Thu, 19 Feb 2026 14:30:26 +0800
test(ex_cmds/write_spec): don't create files under test/ (#37963)
Diffstat:
2 files changed, 50 insertions(+), 55 deletions(-)
diff --git a/test/functional/ex_cmds/write_spec.lua b/test/functional/ex_cmds/write_spec.lua
@@ -19,15 +19,10 @@ local fname_broken = fname_bak .. 'broken'
describe(':write', function()
local function cleanup()
- os.remove('test_bkc_file.txt')
- os.remove('test_bkc_link.txt')
- os.remove('test_fifo')
- os.remove('test/write/p_opt.txt')
- os.remove('test/write')
- os.remove('test/write2/p_opt.txt')
- os.remove('test/write2/p_opt2.txt')
- os.remove('test/write2')
- os.remove('test')
+ n.rmdir('Xtest_write')
+ os.remove('Xtest_bkc_file.txt')
+ os.remove('Xtest_bkc_link.txt')
+ os.remove('Xtest_fifo')
os.remove(fname)
os.remove(fname_bak)
os.remove(fname_broken)
@@ -42,43 +37,43 @@ describe(':write', function()
it('&backupcopy=auto preserves symlinks', function()
command('set backupcopy=auto')
- write_file('test_bkc_file.txt', 'content0')
+ write_file('Xtest_bkc_file.txt', 'content0')
if is_os('win') then
- command('silent !mklink test_bkc_link.txt test_bkc_file.txt')
+ command('silent !mklink Xtest_bkc_link.txt Xtest_bkc_file.txt')
else
- command('silent !ln -s test_bkc_file.txt test_bkc_link.txt')
+ command('silent !ln -s Xtest_bkc_file.txt Xtest_bkc_link.txt')
end
if eval('v:shell_error') ~= 0 then
pending('Cannot create symlink')
end
source([[
- edit test_bkc_link.txt
+ edit Xtest_bkc_link.txt
call setline(1, ['content1'])
write
]])
- eq(eval("['content1']"), eval("readfile('test_bkc_file.txt')"))
- eq(eval("['content1']"), eval("readfile('test_bkc_link.txt')"))
+ eq(eval("['content1']"), eval("readfile('Xtest_bkc_file.txt')"))
+ eq(eval("['content1']"), eval("readfile('Xtest_bkc_link.txt')"))
end)
it('&backupcopy=no replaces symlink with new file', function()
skip(is_ci('cirrus'))
command('set backupcopy=no')
- write_file('test_bkc_file.txt', 'content0')
+ write_file('Xtest_bkc_file.txt', 'content0')
if is_os('win') then
- command('silent !mklink test_bkc_link.txt test_bkc_file.txt')
+ command('silent !mklink Xtest_bkc_link.txt Xtest_bkc_file.txt')
else
- command('silent !ln -s test_bkc_file.txt test_bkc_link.txt')
+ command('silent !ln -s Xtest_bkc_file.txt Xtest_bkc_link.txt')
end
if eval('v:shell_error') ~= 0 then
pending('Cannot create symlink')
end
source([[
- edit test_bkc_link.txt
+ edit Xtest_bkc_link.txt
call setline(1, ['content1'])
write
]])
- eq(eval("['content0']"), eval("readfile('test_bkc_file.txt')"))
- eq(eval("['content1']"), eval("readfile('test_bkc_link.txt')"))
+ eq(eval("['content0']"), eval("readfile('Xtest_bkc_file.txt')"))
+ eq(eval("['content1']"), eval("readfile('Xtest_bkc_link.txt')"))
end)
it('appends FIFO file', function()
@@ -88,14 +83,14 @@ describe(':write', function()
end
local text = 'some fifo text from write_spec'
- assert(os.execute('mkfifo test_fifo'))
+ assert(os.execute('mkfifo Xtest_fifo'))
insert(text)
-- Blocks until a consumer reads the FIFO.
- feed_command('write >> test_fifo')
+ feed_command('write >> Xtest_fifo')
-- Read the FIFO, this will unblock the :write above.
- local fifo = assert(io.open('test_fifo'))
+ local fifo = assert(io.open('Xtest_fifo'))
eq(text .. '\n', fifo:read('*all'))
fifo:close()
end)
@@ -111,26 +106,26 @@ describe(':write', function()
eq(1, eval("filereadable('p_opt.txt')"))
os.remove('p_opt.txt')
- eq(0, eval("filereadable('test/write/p_opt.txt')"))
- command('write ++p test/write/p_opt.txt')
- eq(1, eval("filereadable('test/write/p_opt.txt')"))
+ eq(0, eval("filereadable('Xtest_write/write/p_opt.txt')"))
+ command('write ++p Xtest_write/write/p_opt.txt')
+ eq(1, eval("filereadable('Xtest_write/write/p_opt.txt')"))
- eq(0, eval("filereadable('test/write2/p_opt.txt')"))
- eq(0, eval("filereadable('test/write2/p_opt2.txt')"))
- eq(0, eval("filereadable('test/write3/p_opt3.txt')"))
- command('file test/write2/p_opt.txt')
+ eq(0, eval("filereadable('Xtest_write/write2/p_opt.txt')"))
+ eq(0, eval("filereadable('Xtest_write/write2/p_opt2.txt')"))
+ eq(0, eval("filereadable('Xtest_write/write3/p_opt3.txt')"))
+ command('file Xtest_write/write2/p_opt.txt')
command('set modified')
- command('sp test/write2/p_opt2.txt')
+ command('sp Xtest_write/write2/p_opt2.txt')
command('set modified')
- command('sp test/write3/p_opt3.txt')
+ command('sp Xtest_write/write3/p_opt3.txt')
-- don't set p_opt3.txt modified - assert it isn't written
-- and that write3/ isn't created
command('wall ++p')
- eq(1, eval("filereadable('test/write2/p_opt.txt')"))
- eq(1, eval("filereadable('test/write2/p_opt2.txt')"))
- eq(0, eval("filereadable('test/write3/p_opt3.txt')"))
+ eq(1, eval("filereadable('Xtest_write/write2/p_opt.txt')"))
+ eq(1, eval("filereadable('Xtest_write/write2/p_opt2.txt')"))
+ eq(0, eval("filereadable('Xtest_write/write3/p_opt3.txt')"))
- eq('Vim(write):E32: No file name', pcall_err(command, 'write ++p test_write/'))
+ eq('Vim(write):E32: No file name', pcall_err(command, 'write ++p Xotherdir/'))
if not is_os('win') then
eq(
('Vim(write):E17: "' .. fn.fnamemodify('.', ':p:h') .. '" is a directory'),
@@ -280,27 +275,27 @@ end)
describe(':update', function()
before_each(function()
clear()
- fn.mkdir('test_dir', 'p')
+ fn.mkdir('Xtest_update', 'p')
end)
after_each(function()
- fn.delete('test_dir', 'rf')
+ fn.delete('Xtest_update', 'rf')
end)
it('works for a new buffer', function()
- command('edit test_dir/foo/bar/nonexist.taz | update ++p')
- eq(1, eval("filereadable('test_dir/foo/bar/nonexist.taz')"))
+ command('edit Xtest_update/foo/bar/nonexist.taz | update ++p')
+ eq(1, eval("filereadable('Xtest_update/foo/bar/nonexist.taz')"))
end)
it('writes modified buffer', function()
- command('edit test_dir/modified.txt')
+ command('edit Xtest_update/modified.txt')
command('call setline(1, "hello world")')
command('update')
- eq({ 'hello world' }, fn.readfile('test_dir/modified.txt'))
+ eq({ 'hello world' }, fn.readfile('Xtest_update/modified.txt'))
end)
it('does not write unmodified existing file', function()
- local filename = 'test_dir/existing.txt'
+ local filename = 'Xtest_update/existing.txt'
local fd = io.open(filename, 'w')
fd:write('content')
fd:close()
@@ -311,10 +306,10 @@ describe(':update', function()
end)
it('creates parent directories with ++p', function()
- command('edit test_dir/deep/nested/path/file.txt')
+ command('edit Xtest_update/deep/nested/path/file.txt')
command('call setline(1, "content")')
command('update ++p')
- eq(1, eval("filereadable('test_dir/deep/nested/path/file.txt')"))
+ eq(1, eval("filereadable('Xtest_update/deep/nested/path/file.txt')"))
end)
it('fails gracefully for unnamed buffer', function()
@@ -324,7 +319,7 @@ describe(':update', function()
end)
it('respects readonly files', function()
- local filename = 'test_dir/readonly.txt'
+ local filename = 'Xtest_update/readonly.txt'
local fd = io.open(filename, 'w')
fd:write('readonly content')
fd:close()
@@ -337,33 +332,33 @@ describe(':update', function()
)
command('update!')
- eq({ 'modified' }, fn.readfile('test_dir/readonly.txt'))
+ eq({ 'modified' }, fn.readfile('Xtest_update/readonly.txt'))
end)
it('can write line ranges', function()
- command('edit test_dir/range.txt')
+ command('edit Xtest_update/range.txt')
command('call setline(1, ["line1", "line2", "line3", "line4"])')
command('2,3update!')
- eq({ 'line2', 'line3' }, fn.readfile('test_dir/range.txt'))
+ eq({ 'line2', 'line3' }, fn.readfile('Xtest_update/range.txt'))
end)
it('can append to existing file', function()
- local filename = 'test_dir/append.txt'
+ local filename = 'Xtest_update/append.txt'
local fd = io.open(filename, 'w')
fd:write('existing\n')
fd:close()
- command('edit test_dir/new_content.txt')
+ command('edit Xtest_update/new_content.txt')
command('call setline(1, "new content")')
command('update >> ' .. filename)
- eq({ 'existing', 'new content' }, fn.readfile('test_dir/append.txt'))
+ eq({ 'existing', 'new content' }, fn.readfile('Xtest_update/append.txt'))
end)
it('triggers autocmds properly', function()
command('autocmd BufWritePre * let g:write_pre = 1')
command('autocmd BufWritePost * let g:write_post = 1')
- command('edit test_dir/autocmd.txt')
+ command('edit Xtest_update/autocmd.txt')
command('call setline(1, "trigger autocmds")')
command('update')
diff --git a/test/functional/testnvim.lua b/test/functional/testnvim.lua
@@ -18,7 +18,7 @@ local sleep = uv.sleep
--- Functions executing in the current nvim session/process being tested.
local M = {}
-local lib_path = t.is_zig_build() and './zig-out/lib' or './build/lib/nvim/'
+local lib_path = t.paths.test_build_dir .. (t.is_zig_build() and '/lib' or '/lib/nvim')
M.runtime_set = 'set runtimepath^=' .. lib_path
M.nvim_prog = (os.getenv('NVIM_PRG') or t.paths.test_build_dir .. '/bin/nvim')