testutils: pass netConf in for version operations; pass raw result out for tests
authorDan Williams <dcbw@redhat.com>
Tue, 22 Nov 2016 16:02:39 +0000 (10:02 -0600)
committerDan Williams <dcbw@redhat.com>
Wed, 25 Jan 2017 17:31:18 +0000 (11:31 -0600)
pkg/testutils/cmd.go
plugins/ipam/host-local/host_local_test.go
plugins/main/bridge/bridge_test.go
plugins/main/ipvlan/ipvlan_test.go
plugins/main/macvlan/macvlan_test.go
plugins/main/ptp/ptp_test.go
plugins/meta/flannel/flannel_test.go
test

index 201b935..0118f61 100644 (file)
@@ -29,7 +29,7 @@ func envCleanup() {
        os.Unsetenv("CNI_IFNAME")
 }
 
-func CmdAddWithResult(cniNetns, cniIfname string, f func() error) (*types.Result, error) {
+func CmdAddWithResult(cniNetns, cniIfname string, conf []byte, f func() error) (*types.Result, []byte, error) {
        os.Setenv("CNI_COMMAND", "ADD")
        os.Setenv("CNI_PATH", os.Getenv("PATH"))
        os.Setenv("CNI_NETNS", cniNetns)
@@ -40,30 +40,30 @@ func CmdAddWithResult(cniNetns, cniIfname string, f func() error) (*types.Result
        oldStdout := os.Stdout
        r, w, err := os.Pipe()
        if err != nil {
-               return nil, err
+               return nil, nil, err
        }
 
        os.Stdout = w
        err = f()
        w.Close()
        if err != nil {
-               return nil, err
+               return nil, nil, err
        }
 
        // parse the result
        out, err := ioutil.ReadAll(r)
        os.Stdout = oldStdout
        if err != nil {
-               return nil, err
+               return nil, nil, err
        }
 
        result := types.Result{}
        err = json.Unmarshal(out, &result)
        if err != nil {
-               return nil, err
+               return nil, nil, err
        }
 
-       return &result, nil
+       return &result, out, nil
 }
 
 func CmdDelWithResult(cniNetns, cniIfname string, f func() error) error {
index 01906bb..2aca1f2 100644 (file)
@@ -62,7 +62,7 @@ var _ = Describe("host-local Operations", func() {
                }
 
                // Allocate the IP
-               result, err := testutils.CmdAddWithResult(nspath, ifname, func() error {
+               result, _, err := testutils.CmdAddWithResult(nspath, ifname, []byte(conf), func() error {
                        return cmdAdd(args)
                })
                Expect(err).NotTo(HaveOccurred())
@@ -124,7 +124,7 @@ var _ = Describe("host-local Operations", func() {
                }
 
                // Allocate the IP
-               result, err := testutils.CmdAddWithResult(nspath, ifname, func() error {
+               result, _, err := testutils.CmdAddWithResult(nspath, ifname, []byte(conf), func() error {
                        return cmdAdd(args)
                })
                Expect(err).NotTo(HaveOccurred())
index 3840aa9..870ad6b 100644 (file)
@@ -154,7 +154,7 @@ var _ = Describe("bridge Operations", func() {
                err = originalNS.Do(func(ns.NetNS) error {
                        defer GinkgoRecover()
 
-                       _, err := testutils.CmdAddWithResult(targetNs.Path(), IFNAME, func() error {
+                       _, _, err := testutils.CmdAddWithResult(targetNs.Path(), IFNAME, []byte(conf), func() error {
                                return cmdAdd(args)
                        })
                        Expect(err).NotTo(HaveOccurred())
index 4e09ceb..d9c9764 100644 (file)
@@ -126,7 +126,7 @@ var _ = Describe("ipvlan Operations", func() {
                err = originalNS.Do(func(ns.NetNS) error {
                        defer GinkgoRecover()
 
-                       _, err := testutils.CmdAddWithResult(targetNs.Path(), IFNAME, func() error {
+                       _, _, err := testutils.CmdAddWithResult(targetNs.Path(), IFNAME, []byte(conf), func() error {
                                return cmdAdd(args)
                        })
                        Expect(err).NotTo(HaveOccurred())
index 9594a59..ead0700 100644 (file)
@@ -127,7 +127,7 @@ var _ = Describe("macvlan Operations", func() {
                err = originalNS.Do(func(ns.NetNS) error {
                        defer GinkgoRecover()
 
-                       _, err := testutils.CmdAddWithResult(targetNs.Path(), IFNAME, func() error {
+                       _, _, err := testutils.CmdAddWithResult(targetNs.Path(), IFNAME, []byte(conf), func() error {
                                return cmdAdd(args)
                        })
                        Expect(err).NotTo(HaveOccurred())
index 5b85670..4587d27 100644 (file)
@@ -69,7 +69,7 @@ var _ = Describe("ptp Operations", func() {
                err = originalNS.Do(func(ns.NetNS) error {
                        defer GinkgoRecover()
 
-                       _, err := testutils.CmdAddWithResult(targetNs.Path(), IFNAME, func() error {
+                       _, _, err := testutils.CmdAddWithResult(targetNs.Path(), IFNAME, []byte(conf), func() error {
                                return cmdAdd(args)
                        })
                        Expect(err).NotTo(HaveOccurred())
index 4434f91..2bda216 100644 (file)
@@ -102,7 +102,7 @@ FLANNEL_IPMASQ=true
                                defer GinkgoRecover()
 
                                By("calling ADD")
-                               _, err := testutils.CmdAddWithResult(targetNs.Path(), IFNAME, func() error {
+                               _, _, err := testutils.CmdAddWithResult(targetNs.Path(), IFNAME, []byte(input), func() error {
                                        return cmdAdd(args)
                                })
                                Expect(err).NotTo(HaveOccurred())
diff --git a/test b/test
index cb10c4d..673b08d 100755 (executable)
--- a/test
+++ b/test
@@ -11,7 +11,7 @@ set -e
 
 source ./build
 
-TESTABLE="libcni plugins/ipam/dhcp plugins/ipam/dhcp plugins/ipam/host-local/backend/allocator plugins/ipam/host-local/backend plugins/main/loopback pkg/invoke pkg/ns pkg/skel pkg/types pkg/utils plugins/main/ipvlan plugins/main/macvlan plugins/main/bridge plugins/main/ptp plugins/test/noop pkg/utils/hwaddr pkg/ip pkg/version pkg/version/testhelpers plugins/meta/flannel"
+TESTABLE="libcni plugins/ipam/dhcp plugins/ipam/host-local plugins/ipam/host-local/backend/allocator plugins/main/loopback pkg/invoke pkg/ns pkg/skel pkg/types pkg/utils plugins/main/ipvlan plugins/main/macvlan plugins/main/bridge plugins/main/ptp plugins/test/noop pkg/utils/hwaddr pkg/ip pkg/version pkg/version/testhelpers plugins/meta/flannel"
 FORMATTABLE="$TESTABLE pkg/testutils plugins/meta/flannel plugins/meta/tuning"
 
 # user has not provided PKG override