Browse code

Network tests

Andrea Luzzardi authored on 2013/02/22 11:34:35
Showing 1 changed files
1 1
new file mode 100644
... ...
@@ -0,0 +1,101 @@
0
+package docker
1
+
2
+import (
3
+	"net"
4
+	"testing"
5
+)
6
+
7
+func TestNetworkRange(t *testing.T) {
8
+	// Simple class C test
9
+	_, network, _ := net.ParseCIDR("192.168.0.1/24")
10
+	first, last := networkRange(network)
11
+	if !first.Equal(net.ParseIP("192.168.0.0")) {
12
+		t.Error(first.String())
13
+	}
14
+	if !last.Equal(net.ParseIP("192.168.0.255")) {
15
+		t.Error(last.String())
16
+	}
17
+	if size, err := networkSize(network.Mask); err != nil || size != 256 {
18
+		t.Error(size, err)
19
+	}
20
+
21
+	// Class A test
22
+	_, network, _ = net.ParseCIDR("10.0.0.1/8")
23
+	first, last = networkRange(network)
24
+	if !first.Equal(net.ParseIP("10.0.0.0")) {
25
+		t.Error(first.String())
26
+	}
27
+	if !last.Equal(net.ParseIP("10.255.255.255")) {
28
+		t.Error(last.String())
29
+	}
30
+	if size, err := networkSize(network.Mask); err != nil || size != 16777216 {
31
+		t.Error(size, err)
32
+	}
33
+
34
+	// Class A, random IP address
35
+	_, network, _ = net.ParseCIDR("10.1.2.3/8")
36
+	first, last = networkRange(network)
37
+	if !first.Equal(net.ParseIP("10.0.0.0")) {
38
+		t.Error(first.String())
39
+	}
40
+	if !last.Equal(net.ParseIP("10.255.255.255")) {
41
+		t.Error(last.String())
42
+	}
43
+
44
+	// 32bit mask
45
+	_, network, _ = net.ParseCIDR("10.1.2.3/32")
46
+	first, last = networkRange(network)
47
+	if !first.Equal(net.ParseIP("10.1.2.3")) {
48
+		t.Error(first.String())
49
+	}
50
+	if !last.Equal(net.ParseIP("10.1.2.3")) {
51
+		t.Error(last.String())
52
+	}
53
+	if size, err := networkSize(network.Mask); err != nil || size != 1 {
54
+		t.Error(size, err)
55
+	}
56
+
57
+	// 31bit mask
58
+	_, network, _ = net.ParseCIDR("10.1.2.3/31")
59
+	first, last = networkRange(network)
60
+	if !first.Equal(net.ParseIP("10.1.2.2")) {
61
+		t.Error(first.String())
62
+	}
63
+	if !last.Equal(net.ParseIP("10.1.2.3")) {
64
+		t.Error(last.String())
65
+	}
66
+	if size, err := networkSize(network.Mask); err != nil || size != 2 {
67
+		t.Error(size, err)
68
+	}
69
+
70
+	// 26bit mask
71
+	_, network, _ = net.ParseCIDR("10.1.2.3/26")
72
+	first, last = networkRange(network)
73
+	if !first.Equal(net.ParseIP("10.1.2.0")) {
74
+		t.Error(first.String())
75
+	}
76
+	if !last.Equal(net.ParseIP("10.1.2.63")) {
77
+		t.Error(last.String())
78
+	}
79
+	if size, err := networkSize(network.Mask); err != nil || size != 64 {
80
+		t.Error(size, err)
81
+	}
82
+}
83
+
84
+func TestConversion(t *testing.T) {
85
+	ip := net.ParseIP("127.0.0.1")
86
+	i, err := ipToInt(ip)
87
+	if err != nil {
88
+		t.Fatal(err)
89
+	}
90
+	if i == 0 {
91
+		t.Fatal("converted to zero")
92
+	}
93
+	conv, err := intToIp(i)
94
+	if err != nil {
95
+		t.Fatal(err)
96
+	}
97
+	if !ip.Equal(conv) {
98
+		t.Error(conv.String())
99
+	}
100
+}