From 5a52316ab571b429392b6d082bd8e1bde0793a32 Mon Sep 17 00:00:00 2001 From: Stefan Junker Date: Wed, 29 Jun 2016 16:03:25 -0700 Subject: [PATCH] plugins/{bridge,macvlan} test: ensure hardware addr * 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 | 21 ++++++++++++++++++--- plugins/main/macvlan/macvlan_test.go | 5 +++++ 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/plugins/main/bridge/bridge_test.go b/plugins/main/bridge/bridge_test.go index 14fef56b..7c0e8132 100644 --- a/plugins/main/bridge/bridge_test.go +++ b/plugins/main/bridge/bridge_test.go @@ -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()) diff --git a/plugins/main/macvlan/macvlan_test.go b/plugins/main/macvlan/macvlan_test.go index 90cac2c1..a0a14863 100644 --- a/plugins/main/macvlan/macvlan_test.go +++ b/plugins/main/macvlan/macvlan_test.go @@ -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())