tests/bridge: ensure isDefaultGateway works
authorStefan Junker <mail@stefanjunker.de>
Fri, 20 May 2016 23:05:21 +0000 (01:05 +0200)
committerStefan Junker <mail@stefanjunker.de>
Fri, 20 May 2016 23:07:05 +0000 (01:07 +0200)
plugins/main/bridge/bridge_test.go

index 0ed27dd..14fef56 100644 (file)
@@ -116,7 +116,7 @@ var _ = Describe("bridge Operations", func() {
                Expect(err).NotTo(HaveOccurred())
        })
 
-       It("configures and deconfigures a bridge and veth with ADD/DEL", func() {
+       It("configures and deconfigures a bridge and veth with default route with ADD/DEL", func() {
                const BRNAME = "cni0"
                const IFNAME = "eth0"
 
@@ -127,7 +127,7 @@ var _ = Describe("bridge Operations", func() {
     "name": "mynet",
     "type": "bridge",
     "bridge": "%s",
-    "isGateway": true,
+    "isDefaultGateway": true,
     "ipMasq": false,
     "ipam": {
         "type": "host-local",
@@ -189,13 +189,27 @@ var _ = Describe("bridge Operations", func() {
                })
                Expect(err).NotTo(HaveOccurred())
 
-               // Find the veth peer in the container namespace
+               // Find the veth peer in the container namespace and the default route
                err = targetNs.Do(func(ns.NetNS) error {
                        defer GinkgoRecover()
 
                        link, err := netlink.LinkByName(IFNAME)
                        Expect(err).NotTo(HaveOccurred())
                        Expect(link.Attrs().Name).To(Equal(IFNAME))
+
+                       // Ensure the default route
+                       routes, err := netlink.RouteList(link, 0)
+                       Expect(err).NotTo(HaveOccurred())
+
+                       var defaultRouteFound bool
+                       for _, route := range routes {
+                               defaultRouteFound = (route.Dst == nil && route.Src == nil && route.Gw.Equal(gwaddr))
+                               if defaultRouteFound {
+                                       break
+                               }
+                       }
+                       Expect(defaultRouteFound).To(Equal(true))
+
                        return nil
                })
                Expect(err).NotTo(HaveOccurred())