Browse code

Update tests to have custom routes

Docker-DCO-1.1-Signed-off-by: Guillaume J. Charmes <guillaume.charmes@docker.com> (github: creack)

Guillaume J. Charmes authored on 2014/01/25 10:18:48
Showing 2 changed files
... ...
@@ -12,6 +12,10 @@ var (
12 12
 	ErrNetworkOverlaps                = errors.New("requested network overlaps with existing network")
13 13
 )
14 14
 
15
+var (
16
+	networkGetRoutesFct = netlink.NetworkGetRoutes
17
+)
18
+
15 19
 func CheckNameserverOverlaps(nameservers []string, toCheck *net.IPNet) error {
16 20
 	if len(nameservers) > 0 {
17 21
 		for _, ns := range nameservers {
... ...
@@ -28,7 +32,7 @@ func CheckNameserverOverlaps(nameservers []string, toCheck *net.IPNet) error {
28 28
 }
29 29
 
30 30
 func CheckRouteOverlaps(toCheck *net.IPNet) error {
31
-	networks, err := netlink.NetworkGetRoutes()
31
+	networks, err := networkGetRoutesFct()
32 32
 	if err != nil {
33 33
 		return err
34 34
 	}
... ...
@@ -35,12 +35,19 @@ func TestOverlapingNameservers(t *testing.T) {
35 35
 }
36 36
 
37 37
 func TestCheckRouteOverlaps(t *testing.T) {
38
-	routesData := []string{"10.0.2.0/32", "10.0.3.0/24", "10.0.42.0/24", "172.16.42.0/24", "192.168.142.0/24"}
39
-
40
-	routes := []netlink.Route{}
41
-	for _, addr := range routesData {
42
-		_, netX, _ := net.ParseCIDR(addr)
43
-		routes = append(routes, netlink.Route{IPNet: netX})
38
+	orig := networkGetRoutesFct
39
+	defer func() {
40
+		networkGetRoutesFct = orig
41
+	}()
42
+	networkGetRoutesFct = func() ([]netlink.Route, error) {
43
+		routesData := []string{"10.0.2.0/32", "10.0.3.0/24", "10.0.42.0/24", "172.16.42.0/24", "192.168.142.0/24"}
44
+
45
+		routes := []netlink.Route{}
46
+		for _, addr := range routesData {
47
+			_, netX, _ := net.ParseCIDR(addr)
48
+			routes = append(routes, netlink.Route{IPNet: netX})
49
+		}
50
+		return routes, nil
44 51
 	}
45 52
 
46 53
 	_, netX, _ := net.ParseCIDR("172.16.0.1/24")