aboutsummaryrefslogtreecommitdiff
path: root/lib/std/net
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2019-11-04 15:22:14 -0500
committerGitHub <noreply@github.com>2019-11-04 15:22:14 -0500
commitce70a9be245b4e2c41d7d40d9d7de123ee2a0aab (patch)
tree6343935b9f028bb438c05a418975e2091186f7cc /lib/std/net
parent6c1728206288264c4d2508a190d392ade68d115c (diff)
parent6e786b60d4fb3a39b717e077d034131be613d6aa (diff)
downloadzig-ce70a9be245b4e2c41d7d40d9d7de123ee2a0aab.tar.gz
zig-ce70a9be245b4e2c41d7d40d9d7de123ee2a0aab.zip
Merge pull request #3589 from Vexu/ipv6-improvements
Ipv6 improvements
Diffstat (limited to 'lib/std/net')
-rw-r--r--lib/std/net/test.zig41
1 files changed, 36 insertions, 5 deletions
diff --git a/lib/std/net/test.zig b/lib/std/net/test.zig
index 54fd40f23e..178ca9d148 100644
--- a/lib/std/net/test.zig
+++ b/lib/std/net/test.zig
@@ -4,10 +4,41 @@ const mem = std.mem;
const testing = std.testing;
test "parse and render IPv6 addresses" {
- const addr = try net.IpAddress.parseIp6("FF01:0:0:0:0:0:0:FB", 80);
- var buf: [100]u8 = undefined;
- const printed = try std.fmt.bufPrint(&buf, "{}", addr);
- std.testing.expect(mem.eql(u8, "[ff01::fb]:80", printed));
+ var buffer: [100]u8 = undefined;
+ const ips = [_][]const u8{
+ "FF01:0:0:0:0:0:0:FB",
+ "FF01::Fb",
+ "::1",
+ "::",
+ "2001:db8::",
+ "::1234:5678",
+ "2001:db8::1234:5678",
+ "FF01::FB%1234",
+ "::ffff:123.123.123.123",
+ };
+ const printed = [_][]const u8{
+ "ff01::fb",
+ "ff01::fb",
+ "::1",
+ "::",
+ "2001:db8::",
+ "::1234:5678",
+ "2001:db8::1234:5678",
+ "ff01::fb",
+ "::ffff:7b7b:7b7b",
+ };
+ for (ips) |ip, i| {
+ var addr = net.IpAddress.parseIp6(ip, 0) catch unreachable;
+ var newIp = std.fmt.bufPrint(buffer[0..], "{}", addr) catch unreachable;
+ std.testing.expect(std.mem.eql(u8, printed[i], newIp[1 .. newIp.len - 3]));
+ }
+
+ testing.expectError(error.InvalidCharacter, net.IpAddress.parseIp6(":::", 0));
+ testing.expectError(error.Overflow, net.IpAddress.parseIp6("FF001::FB", 0));
+ testing.expectError(error.InvalidCharacter, net.IpAddress.parseIp6("FF01::Fb:zig", 0));
+ testing.expectError(error.InvalidEnd, net.IpAddress.parseIp6("FF01:0:0:0:0:0:0:FB:", 0));
+ testing.expectError(error.Incomplete, net.IpAddress.parseIp6("FF01:", 0));
+ testing.expectError(error.InvalidIpv4Mapping, net.IpAddress.parseIp6("::123.123.123.123", 0));
}
test "parse and render IPv4 addresses" {
@@ -19,7 +50,7 @@ test "parse and render IPv4 addresses" {
"123.255.0.91",
"127.0.0.1",
}) |ip| {
- var addr = net.IpAddress.parseIp4(ip, 0);
+ var addr = net.IpAddress.parseIp4(ip, 0) catch unreachable;
var newIp = std.fmt.bufPrint(buffer[0..], "{}", addr) catch unreachable;
std.testing.expect(std.mem.eql(u8, ip, newIp[0 .. newIp.len - 2]));
}