diff --git a/pkg/reconciler/pipelinerun/resources/pipelinerunresolution_test.go b/pkg/reconciler/pipelinerun/resources/pipelinerunresolution_test.go index e4481a0f238..a8ec3462459 100644 --- a/pkg/reconciler/pipelinerun/resources/pipelinerunresolution_test.go +++ b/pkg/reconciler/pipelinerun/resources/pipelinerunresolution_test.go @@ -3000,3 +3000,171 @@ func TestIsMatrixed(t *testing.T) { }) } } + +func TestIsSuccessful(t *testing.T) { + for _, tc := range []struct { + name string + rprt ResolvedPipelineRunTask + want bool + }{{ + name: "taskrun not started", + rprt: ResolvedPipelineRunTask{ + PipelineTask: &v1beta1.PipelineTask{Name: "task"}, + }, + want: false, + }, { + name: "run not started", + rprt: ResolvedPipelineRunTask{ + PipelineTask: &v1beta1.PipelineTask{Name: "task"}, + CustomTask: true, + }, + want: false, + }, { + name: "taskrun running", + rprt: ResolvedPipelineRunTask{ + PipelineTask: &v1beta1.PipelineTask{Name: "task"}, + TaskRun: makeStarted(trs[0]), + }, + want: false, + }, { + + name: "run running", + rprt: ResolvedPipelineRunTask{ + PipelineTask: &v1beta1.PipelineTask{Name: "task"}, + CustomTask: true, + Run: makeRunStarted(runs[0]), + }, + want: false, + }, { + name: "taskrun succeeded", + rprt: ResolvedPipelineRunTask{ + PipelineTask: &v1beta1.PipelineTask{Name: "task"}, + TaskRun: makeSucceeded(trs[0]), + }, + want: true, + }, { + + name: "run succeeded", + rprt: ResolvedPipelineRunTask{ + PipelineTask: &v1beta1.PipelineTask{Name: "task"}, + CustomTask: true, + Run: makeRunSucceeded(runs[0]), + }, + want: true, + }, { + name: "taskrun failed", + rprt: ResolvedPipelineRunTask{ + PipelineTask: &v1beta1.PipelineTask{Name: "task"}, + TaskRun: makeFailed(trs[0]), + }, + want: false, + }, { + + name: "run failed", + rprt: ResolvedPipelineRunTask{ + PipelineTask: &v1beta1.PipelineTask{Name: "task"}, + CustomTask: true, + Run: makeRunFailed(runs[0]), + }, + want: false, + }, { + name: "taskrun failed: retries remaining", + rprt: ResolvedPipelineRunTask{ + PipelineTask: &v1beta1.PipelineTask{Name: "task", Retries: 1}, + TaskRun: makeFailed(trs[0]), + }, + want: false, + }, { + + name: "run failed: retries remaining", + rprt: ResolvedPipelineRunTask{ + PipelineTask: &v1beta1.PipelineTask{Name: "task", Retries: 1}, + CustomTask: true, + Run: makeRunFailed(runs[0]), + }, + want: false, + }, { + name: "taskrun failed: no retries remaining", + rprt: ResolvedPipelineRunTask{ + PipelineTask: &v1beta1.PipelineTask{Name: "task", Retries: 1}, + TaskRun: withRetries(makeFailed(trs[0])), + }, + want: false, + }, { + + name: "run failed: no retries remaining", + rprt: ResolvedPipelineRunTask{ + PipelineTask: &v1beta1.PipelineTask{Name: "task", Retries: 1}, + CustomTask: true, + Run: withRunRetries(makeRunFailed(runs[0])), + }, + want: false, + }, { + name: "taskrun cancelled", + rprt: ResolvedPipelineRunTask{ + PipelineTask: &v1beta1.PipelineTask{Name: "task"}, + TaskRun: withCancelled(makeFailed(trs[0])), + }, + want: false, + }, { + name: "taskrun cancelled but not failed", + rprt: ResolvedPipelineRunTask{ + PipelineTask: &v1beta1.PipelineTask{Name: "task"}, + TaskRun: withCancelled(newTaskRun(trs[0])), + }, + want: false, + }, { + name: "run cancelled", + rprt: ResolvedPipelineRunTask{ + PipelineTask: &v1beta1.PipelineTask{Name: "task"}, + Run: withRunCancelled(makeRunFailed(runs[0])), + CustomTask: true, + }, + want: false, + }, { + name: "run cancelled but not failed", + rprt: ResolvedPipelineRunTask{ + PipelineTask: &v1beta1.PipelineTask{Name: "task"}, + Run: withRunCancelled(newRun(runs[0])), + CustomTask: true, + }, + want: false, + }, { + name: "taskrun cancelled: retries remaining", + rprt: ResolvedPipelineRunTask{ + PipelineTask: &v1beta1.PipelineTask{Name: "task", Retries: 1}, + TaskRun: withCancelled(makeFailed(trs[0])), + }, + want: false, + }, { + name: "run cancelled: retries remaining", + rprt: ResolvedPipelineRunTask{ + PipelineTask: &v1beta1.PipelineTask{Name: "task", Retries: 1}, + Run: withRunCancelled(makeRunFailed(runs[0])), + CustomTask: true, + }, + want: false, + }, { + name: "taskrun cancelled: no retries remaining", + rprt: ResolvedPipelineRunTask{ + PipelineTask: &v1beta1.PipelineTask{Name: "task", Retries: 1}, + TaskRun: withCancelled(withRetries(makeFailed(trs[0]))), + }, + want: false, + }, { + name: "run cancelled: no retries remaining", + rprt: ResolvedPipelineRunTask{ + PipelineTask: &v1beta1.PipelineTask{Name: "task", Retries: 1}, + Run: withRunCancelled(withRunRetries(makeRunFailed(runs[0]))), + CustomTask: true, + }, + want: false, + }} { + t.Run(tc.name, func(t *testing.T) { + if got := tc.rprt.isSuccessful(); got != tc.want { + t.Errorf("expected isSuccessful: %t but got %t", tc.want, got) + } + + }) + } +}