v / vlib / net / raw_test.v
52 lines · 45 sloc · 1.08 KB · 49bade567852d01003fa48c777259ec36dd7d2b6
Raw
1import net
2
3fn test_protocol_enum() {
4 assert int(net.Protocol.icmp) == 1
5 assert int(net.Protocol.tcp) == 6
6 assert int(net.Protocol.udp) == 17
7 assert int(net.Protocol.icmpv6) == 58
8 assert int(net.Protocol.raw) == 255
9}
10
11fn test_socket_type_raw() {
12 assert int(net.SocketType.raw) > 0
13}
14
15fn test_raw_socket_config_defaults() {
16 config := net.RawSocketConfig{}
17 assert config.family == .ip
18 assert config.protocol == .icmp
19}
20
21fn test_raw_socket_config_custom() {
22 config := net.RawSocketConfig{
23 family: .ip6
24 protocol: .icmpv6
25 }
26 assert config.family == .ip6
27 assert config.protocol == .icmpv6
28}
29
30fn test_raw_socket_creation_requires_privileges() {
31 mut sock := net.new_raw_socket(family: .ip, protocol: .icmp) or {
32 assert err.msg().len > 0
33 return
34 }
35 sock.close() or {}
36}
37
38fn test_raw_socket_protocols() {
39 protocols := [
40 net.Protocol.icmp,
41 net.Protocol.icmpv6,
42 net.Protocol.raw,
43 ]
44
45 for proto in protocols {
46 config := net.RawSocketConfig{
47 family: if proto == .icmpv6 { net.AddrFamily.ip6 } else { net.AddrFamily.ip }
48 protocol: proto
49 }
50 assert config.protocol == proto
51 }
52}
53