plugins/{bridge,macvlan} test: ensure hardware addr
authorStefan Junker <mail@stefanjunker.de>
Wed, 29 Jun 2016 23:03:25 +0000 (16:03 -0700)
committerStefan Junker <mail@stefanjunker.de>
Fri, 22 Jul 2016 22:40:00 +0000 (15:40 -0700)
* bridge: Test the following interface's hardware address for the CNI specific
prefix:
  - bridge with IP address
  - container veth
* plugins/macvlan test: ensure hardware addr

plugins/main/bridge/bridge_test.go
plugins/main/macvlan/macvlan_test.go

index 14fef56..7c0e813 100644 (file)
@@ -24,6 +24,8 @@ import (
        "github.com/containernetworking/cni/pkg/testutils"
        "github.com/containernetworking/cni/pkg/types"
 
+       "github.com/containernetworking/cni/pkg/utils/hwaddr"
+
        "github.com/vishvananda/netlink"
 
        . "github.com/onsi/ginkgo"
@@ -179,9 +181,19 @@ var _ = Describe("bridge Operations", func() {
                        Expect(err).NotTo(HaveOccurred())
                        Expect(len(links)).To(Equal(3)) // Bridge, veth, and loopback
                        for _, l := range links {
-                               if l.Attrs().Name != BRNAME && l.Attrs().Name != "lo" {
-                                       _, isVeth := l.(*netlink.Veth)
-                                       Expect(isVeth).To(Equal(true))
+                               switch {
+                               case l.Attrs().Name == BRNAME:
+                                       {
+                                               _, isBridge := l.(*netlink.Bridge)
+                                               Expect(isBridge).To(Equal(true))
+                                               hwAddr := fmt.Sprintf("%s", l.Attrs().HardwareAddr)
+                                               Expect(hwAddr).To(HavePrefix(hwaddr.PrivateMACPrefixString))
+                                       }
+                               case l.Attrs().Name != BRNAME && l.Attrs().Name != "lo":
+                                       {
+                                               _, isVeth := l.(*netlink.Veth)
+                                               Expect(isVeth).To(Equal(true))
+                                       }
                                }
                        }
                        Expect(err).NotTo(HaveOccurred())
@@ -197,6 +209,9 @@ var _ = Describe("bridge Operations", func() {
                        Expect(err).NotTo(HaveOccurred())
                        Expect(link.Attrs().Name).To(Equal(IFNAME))
 
+                       hwAddr := fmt.Sprintf("%s", link.Attrs().HardwareAddr)
+                       Expect(hwAddr).To(HavePrefix(hwaddr.PrivateMACPrefixString))
+
                        // Ensure the default route
                        routes, err := netlink.RouteList(link, 0)
                        Expect(err).NotTo(HaveOccurred())
index 90cac2c..a0a1486 100644 (file)
@@ -21,6 +21,7 @@ import (
        "github.com/containernetworking/cni/pkg/skel"
        "github.com/containernetworking/cni/pkg/testutils"
        "github.com/containernetworking/cni/pkg/types"
+       "github.com/containernetworking/cni/pkg/utils/hwaddr"
 
        "github.com/vishvananda/netlink"
 
@@ -139,6 +140,10 @@ var _ = Describe("macvlan Operations", func() {
                        link, err := netlink.LinkByName(IFNAME)
                        Expect(err).NotTo(HaveOccurred())
                        Expect(link.Attrs().Name).To(Equal(IFNAME))
+
+                       hwAddr := fmt.Sprintf("%s", link.Attrs().HardwareAddr)
+                       Expect(hwAddr).To(HavePrefix(hwaddr.PrivateMACPrefixString))
+
                        return nil
                })
                Expect(err).NotTo(HaveOccurred())