From 9774e9bb7bca07fe1d882e70272fc701b04f834c Mon Sep 17 00:00:00 2001 From: Zach Loafman Date: Wed, 11 Feb 2015 16:42:08 -0800 Subject: [PATCH 1/3] Remove unnecessary GinkgoDefer()s --- test/e2e/pods.go | 6 ------ 1 file changed, 6 deletions(-) diff --git a/test/e2e/pods.go b/test/e2e/pods.go index b6b538cac7b..71d926ac73b 100644 --- a/test/e2e/pods.go +++ b/test/e2e/pods.go @@ -31,7 +31,6 @@ import ( ) func runLivenessTest(c *client.Client, podDescr *api.Pod) { - defer GinkgoRecover() ns := "e2e-test-" + string(util.NewUUID()) By(fmt.Sprintf("Creating pod %s in namespace %s", podDescr.Name, ns)) @@ -132,7 +131,6 @@ var _ = Describe("Pods", func() { // We call defer here in case there is a problem with // the test so we can ensure that we clean up after // ourselves - defer GinkgoRecover() podClient.Delete(pod.Name) }() @@ -190,7 +188,6 @@ var _ = Describe("Pods", func() { } defer func() { By("deleting the pod") - defer GinkgoRecover() podClient.Delete(pod.Name) }() @@ -252,7 +249,6 @@ var _ = Describe("Pods", func() { Fail(fmt.Sprintf("Failed to create serverPod: %v", err)) } defer func() { - defer GinkgoRecover() c.Pods(api.NamespaceDefault).Delete(serverPod.Name) }() err = waitForPodRunning(c, serverPod.Name, 300*time.Second) @@ -287,7 +283,6 @@ var _ = Describe("Pods", func() { Fail(fmt.Sprintf("Failed to create service: %v", err)) } defer func() { - defer GinkgoRecover() c.Services(api.NamespaceDefault).Delete(svc.Name) }() @@ -318,7 +313,6 @@ var _ = Describe("Pods", func() { Fail(fmt.Sprintf("Failed to create pod: %v", err)) } defer func() { - defer GinkgoRecover() c.Pods(api.NamespaceDefault).Delete(clientPod.Name) }() From 62ff43482504da7e8c6d03215cb57ed70d334888 Mon Sep 17 00:00:00 2001 From: Zach Loafman Date: Thu, 12 Feb 2015 10:35:12 -0800 Subject: [PATCH 2/3] Fix Failf line offset reporting --- test/e2e/util.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/e2e/util.go b/test/e2e/util.go index f447d4d0acb..abc93bfef24 100644 --- a/test/e2e/util.go +++ b/test/e2e/util.go @@ -45,7 +45,7 @@ func Logf(format string, a ...interface{}) { } func Failf(format string, a ...interface{}) { - Fail(fmt.Sprintf(format, a...)) + Fail(fmt.Sprintf(format, a...), 1) } func waitForPodRunning(c *client.Client, id string, tryFor time.Duration) error { From 6117592905438e2636c7e58758bd3be570e82cbb Mon Sep 17 00:00:00 2001 From: Zach Loafman Date: Thu, 12 Feb 2015 10:37:31 -0800 Subject: [PATCH 3/3] Add expectNoError helper to handle Expect(err).NotTo(HaveOccurred()) meme And convert one file --- test/e2e/pods.go | 24 ++++++++++-------------- test/e2e/util.go | 5 +++++ 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/test/e2e/pods.go b/test/e2e/pods.go index 71d926ac73b..e6b49ff4ae2 100644 --- a/test/e2e/pods.go +++ b/test/e2e/pods.go @@ -35,7 +35,7 @@ func runLivenessTest(c *client.Client, podDescr *api.Pod) { By(fmt.Sprintf("Creating pod %s in namespace %s", podDescr.Name, ns)) _, err := c.Pods(ns).Create(podDescr) - Expect(err).NotTo(HaveOccurred(), fmt.Sprintf("creating pod %s", podDescr.Name)) + expectNoError(err, fmt.Sprintf("creating pod %s", podDescr.Name)) // At the end of the test, clean up by removing the pod. defer func() { @@ -47,14 +47,14 @@ func runLivenessTest(c *client.Client, podDescr *api.Pod) { // 'Pending' other than checking for 'Running', since when failures occur, we go to // 'Terminated' which can cause indefinite blocking.) By("waiting for the pod to be something other than pending") - err = waitForPodNotPending(c, ns, podDescr.Name, 60*time.Second) - Expect(err).NotTo(HaveOccurred(), fmt.Sprintf("starting pod %s in namespace %s", podDescr.Name, ns)) + expectNoError(waitForPodNotPending(c, ns, podDescr.Name, 60*time.Second), + fmt.Sprintf("starting pod %s in namespace %s", podDescr.Name, ns)) By(fmt.Sprintf("Started pod %s in namespace %s", podDescr.Name, ns)) // Check the pod's current state and verify that restartCount is present. By("checking the pod's current state and verifying that restartCount is present") pod, err := c.Pods(ns).Get(podDescr.Name) - Expect(err).NotTo(HaveOccurred(), fmt.Sprintf("getting pod %s in namespace %s", podDescr.Name, ns)) + expectNoError(err, fmt.Sprintf("getting pod %s in namespace %s", podDescr.Name, ns)) initialRestartCount := pod.Status.Info["liveness"].RestartCount By(fmt.Sprintf("Initial restart count of pod %s is %d", podDescr.Name, initialRestartCount)) @@ -64,7 +64,7 @@ func runLivenessTest(c *client.Client, podDescr *api.Pod) { // Wait until restartCount is incremented. time.Sleep(5 * time.Second) pod, err = c.Pods(ns).Get(podDescr.Name) - Expect(err).NotTo(HaveOccurred(), fmt.Sprintf("getting pod %s", podDescr.Name)) + expectNoError(err, fmt.Sprintf("getting pod %s", podDescr.Name)) restartCount := pod.Status.Info["liveness"].RestartCount By(fmt.Sprintf("Restart count of pod %s in namespace %s is now %d", podDescr.Name, ns, restartCount)) if restartCount > initialRestartCount { @@ -85,7 +85,7 @@ var _ = Describe("Pods", func() { BeforeEach(func() { var err error c, err = loadClient() - Expect(err).NotTo(HaveOccurred()) + expectNoError(err) }) It("should be submitted and removed", func() { @@ -192,8 +192,7 @@ var _ = Describe("Pods", func() { }() By("waiting for the pod to start running") - err = waitForPodRunning(c, pod.Name, 300*time.Second) - Expect(err).NotTo(HaveOccurred()) + expectNoError(waitForPodRunning(c, pod.Name, 300*time.Second)) By("verifying the pod is in kubernetes") pods, err := podClient.List(labels.SelectorFromSet(labels.Set(map[string]string{"time": value}))) @@ -216,8 +215,7 @@ var _ = Describe("Pods", func() { } By("waiting for the updated pod to start running") - err = waitForPodRunning(c, pod.Name, 300*time.Second) - Expect(err).NotTo(HaveOccurred()) + expectNoError(waitForPodRunning(c, pod.Name, 300*time.Second)) By("verifying the updated pod is in kubernetes") pods, err = podClient.List(labels.SelectorFromSet(labels.Set(map[string]string{"time": value}))) @@ -251,8 +249,7 @@ var _ = Describe("Pods", func() { defer func() { c.Pods(api.NamespaceDefault).Delete(serverPod.Name) }() - err = waitForPodRunning(c, serverPod.Name, 300*time.Second) - Expect(err).NotTo(HaveOccurred()) + expectNoError(waitForPodRunning(c, serverPod.Name, 300*time.Second)) // This service exposes port 8080 of the test pod as a service on port 8765 // TODO(filbranden): We would like to use a unique service name such as: @@ -317,8 +314,7 @@ var _ = Describe("Pods", func() { }() // Wait for client pod to complete. - err = waitForPodSuccess(c, clientPod.Name, clientPod.Spec.Containers[0].Name, 60*time.Second) - Expect(err).NotTo(HaveOccurred()) + expectNoError(waitForPodSuccess(c, clientPod.Name, clientPod.Spec.Containers[0].Name, 60*time.Second)) // Grab its logs. Get host first. clientPodStatus, err := c.Pods(api.NamespaceDefault).Get(clientPod.Name) diff --git a/test/e2e/util.go b/test/e2e/util.go index abc93bfef24..0cbb1d16803 100644 --- a/test/e2e/util.go +++ b/test/e2e/util.go @@ -28,6 +28,7 @@ import ( "github.com/GoogleCloudPlatform/kubernetes/pkg/clientauth" . "github.com/onsi/ginkgo" + . "github.com/onsi/gomega" ) type testContextType struct { @@ -152,3 +153,7 @@ func randomSuffix() string { r := rand.New(rand.NewSource(time.Now().UnixNano())) return strconv.Itoa(r.Int() % 10000) } + +func expectNoError(err error, explain ...interface{}) { + ExpectWithOffset(1, err).NotTo(HaveOccurred(), explain...) +}