aboutsummaryrefslogtreecommitdiff
path: root/test/testutil.lua
diff options
context:
space:
mode:
authorJustin M. Keyes <justinkz@gmail.com>2024-09-08 21:29:20 +0200
committerJustin M. Keyes <justinkz@gmail.com>2024-09-09 12:23:54 +0200
commited832b9ddf45705abe9d7f4a50cedc27072c8e16 (patch)
treedaea0210246a4cd204ee89e9850c93cbf054f1f3 /test/testutil.lua
parent8a2aec99748229ad9d1e12c1cbc0768d063e8eed (diff)
downloadrneovim-ed832b9ddf45705abe9d7f4a50cedc27072c8e16.tar.gz
rneovim-ed832b9ddf45705abe9d7f4a50cedc27072c8e16.tar.bz2
rneovim-ed832b9ddf45705abe9d7f4a50cedc27072c8e16.zip
refactor(test): rename alter_slashes, invert its behavior
- `alter_slashes` belongs in `testutil.lua`, not `testnvim.lua`. - `alter_slashes` is an unusual name. Rename it to `fix_slashes`. - invert its behavior, to emphasize that `/` slashes are the preferred, pervasive convention, not `\` slashes.
Diffstat (limited to 'test/testutil.lua')
-rw-r--r--test/testutil.lua23
1 files changed, 23 insertions, 0 deletions
diff --git a/test/testutil.lua b/test/testutil.lua
index 19e297c503..02f343891d 100644
--- a/test/testutil.lua
+++ b/test/testutil.lua
@@ -42,6 +42,29 @@ function M.isdir(path)
return stat.type == 'directory'
end
+--- (Only on Windows) Replaces yucky "\\" slashes with delicious "/" slashes in a string, or all
+--- string values in a table (recursively).
+---
+--- @param obj string|table
+--- @return any
+function M.fix_slashes(obj)
+ if not M.is_os('win') then
+ return obj
+ end
+ if type(obj) == 'string' then
+ local ret = obj:gsub('\\', '/')
+ return ret
+ elseif type(obj) == 'table' then
+ --- @cast obj table<any,any>
+ local ret = {} --- @type table<any,any>
+ for k, v in pairs(obj) do
+ ret[k] = M.fix_slashes(v)
+ end
+ return ret
+ end
+ assert(false, 'expected string or table of strings, got ' .. type(obj))
+end
+
--- @param ... string|string[]
--- @return string
function M.argss_to_cmd(...)