From 1c0e0e93b026182d989065a1ecc175166293b4f7 Mon Sep 17 00:00:00 2001 From: Janet Kuo Date: Mon, 3 Oct 2016 17:31:14 -0700 Subject: [PATCH] Add status check in PetSet e2e tests --- test/e2e/petset.go | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/test/e2e/petset.go b/test/e2e/petset.go index 0818a1bc669..d57a2921e9c 100644 --- a/test/e2e/petset.go +++ b/test/e2e/petset.go @@ -153,6 +153,8 @@ var _ = framework.KubeDescribe("PetSet [Slow] [Feature:PetSet]", func() { By("Waiting for pet at index 1 to enter running.") pst.waitForRunning(2, ps) + // TODO: verify petset status.replicas + // Now we have 1 healthy and 1 unhealthy pet. Deleting the healthy pet should *not* // create a new pet till the remaining pet becomes healthy, which won't happen till // we set the healthy bit. @@ -458,6 +460,8 @@ func (p *petSetTester) saturate(ps *apps.PetSet) { framework.Logf("Marking pet at index " + fmt.Sprintf("%v", i) + " healthy") p.setHealthy(ps) } + framework.Logf("Waiting for pet set status.replicas updated to %d", ps.Spec.Replicas) + p.waitForStatus(ps, ps.Spec.Replicas) } func (p *petSetTester) deletePetAtIndex(index int, ps *apps.PetSet) { @@ -589,6 +593,25 @@ func (p *petSetTester) setHealthy(ps *apps.PetSet) { } } +func (p *petSetTester) waitForStatus(ps *apps.PetSet, expectedReplicas int) { + ns, name := ps.Namespace, ps.Name + pollErr := wait.PollImmediate(petsetPoll, petsetTimeout, + func() (bool, error) { + psGet, err := p.c.Apps().PetSets(ns).Get(name) + if err != nil { + return false, err + } + if psGet.Status.Replicas != expectedReplicas { + framework.Logf("Waiting for pet set status to become %d, currently %d", expectedReplicas, ps.Status.Replicas) + return false, nil + } + return true, nil + }) + if pollErr != nil { + framework.Failf("Failed waiting for pet set status.replicas updated to %d, got %d: %v", expectedReplicas, ps.Status.Replicas, pollErr) + } +} + func deleteAllPetSets(c *client.Client, ns string) { pst := &petSetTester{c: c} psList, err := c.Apps().PetSets(ns).List(api.ListOptions{LabelSelector: labels.Everything()})