-T(AF_INET+AF_INET6, "0.0.0.0", -1, "")
-T(AF_INET, "0.0.0.0", 1, "00000000")
-T(AF_INET, "127.0.0.1", 1, "7f000001")
-T(AF_INET, "255.255.255.255", 1, "ffffffff")
-T(AF_INET, "1.2.3.", 0, "")
-T(AF_INET, "1.2.3.4.5", 0, "")
-T(AF_INET, ".1.2.3", 0, "")
-T(AF_INET, "1.2.03.4", 0, "")
-T(AF_INET, "1.2.3.a", 0, "")
-T(AF_INET, "1.256.2.3", 0, "")
-T(AF_INET, "1.2.4294967296.3", 0, "")
-T(AF_INET, "1.2.-4294967295.3", 0, "")
-T(AF_INET, "1.2. 3.4", 0, "")
-T(AF_INET6, ":", 0, "")
-T(AF_INET6, "::", 1, "00000000000000000000000000000000")
-T(AF_INET6, "::1", 1, "00000000000000000000000000000001")
-T(AF_INET6, ":::", 0, "")
-T(AF_INET6, "192.168.1.1", 0, "")
-T(AF_INET6, ":192.168.1.1", 0, "")
-T(AF_INET6, "::192.168.1.1", 1, "000000000000000000000000c0a80101")
-T(AF_INET6, "0:0:0:0:0:0:192.168.1.1", 1, "000000000000000000000000c0a80101")
-T(AF_INET6, "0:0::0:0:0:192.168.1.1", 1, "000000000000000000000000c0a80101")
-T(AF_INET6, "::012.34.56.78", 0, "")
-T(AF_INET6, ":ffff:192.168.1.1", 0, "")
-T(AF_INET6, "::ffff:192.168.1.1", 1, "00000000000000000000ffffc0a80101")
-T(AF_INET6, ".192.168.1.1", 0, "")
-T(AF_INET6, ":.192.168.1.1", 0, "")
-T(AF_INET6, "a:0b:00c:000d:0000e:f::", 1, "000a000b000c000d000e000f00000000")
-T(AF_INET6, "a:b::c:d:e:f", 1, "000a000b00000000000c000d000e000f")
-T(AF_INET6, "ffff:c0a8:5e4", 0, "")
-T(AF_INET6, ":ffff:c0a8:5e4", 0, "")
-T(AF_INET6, "0:0:0:0:0:ffff:c0a8:5e4", 1, "00000000000000000000ffffc0a805e4")
-T(AF_INET6, "0:0:0:0:ffff:c0a8:5e4", 0, "")
-T(AF_INET6, "0::ffff:c0a8:5e4", 1, "00000000000000000000ffffc0a805e4")
-T(AF_INET6, "::0::ffff:c0a8:5e4", 0, "")
-T(AF_INET6, "c0a8", 0, "")
+
+// errors
+if (inet_pton(12345, "", 0) != -1 || errno != EAFNOSUPPORT)
+ t_error("inet_pton(12345,,) should fail with EAFNOSUPPORT, got %s\n", strerror(errno));
+errno=0;
+if (inet_ntop(AF_INET,"xxxx","",0) != 0 || errno != ENOSPC)
+ t_error("inet_ntop(,,0,0) should fail with ENOSPC, got %s\n", strerror(errno));
+errno=0;
+
+// dotted-decimal notation
+V4("0.0.0.0", 1, "00000000")
+V4("127.0.0.1", 1, "7f000001")
+V4("10.0.128.31", 1, "0a00801f")
+V4("255.255.255.255", 1, "ffffffff")
+
+// numbers-and-dots notation, but not dotted-decimal
+V4("1.2.03.4", 0, "01020304")
+V4("1.2.0x33.4", 0, "01023304")
+V4("1.2.0XAB.4", 0, "0102ab04")
+V4("1.2.0xabcd", 0, "0102abcd")
+V4("1.0xabcdef", 0, "01abcdef")
+V4("00377.0x0ff.65534", 0, "fffffffe")
+
+// invalid
+V4(".1.2.3", 0, "ffffffff")
+V4("1..2.3", 0, "ffffffff")
+V4("1.2.3.", 0, "ffffffff")
+V4("1.2.3.4.5", 0, "ffffffff")
+V4("1.2.3.a", 0, "ffffffff")
+V4("1.256.2.3", 0, "ffffffff")
+V4("1.2.4294967296.3", 0, "ffffffff")
+V4("1.2.-4294967295.3", 0, "ffffffff")
+V4("1.2. 3.4", 0, "ffffffff")
+
+// ipv6
+V6(":", 0, "")
+V6("::", 1, "00000000000000000000000000000000")
+V6("::1", 1, "00000000000000000000000000000001")
+V6(":::", 0, "")
+V6("192.168.1.1", 0, "")
+V6(":192.168.1.1", 0, "")
+V6("::192.168.1.1", 1, "000000000000000000000000c0a80101")
+V6("0:0:0:0:0:0:192.168.1.1", 1, "000000000000000000000000c0a80101")
+V6("0:0::0:0:0:192.168.1.1", 1, "000000000000000000000000c0a80101")
+V6("::012.34.56.78", 0, "")
+V6(":ffff:192.168.1.1", 0, "")
+V6("::ffff:192.168.1.1", 1, "00000000000000000000ffffc0a80101")
+V6(".192.168.1.1", 0, "")
+V6(":.192.168.1.1", 0, "")
+V6("a:0b:00c:000d:E:F::", 1, "000a000b000c000d000e000f00000000")
+V6("a:0b:00c:000d:0000e:f::", 0, "")
+V6("1:2:3:4:5:6::", 1, "00010002000300040005000600000000")
+V6("1:2:3:4:5:6:7::", 1, "00010002000300040005000600070000")
+V6("1:2:3:4:5:6:7:8::", 0, "")
+V6("1:2:3:4:5:6:7::9", 0, "")
+V6("::1:2:3:4:5:6", 1, "00000000000100020003000400050006")
+V6("::1:2:3:4:5:6:7", 1, "00000001000200030004000500060007")
+V6("::1:2:3:4:5:6:7:8", 0, "")
+V6("a:b::c:d:e:f", 1, "000a000b00000000000c000d000e000f")
+V6("ffff:c0a8:5e4", 0, "")
+V6(":ffff:c0a8:5e4", 0, "")
+V6("0:0:0:0:0:ffff:c0a8:5e4", 1, "00000000000000000000ffffc0a805e4")
+V6("0:0:0:0:ffff:c0a8:5e4", 0, "")
+V6("0::ffff:c0a8:5e4", 1, "00000000000000000000ffffc0a805e4")
+V6("::0::ffff:c0a8:5e4", 0, "")
+V6("c0a8", 0, "")
+