mirror of
https://github.com/ziglang/zig.git
synced 2026-02-21 16:54:52 +00:00
std: Add a small test for i/o on unix sockets
This commit is contained in:
parent
89d6317b93
commit
676d7fc63c
@ -165,6 +165,7 @@ test "listen on a port, send bytes, receive bytes" {
|
||||
defer t.wait();
|
||||
|
||||
var client = try server.accept();
|
||||
defer client.stream.close();
|
||||
var buf: [16]u8 = undefined;
|
||||
const n = try client.stream.reader().read(&buf);
|
||||
|
||||
@ -252,3 +253,37 @@ fn testServer(server: *net.StreamServer) anyerror!void {
|
||||
const stream = client.stream.writer();
|
||||
try stream.print("hello from server\n", .{});
|
||||
}
|
||||
|
||||
test "listen on a unix socket, send bytes, receive bytes" {
|
||||
if (builtin.single_threaded) return error.SkipZigTest;
|
||||
if (!net.has_unix_sockets) return error.SkipZigTest;
|
||||
|
||||
var server = net.StreamServer.init(.{});
|
||||
defer server.deinit();
|
||||
|
||||
const socket_path = "socket.unix";
|
||||
|
||||
var socket_addr = try net.Address.initUnix(socket_path);
|
||||
defer std.fs.cwd().deleteFile(socket_path) catch {};
|
||||
try server.listen(socket_addr);
|
||||
|
||||
const S = struct {
|
||||
fn clientFn(_: void) !void {
|
||||
const socket = try net.connectUnixSocket(socket_path);
|
||||
defer socket.close();
|
||||
|
||||
_ = try socket.writer().writeAll("Hello world!");
|
||||
}
|
||||
};
|
||||
|
||||
const t = try std.Thread.spawn({}, S.clientFn);
|
||||
defer t.wait();
|
||||
|
||||
var client = try server.accept();
|
||||
defer client.stream.close();
|
||||
var buf: [16]u8 = undefined;
|
||||
const n = try client.stream.reader().read(&buf);
|
||||
|
||||
testing.expectEqual(@as(usize, 12), n);
|
||||
testing.expectEqualSlices(u8, "Hello world!", buf[0..n]);
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user