| ... | @@ -165,6 +165,7 @@ test "listen on a port, send bytes, receive bytes" { | ... | @@ -165,6 +165,7 @@ test "listen on a port, send bytes, receive bytes" { |
| 165 | defer t.wait(); | 165 | defer t.wait(); |
| 166 | | 166 | |
| 167 | var client = try server.accept(); | 167 | var client = try server.accept(); |
| | 168 | defer client.stream.close(); |
| 168 | var buf: [16]u8 = undefined; | 169 | var buf: [16]u8 = undefined; |
| 169 | const n = try client.stream.reader().read(&buf); | 170 | const n = try client.stream.reader().read(&buf); |
| 170 | | 171 | |
| ... | @@ -252,3 +253,37 @@ fn testServer(server: *net.StreamServer) anyerror!void { | ... | @@ -252,3 +253,37 @@ fn testServer(server: *net.StreamServer) anyerror!void { |
| 252 | const stream = client.stream.writer(); | 253 | const stream = client.stream.writer(); |
| 253 | try stream.print("hello from server\n", .{}); | 254 | try stream.print("hello from server\n", .{}); |
| 254 | } | 255 | } |
| | 256 | |
| | 257 | test "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 | } |