aboutsummaryrefslogtreecommitdiff
path: root/test/client/uv_stream.lua
diff options
context:
space:
mode:
authorLewis Russell <lewis6991@gmail.com>2024-01-15 19:49:08 +0000
committerLewis Russell <lewis6991@gmail.com>2024-01-17 10:10:17 +0000
commit26835d8d9cf1312d2851b191fe859c6f62d9d9d4 (patch)
treef2dd9bf5c2283a62a91c67372f2cebd454c6c0a2 /test/client/uv_stream.lua
parent5a16d08a6389596c89691b45b06121b4814a089f (diff)
downloadrneovim-26835d8d9cf1312d2851b191fe859c6f62d9d9d4.tar.gz
rneovim-26835d8d9cf1312d2851b191fe859c6f62d9d9d4.tar.bz2
rneovim-26835d8d9cf1312d2851b191fe859c6f62d9d9d4.zip
test: add type annotations
Diffstat (limited to 'test/client/uv_stream.lua')
-rw-r--r--test/client/uv_stream.lua36
1 files changed, 31 insertions, 5 deletions
diff --git a/test/client/uv_stream.lua b/test/client/uv_stream.lua
index 9e9a69e0a1..0540c44eb2 100644
--- a/test/client/uv_stream.lua
+++ b/test/client/uv_stream.lua
@@ -1,18 +1,28 @@
local uv = vim.uv
+--- @class test.Stream
+--- @field write fun(self, data: string|string[])
+--- @field read_start fun(self, cb: fun(chunk: string))
+--- @field read_stop fun(self)
+--- @field close fun(self, signal?: string)
+
+--- @class vim.StdioStream : test.Stream
+--- @field private _in uv.uv_pipe_t
+--- @field private _out uv.uv_pipe_t
local StdioStream = {}
StdioStream.__index = StdioStream
function StdioStream.open()
local self = setmetatable({
- _in = uv.new_pipe(false),
- _out = uv.new_pipe(false),
+ _in = assert(uv.new_pipe(false)),
+ _out = assert(uv.new_pipe(false)),
}, StdioStream)
self._in:open(0)
self._out:open(1)
return self
end
+--- @param data string|string[]
function StdioStream:write(data)
self._out:write(data)
end
@@ -35,11 +45,14 @@ function StdioStream:close()
self._out:close()
end
+--- @class test.SocketStream : test.Stream
+--- @field package _stream_error? string
+--- @field package _socket uv.uv_pipe_t
local SocketStream = {}
SocketStream.__index = SocketStream
function SocketStream.open(file)
- local socket = uv.new_pipe(false)
+ local socket = assert(uv.new_pipe(false))
local self = setmetatable({
_socket = socket,
_stream_error = nil,
@@ -51,7 +64,7 @@ function SocketStream.open(file)
end
function SocketStream.connect(host, port)
- local socket = uv.new_tcp()
+ local socket = assert(uv.new_tcp())
local self = setmetatable({
_socket = socket,
_stream_error = nil,
@@ -96,9 +109,20 @@ function SocketStream:close()
uv.close(self._socket)
end
+--- @class test.ChildProcessStream : test.Stream
+--- @field private _proc uv.uv_process_t
+--- @field private _pid integer
+--- @field private _child_stdin uv.uv_pipe_t
+--- @field private _child_stdout uv.uv_pipe_t
+--- @field status integer
+--- @field signal integer
local ChildProcessStream = {}
ChildProcessStream.__index = ChildProcessStream
+--- @param argv string[]
+--- @param env string[]?
+--- @param io_extra uv.uv_pipe_t?
+--- @return test.ChildProcessStream
function ChildProcessStream.spawn(argv, env, io_extra)
local self = setmetatable({
_child_stdin = uv.new_pipe(false),
@@ -106,13 +130,15 @@ function ChildProcessStream.spawn(argv, env, io_extra)
_exiting = false,
}, ChildProcessStream)
local prog = argv[1]
- local args = {}
+ local args = {} --- @type string[]
for i = 2, #argv do
args[#args + 1] = argv[i]
end
+ --- @diagnostic disable-next-line:missing-fields
self._proc, self._pid = uv.spawn(prog, {
stdio = { self._child_stdin, self._child_stdout, 2, io_extra },
args = args,
+ --- @diagnostic disable-next-line:assign-type-mismatch
env = env,
}, function(status, signal)
self.status = status