Skip to content

Commit

Permalink
Update e2e tests with BuildRun Conditions
Browse files Browse the repository at this point in the history
Small refactoring to ensure we are asserting the fields
of the Conditions object, rather than the old Status fields

Signed-off-by: Matthias Diester <[email protected]>
  • Loading branch information
qu1queee committed Dec 15, 2020
1 parent 71de541 commit 531be8a
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 10 deletions.
2 changes: 1 addition & 1 deletion test/e2e/e2e_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -368,7 +368,7 @@ var _ = Describe("For a Kubernetes cluster with Tekton and build installed", fun
validateBuildRunToFail(ctx,
namespace,
br,
"kaniko-timeout.*failed to finish within \"15s\"",
"BuildRun kaniko-timeout.*failed to finish within 15s",
cleanupTimeout,
cleanupRetryInterval,
)
Expand Down
5 changes: 4 additions & 1 deletion test/e2e/samples.go
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,10 @@ func printTestFailureDebugInfo(namespace string, buildRunName string) {
}

if buildRun != nil {
Logf("The status of BuildRun %s: succeeded=%s, reason=%s", buildRun.Name, buildRun.Status.Succeeded, buildRun.Status.Reason)
brCondition := buildRun.Status.GetCondition(operator.Succeeded)
if brCondition != nil {
Logf("The status of BuildRun %s: status=%s, reason=%s", buildRun.Name, brCondition.Status, brCondition.Reason)
}
if buildRunJSON, err := json.Marshal(buildRun); err == nil {
Logf("The full BuildRun: %s", string(buildRunJSON))
}
Expand Down
28 changes: 20 additions & 8 deletions test/e2e/validators.go
Original file line number Diff line number Diff line change
Expand Up @@ -197,15 +197,20 @@ func validateBuildRunToSucceed(
err = clientGet(buildRunNsName, testBuildRun)
Expect(err).ToNot(HaveOccurred(), "Error retrieving a buildRun")

Expect(testBuildRun.Status.Succeeded).ToNot(Equal(falseCondition))
if testBuildRun.Status.GetCondition(operator.Succeeded) == nil {
return corev1.ConditionUnknown
}

Expect(testBuildRun.Status.GetCondition(operator.Succeeded).Status).ToNot(Equal(falseCondition))

now := time.Now()
if now.After(nextStatusLog) {
Logf("Still waiting for build run '%s' to succeed.", testBuildRun.Name)
nextStatusLog = time.Now().Add(60 * time.Second)
}

return testBuildRun.Status.Succeeded
return testBuildRun.Status.GetCondition(operator.Succeeded).Status

}, time.Duration(1100*getTimeoutMultiplier())*time.Second, 5*time.Second).Should(Equal(trueCondition), "BuildRun did not succeed")

// Verify that the BuildSpec is still available in the status
Expand Down Expand Up @@ -240,30 +245,37 @@ func validateBuildRunToFail(
err = clientGet(buildRunNsName, testBuildRun)
Expect(err).ToNot(HaveOccurred(), "Error retrieving build run")

Expect(testBuildRun.Status.Succeeded).ToNot(Equal(trueCondition))
if testBuildRun.Status.GetCondition(operator.Succeeded) == nil {
return corev1.ConditionUnknown
}

Expect(testBuildRun.Status.GetCondition(operator.Succeeded).Status).ToNot(Equal(trueCondition))

now := time.Now()
if now.After(nextStatusLog) {
Logf("Still waiting for build run '%s' to fail.", testBuildRun.Name)
nextStatusLog = time.Now().Add(60 * time.Second)
}

return testBuildRun.Status.Succeeded
return testBuildRun.Status.GetCondition(operator.Succeeded).Status
}, time.Duration(550*getTimeoutMultiplier())*time.Second, 5*time.Second).Should(Equal(falseCondition), "BuildRun did not fail")

// Verify that the BuildSpec is available in the status
Expect(testBuildRun.Status.BuildSpec).ToNot(BeNil())

// Verify the build run failure
Expect(testBuildRun.Status.Reason).To(MatchRegexp(expectedReasonRegexp))
Expect(testBuildRun.Status.GetCondition(operator.Succeeded).Message).To(MatchRegexp(expectedReasonRegexp))
}

// validateServiceAccountDeletion validates that a service account is correctly deleted after the end of
// a build run and depending on the state of the build run
func validateServiceAccountDeletion(buildRun *operator.BuildRun, namespace string) {
if buildRun.Status.Succeeded == "" || buildRun.Status.Succeeded == corev1.ConditionUnknown {
Logf("Skipping validation of service account deletion because build run did not end.")
return
buildRunCondition := buildRun.Status.GetCondition(operator.Succeeded)
if buildRunCondition != nil {
if buildRunCondition.Status == "" || buildRunCondition.Status == corev1.ConditionUnknown {
Logf("Skipping validation of service account deletion because build run did not end.")
return
}
}

if buildRun.Spec.ServiceAccount == nil || !buildRun.Spec.ServiceAccount.Generate {
Expand Down

0 comments on commit 531be8a

Please sign in to comment.