v / vlib / net
Raw file | 112 loc (100 sloc) | 2.74 KB | Latest commit hash d4a0d6f73
1module net
2
3fn test_diagnostics() {
4 dump(aoffset)
5 eprintln('--------')
6 in6 := C.sockaddr_in6{}
7 our_ip6 := Ip6{}
8 $if macos {
9 dump(__offsetof(C.sockaddr_in6, sin6_len))
10 }
11 dump(__offsetof(C.sockaddr_in6, sin6_family))
12 dump(__offsetof(C.sockaddr_in6, sin6_port))
13 dump(__offsetof(C.sockaddr_in6, sin6_addr))
14 $if macos {
15 dump(sizeof(in6.sin6_len))
16 }
17 dump(sizeof(in6.sin6_family))
18 dump(sizeof(in6.sin6_port))
19 dump(sizeof(in6.sin6_addr))
20 dump(sizeof(in6))
21 eprintln('')
22 dump(__offsetof(Ip6, port))
23 dump(__offsetof(Ip6, addr))
24 dump(sizeof(our_ip6.port))
25 dump(sizeof(our_ip6.addr))
26 dump(sizeof(our_ip6))
27 eprintln('--------')
28 in4 := C.sockaddr_in{}
29 our_ip4 := Ip{}
30 $if macos {
31 dump(__offsetof(C.sockaddr_in, sin_len))
32 }
33 dump(__offsetof(C.sockaddr_in, sin_family))
34 dump(__offsetof(C.sockaddr_in, sin_port))
35 dump(__offsetof(C.sockaddr_in, sin_addr))
36 $if macos {
37 dump(sizeof(in4.sin_len))
38 }
39 dump(sizeof(in4.sin_family))
40 dump(sizeof(in4.sin_port))
41 dump(sizeof(in4.sin_addr))
42 dump(sizeof(in4))
43 eprintln('')
44 dump(__offsetof(Ip, port))
45 dump(__offsetof(Ip, addr))
46 dump(sizeof(our_ip4.port))
47 dump(sizeof(our_ip4.addr))
48 dump(sizeof(our_ip4))
49 eprintln('--------')
50 dump(__offsetof(C.sockaddr_un, sun_path))
51 dump(__offsetof(Unix, path))
52 eprintln('--------')
53}
54
55fn test_sizes_unix_sun_path() {
56 x1 := C.sockaddr_un{}
57 x2 := Unix{}
58 assert sizeof(x1.sun_path) == sizeof(x2.path)
59}
60
61fn test_offsets_ipv6() {
62 assert __offsetof(C.sockaddr_in6, sin6_addr) == __offsetof(Ip6, addr) + aoffset
63 assert __offsetof(C.sockaddr_in6, sin6_port) == __offsetof(Ip6, port) + aoffset
64}
65
66fn test_offsets_ipv4() {
67 assert __offsetof(C.sockaddr_in, sin_addr) == __offsetof(Ip, addr) + aoffset
68 assert __offsetof(C.sockaddr_in, sin_port) == __offsetof(Ip, port) + aoffset
69}
70
71fn test_offsets_unix() {
72 assert __offsetof(C.sockaddr_un, sun_path) == __offsetof(Unix, path) + aoffset
73}
74
75fn test_sizes_ipv6() {
76 assert sizeof(C.sockaddr_in6) == sizeof(Ip6) + aoffset
77}
78
79fn test_sizes_ipv4() {
80 assert sizeof(C.sockaddr_in) == sizeof(Ip) + aoffset
81}
82
83fn test_sizes_unix() {
84 assert sizeof(C.sockaddr_un) == sizeof(Unix) + aoffset
85}
86
87fn test_ip_str() {
88 ip1 := new_ip(1337, addr_ip_any).str()
89 expected1 := '0.0.0.0:1337'
90 assert ip1.len == expected1.len
91 assert ip1 == expected1
92
93 addr := [u8(2), 0, 2, 2]!
94 ip2 := new_ip(2202, addr).str()
95 expected2 := '2.0.2.2:2202'
96 assert ip2.len == expected2.len
97 assert ip2 == expected2
98}
99
100fn test_ip6_str() {
101 ip1 := new_ip6(1337, addr_ip6_any).str()
102 expected1 := '[::]:1337'
103 assert ip1.len == expected1.len
104 assert ip1 == expected1
105
106 addr := [u8(2), 0, 2, 2, 2, 0, 1, 1, 2, 3, 2, 1, 2, 3, 5, 2]!
107 ip2 := new_ip6(2022, addr).str()
108 println(ip2)
109 expected2 := '[200:202:200:101:203:201:203:502]:2022'
110 assert ip2.len == expected2.len
111 assert ip2 == expected2
112}