mirror of
https://github.com/neovim/neovim.git
synced 2025-11-21 09:36:29 +00:00
test: 'nofsync' with deadly signal #26415
Problem:
The test for 'nofsync' swapfile preservation on a deadly signal, does
not actually assert anything.
followup to 1fd29a2884
Solution:
Check that swapfile contents are present after getting SIGTERM.
TODO: this doesn't really verify that 'fsync' was called; it still
passes with this patch:
diff --git a/src/nvim/main.c b/src/nvim/main.c
index 216e39f3e81c..7a635520401d 100644
--- a/src/nvim/main.c
+++ b/src/nvim/main.c
@@ -838,7 +838,7 @@ void preserve_exit(const char *errmsg)
if (errmsg != NULL) {
os_errmsg("Vim: preserving files...\r\n");
}
- ml_sync_all(false, false, true); // preserve all swap files
+ ml_sync_all(false, false, false); // preserve all swap files
break;
}
}
However it correctly fails with this patch, at least:
diff --git a/src/nvim/main.c b/src/nvim/main.c
index 216e39f3e81c..f2306c310ddc 100644
--- a/src/nvim/main.c
+++ b/src/nvim/main.c
@@ -838,7 +838,6 @@ void preserve_exit(const char *errmsg)
if (errmsg != NULL) {
os_errmsg("Vim: preserving files...\r\n");
}
- ml_sync_all(false, false, true); // preserve all swap files
break;
}
}
This commit is contained in:
@@ -438,7 +438,7 @@ function module.connect(file_or_address)
|
||||
return Session.new(stream)
|
||||
end
|
||||
|
||||
-- Starts a new global Nvim session.
|
||||
-- Starts (and returns) a new global Nvim session.
|
||||
--
|
||||
-- Parameters are interpreted as startup args, OR a map with these keys:
|
||||
-- args: List: Args appended to the default `nvim_argv` set.
|
||||
@@ -452,6 +452,7 @@ end
|
||||
-- clear{args={'-e'}, args_rm={'-i'}, env={TERM=term}}
|
||||
function module.clear(...)
|
||||
module.set_session(module.spawn_argv(false, ...))
|
||||
return module.get_session()
|
||||
end
|
||||
|
||||
-- same params as clear, but does returns the session instead
|
||||
@@ -943,7 +944,7 @@ function module.add_builddir_to_rtp()
|
||||
module.command(string.format([[set rtp+=%s/runtime]], module.test_build_dir))
|
||||
end
|
||||
|
||||
-- Kill process with given pid
|
||||
-- Kill (reap) a process by PID.
|
||||
function module.os_kill(pid)
|
||||
return os.execute((is_os('win')
|
||||
and 'taskkill /f /t /pid '..pid..' > nul'
|
||||
|
||||
Reference in New Issue
Block a user