aboutsummaryrefslogtreecommitdiff
path: root/test/runner.lua
diff options
context:
space:
mode:
authorJustin M. Keyes <justinkz@gmail.com>2026-08-25 14:15:48 -0400
committerGitHub <noreply@github.com>2026-08-25 14:15:48 -0400
commit604bda445ac48af6871d9259e10038944ea90e06 (patch)
tree2c914ae3c30f422c00cbb9e5d93db8f226eb4c4a /test/runner.lua
parentaae43789d7d857bfdd6462520d0c3a6cc6129d07 (diff)
downloadrneovim-604bda445ac48af6871d9259e10038944ea90e06.tar.gz
rneovim-604bda445ac48af6871d9259e10038944ea90e06.tar.bz2
rneovim-604bda445ac48af6871d9259e10038944ea90e06.zip
test(harness): avoid overlong socket filename #41488
Problem: Test sockets live under `$TMPDIR`, which the harness points at the build dir. On macOS/BSD `sockaddr_un.sun_path` is 104 bytes, and a CI build path plus "nvim.<pid>.<n>" leaves little room: /Users/runner/work/neovim/neovim/build/Xtest_tmpdir_terminal/nvim.runner/aBcDeF/nvim.12345.0 Solution: Point XDG_RUNTIME_DIR (`stdpath('run')`) at "/tmp/nvim_<pid>". 28 bytes: /tmp/nvim_19916/nvim.19919.1 TODO?: - `TEMP_DIR_NAMES` prefers `$TMPDIR` over `/tmp`, so on macOS `stdpath('run')` defaults to the long `/var/folders/<xx>/<…>/T/` path instead of the short `/tmp` alias. Note: - The 104-byte limit applies to the `bind()` arg, not its "realpath", to, so `/tmp/…` symlinks can be used to workaround the limit.
Diffstat (limited to 'test/runner.lua')
-rw-r--r--test/runner.lua6
1 files changed, 6 insertions, 0 deletions
diff --git a/test/runner.lua b/test/runner.lua
index d42309bb62..23068a511d 100644
--- a/test/runner.lua
+++ b/test/runner.lua
@@ -38,6 +38,12 @@ if _G.arg[1] and vim.startswith(_G.arg[1], '-X') then
vim.env.XDG_CONFIG_HOME = xdg_dir .. '/config'
vim.env.XDG_DATA_HOME = xdg_dir .. '/share'
vim.env.XDG_STATE_HOME = xdg_dir .. '/state'
+ if vim.fn.has('win32') == 0 then
+ -- Socket dir (stdpath("run")), deliberately NOT in the build dir. sockaddr_un.sun_path is 104
+ -- bytes on macOS/BSD, "/…/build/tmp/nvim.<pid>.<n>" can exceed it. #38623
+ vim.env.XDG_RUNTIME_DIR = ('/tmp/nvim_%d'):format(vim.uv.os_getpid())
+ vim.fn.mkdir(vim.env.XDG_RUNTIME_DIR, 'p')
+ end
end
local root = repo_root()