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