loopback: increase test coverage to 1.0.0 and older spec versions
Signed-off-by: Dan Williams <dcbw@redhat.com>
This commit is contained in:
parent
5096b53918
commit
5eae558a8e
@ -28,6 +28,10 @@ import (
|
|||||||
"github.com/onsi/gomega/gexec"
|
"github.com/onsi/gomega/gexec"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
func generateConfig(cniVersion string) *strings.Reader {
|
||||||
|
return strings.NewReader(fmt.Sprintf(`{ "name": "loopback-test", "cniVersion": "%s" }`, cniVersion))
|
||||||
|
}
|
||||||
|
|
||||||
var _ = Describe("Loopback", func() {
|
var _ = Describe("Loopback", func() {
|
||||||
var (
|
var (
|
||||||
networkNS ns.NetNS
|
networkNS ns.NetNS
|
||||||
@ -49,7 +53,6 @@ var _ = Describe("Loopback", func() {
|
|||||||
fmt.Sprintf("CNI_ARGS=%s", "none"),
|
fmt.Sprintf("CNI_ARGS=%s", "none"),
|
||||||
fmt.Sprintf("CNI_PATH=%s", "/some/test/path"),
|
fmt.Sprintf("CNI_PATH=%s", "/some/test/path"),
|
||||||
}
|
}
|
||||||
command.Stdin = strings.NewReader(`{ "name": "loopback-test", "cniVersion": "0.1.0" }`)
|
|
||||||
})
|
})
|
||||||
|
|
||||||
AfterEach(func() {
|
AfterEach(func() {
|
||||||
@ -57,45 +60,53 @@ var _ = Describe("Loopback", func() {
|
|||||||
Expect(testutils.UnmountNS(networkNS)).To(Succeed())
|
Expect(testutils.UnmountNS(networkNS)).To(Succeed())
|
||||||
})
|
})
|
||||||
|
|
||||||
Context("when given a network namespace", func() {
|
for _, ver := range testutils.AllSpecVersions {
|
||||||
It("sets the lo device to UP", func() {
|
// Redefine ver inside for scope so real value is picked up by each dynamically defined It()
|
||||||
command.Env = append(environ, fmt.Sprintf("CNI_COMMAND=%s", "ADD"))
|
// See Gingkgo's "Patterns for dynamically generating tests" documentation.
|
||||||
|
ver := ver
|
||||||
|
|
||||||
session, err := gexec.Start(command, GinkgoWriter, GinkgoWriter)
|
Context("when given a network namespace", func() {
|
||||||
Expect(err).NotTo(HaveOccurred())
|
It(fmt.Sprintf("[%s] sets the lo device to UP", ver), func() {
|
||||||
|
command.Stdin = generateConfig(ver)
|
||||||
|
command.Env = append(environ, fmt.Sprintf("CNI_COMMAND=%s", "ADD"))
|
||||||
|
|
||||||
Eventually(session).Should(gbytes.Say(`{.*}`))
|
session, err := gexec.Start(command, GinkgoWriter, GinkgoWriter)
|
||||||
Eventually(session).Should(gexec.Exit(0))
|
Expect(err).NotTo(HaveOccurred())
|
||||||
|
|
||||||
var lo *net.Interface
|
Eventually(session).Should(gbytes.Say(`{.*}`))
|
||||||
err = networkNS.Do(func(ns.NetNS) error {
|
Eventually(session).Should(gexec.Exit(0))
|
||||||
var err error
|
|
||||||
lo, err = net.InterfaceByName("lo")
|
var lo *net.Interface
|
||||||
return err
|
err = networkNS.Do(func(ns.NetNS) error {
|
||||||
|
var err error
|
||||||
|
lo, err = net.InterfaceByName("lo")
|
||||||
|
return err
|
||||||
|
})
|
||||||
|
Expect(err).NotTo(HaveOccurred())
|
||||||
|
|
||||||
|
Expect(lo.Flags & net.FlagUp).To(Equal(net.FlagUp))
|
||||||
})
|
})
|
||||||
Expect(err).NotTo(HaveOccurred())
|
|
||||||
|
|
||||||
Expect(lo.Flags & net.FlagUp).To(Equal(net.FlagUp))
|
It(fmt.Sprintf("[%s] sets the lo device to DOWN", ver), func() {
|
||||||
})
|
command.Stdin = generateConfig(ver)
|
||||||
|
command.Env = append(environ, fmt.Sprintf("CNI_COMMAND=%s", "DEL"))
|
||||||
|
|
||||||
It("sets the lo device to DOWN", func() {
|
session, err := gexec.Start(command, GinkgoWriter, GinkgoWriter)
|
||||||
command.Env = append(environ, fmt.Sprintf("CNI_COMMAND=%s", "DEL"))
|
Expect(err).NotTo(HaveOccurred())
|
||||||
|
|
||||||
session, err := gexec.Start(command, GinkgoWriter, GinkgoWriter)
|
Eventually(session).Should(gbytes.Say(``))
|
||||||
Expect(err).NotTo(HaveOccurred())
|
Eventually(session).Should(gexec.Exit(0))
|
||||||
|
|
||||||
Eventually(session).Should(gbytes.Say(``))
|
var lo *net.Interface
|
||||||
Eventually(session).Should(gexec.Exit(0))
|
err = networkNS.Do(func(ns.NetNS) error {
|
||||||
|
var err error
|
||||||
|
lo, err = net.InterfaceByName("lo")
|
||||||
|
return err
|
||||||
|
})
|
||||||
|
Expect(err).NotTo(HaveOccurred())
|
||||||
|
|
||||||
var lo *net.Interface
|
Expect(lo.Flags & net.FlagUp).NotTo(Equal(net.FlagUp))
|
||||||
err = networkNS.Do(func(ns.NetNS) error {
|
|
||||||
var err error
|
|
||||||
lo, err = net.InterfaceByName("lo")
|
|
||||||
return err
|
|
||||||
})
|
})
|
||||||
Expect(err).NotTo(HaveOccurred())
|
|
||||||
|
|
||||||
Expect(lo.Flags & net.FlagUp).NotTo(Equal(net.FlagUp))
|
|
||||||
})
|
})
|
||||||
})
|
}
|
||||||
})
|
})
|
||||||
|
Loading…
x
Reference in New Issue
Block a user