authorgravatar for thatlemon@gmail.comLemonBoy <thatlemon@gmail.com> 2020-11-21 21:06:55+01:00
committergravatar for thatlemon@gmail.comLemonBoy <thatlemon@gmail.com> 2021-01-11 21:43:13+01:00
log676d7fc63c057d24a3cbaa30b786e63de6f40d4a
treec543168c31b06268444b7daf5143577e7f133a2c
parent89d6317b93bbe5aac00c6af5833b3e74211ab37f

std: Add a small test for i/o on unix sockets


1 files changed, 35 insertions(+), 0 deletions(-)

lib/std/net/test.zig+35
......@@ -165,6 +165,7 @@ test "listen on a port, send bytes, receive bytes" {
165165 defer t.wait();
166166
167167 var client = try server.accept();
168 defer client.stream.close();
168169 var buf: [16]u8 = undefined;
169170 const n = try client.stream.reader().read(&buf);
170171
......@@ -252,3 +253,37 @@ fn testServer(server: *net.StreamServer) anyerror!void {
252253 const stream = client.stream.writer();
253254 try stream.print("hello from server\n", .{});
254255}
256
257test "listen on a unix socket, send bytes, receive bytes" {
258 if (builtin.single_threaded) return error.SkipZigTest;
259 if (!net.has_unix_sockets) return error.SkipZigTest;
260
261 var server = net.StreamServer.init(.{});
262 defer server.deinit();
263
264 const socket_path = "socket.unix";
265
266 var socket_addr = try net.Address.initUnix(socket_path);
267 defer std.fs.cwd().deleteFile(socket_path) catch {};
268 try server.listen(socket_addr);
269
270 const S = struct {
271 fn clientFn(_: void) !void {
272 const socket = try net.connectUnixSocket(socket_path);
273 defer socket.close();
274
275 _ = try socket.writer().writeAll("Hello world!");
276 }
277 };
278
279 const t = try std.Thread.spawn({}, S.clientFn);
280 defer t.wait();
281
282 var client = try server.accept();
283 defer client.stream.close();
284 var buf: [16]u8 = undefined;
285 const n = try client.stream.reader().read(&buf);
286
287 testing.expectEqual(@as(usize, 12), n);
288 testing.expectEqualSlices(u8, "Hello world!", buf[0..n]);
289}