mirror of
				https://github.com/neovim/neovim.git
				synced 2025-10-26 04:17:01 +00:00 
			
		
		
		
	fix(tests): indicate in test logs when nvim exit times out
When it happens it wastes 2 seconds which is NOT included in the normal busted timing info. It is hard to correct this, but we can at least print a warning when this happens.
This commit is contained in:
		| @@ -21,13 +21,15 @@ local function man_system(cmd, silent) | ||||
|   local done = false | ||||
|   local exit_code | ||||
|  | ||||
|   local handle = vim.loop.spawn(cmd[1], { | ||||
|   local handle | ||||
|   handle = vim.loop.spawn(cmd[1], { | ||||
|     args = vim.list_slice(cmd, 2), | ||||
|     stdio = { nil, stdout, stderr }, | ||||
|   }, function(code) | ||||
|     exit_code = code | ||||
|     stdout:close() | ||||
|     stderr:close() | ||||
|     handle:close() | ||||
|     done = true | ||||
|   end) | ||||
|  | ||||
| @@ -52,7 +54,7 @@ local function man_system(cmd, silent) | ||||
|  | ||||
|   if not done then | ||||
|     if handle then | ||||
|       vim.loop.shutdown(handle) | ||||
|       handle:close() | ||||
|       stdout:close() | ||||
|       stderr:close() | ||||
|     end | ||||
|   | ||||
| @@ -1,3 +1,5 @@ | ||||
| return function (val, res) | ||||
|   vim.loop.new_async(function() _G[res] = require'leftpad'(val) end):send() | ||||
|   local handle | ||||
|   handle = vim.loop.new_async(function() _G[res] = require'leftpad'(val) handle:close() end) | ||||
|   handle:send() | ||||
| end | ||||
|   | ||||
| @@ -380,10 +380,23 @@ local function remove_args(args, args_rm) | ||||
|   return new_args | ||||
| end | ||||
|  | ||||
| function module.check_close(old_session) | ||||
|   local start_time = luv.now() | ||||
|   old_session:close() | ||||
|   luv.update_time()  -- Update cached value of luv.now() (libuv: uv_now()). | ||||
|   local end_time = luv.now() | ||||
|   local delta = end_time - start_time | ||||
|   if delta > 500 then | ||||
|     print("nvim took " .. delta .. " milliseconds to exit after last test\n".. | ||||
|           "This indicates a likely problem with the test even if it passed!\n") | ||||
|     io.stdout:flush() | ||||
|   end | ||||
| end | ||||
|  | ||||
| --- @param io_extra used for stdin_fd, see :help ui-option | ||||
| function module.spawn(argv, merge, env, keep, io_extra) | ||||
|   if session and not keep then | ||||
|     session:close() | ||||
|     module.check_close(session) | ||||
|   end | ||||
|  | ||||
|   local child_stream = ChildProcessStream.spawn( | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 bfredl
					bfredl