|
|
@ -19,6 +19,7 @@ import (
|
|
|
|
"context"
|
|
|
|
"context"
|
|
|
|
"testing"
|
|
|
|
"testing"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
"github.com/pkg/errors"
|
|
|
|
appsv1 "k8s.io/api/apps/v1"
|
|
|
|
appsv1 "k8s.io/api/apps/v1"
|
|
|
|
batchv1 "k8s.io/api/batch/v1"
|
|
|
|
batchv1 "k8s.io/api/batch/v1"
|
|
|
|
corev1 "k8s.io/api/core/v1"
|
|
|
|
corev1 "k8s.io/api/core/v1"
|
|
|
@ -365,53 +366,62 @@ func Test_ReadyChecker_jobReady(t *testing.T) {
|
|
|
|
args args
|
|
|
|
args args
|
|
|
|
want bool
|
|
|
|
want bool
|
|
|
|
wantErr bool
|
|
|
|
wantErr bool
|
|
|
|
|
|
|
|
noRetryError bool
|
|
|
|
}{
|
|
|
|
}{
|
|
|
|
{
|
|
|
|
{
|
|
|
|
name: "job is completed",
|
|
|
|
name: "job is completed",
|
|
|
|
args: args{job: newJob("foo", 1, intToInt32(1), 1, 0)},
|
|
|
|
args: args{job: newJob("foo", 1, intToInt32(1), 1, 0)},
|
|
|
|
want: true,
|
|
|
|
want: true,
|
|
|
|
wantErr: false,
|
|
|
|
wantErr: false,
|
|
|
|
|
|
|
|
noRetryError: false,
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
{
|
|
|
|
name: "job is incomplete",
|
|
|
|
name: "job is incomplete",
|
|
|
|
args: args{job: newJob("foo", 1, intToInt32(1), 0, 0)},
|
|
|
|
args: args{job: newJob("foo", 1, intToInt32(1), 0, 0)},
|
|
|
|
want: false,
|
|
|
|
want: false,
|
|
|
|
wantErr: false,
|
|
|
|
wantErr: false,
|
|
|
|
|
|
|
|
noRetryError: false,
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
{
|
|
|
|
name: "job is failed but within BackoffLimit",
|
|
|
|
name: "job is failed but within BackoffLimit",
|
|
|
|
args: args{job: newJob("foo", 1, intToInt32(1), 0, 1)},
|
|
|
|
args: args{job: newJob("foo", 1, intToInt32(1), 0, 1)},
|
|
|
|
want: false,
|
|
|
|
want: false,
|
|
|
|
wantErr: false,
|
|
|
|
wantErr: false,
|
|
|
|
|
|
|
|
noRetryError: false,
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
{
|
|
|
|
name: "job is completed with retry",
|
|
|
|
name: "job is completed with retry",
|
|
|
|
args: args{job: newJob("foo", 1, intToInt32(1), 1, 1)},
|
|
|
|
args: args{job: newJob("foo", 1, intToInt32(1), 1, 1)},
|
|
|
|
want: true,
|
|
|
|
want: true,
|
|
|
|
wantErr: false,
|
|
|
|
wantErr: false,
|
|
|
|
|
|
|
|
noRetryError: false,
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
{
|
|
|
|
name: "job is failed and beyond BackoffLimit",
|
|
|
|
name: "job is failed and beyond BackoffLimit",
|
|
|
|
args: args{job: newJob("foo", 1, intToInt32(1), 0, 2)},
|
|
|
|
args: args{job: newJob("foo", 1, intToInt32(1), 0, 2)},
|
|
|
|
want: false,
|
|
|
|
want: false,
|
|
|
|
wantErr: true,
|
|
|
|
wantErr: true,
|
|
|
|
|
|
|
|
noRetryError: true,
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
{
|
|
|
|
name: "job is completed single run",
|
|
|
|
name: "job is completed single run",
|
|
|
|
args: args{job: newJob("foo", 0, intToInt32(1), 1, 0)},
|
|
|
|
args: args{job: newJob("foo", 0, intToInt32(1), 1, 0)},
|
|
|
|
want: true,
|
|
|
|
want: true,
|
|
|
|
wantErr: false,
|
|
|
|
wantErr: false,
|
|
|
|
|
|
|
|
noRetryError: false,
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
{
|
|
|
|
name: "job is failed single run",
|
|
|
|
name: "job is failed single run",
|
|
|
|
args: args{job: newJob("foo", 0, intToInt32(1), 0, 1)},
|
|
|
|
args: args{job: newJob("foo", 0, intToInt32(1), 0, 1)},
|
|
|
|
want: false,
|
|
|
|
want: false,
|
|
|
|
wantErr: true,
|
|
|
|
wantErr: true,
|
|
|
|
|
|
|
|
noRetryError: true,
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
{
|
|
|
|
name: "job with null completions",
|
|
|
|
name: "job with null completions",
|
|
|
|
args: args{job: newJob("foo", 0, nil, 1, 0)},
|
|
|
|
args: args{job: newJob("foo", 0, nil, 1, 0)},
|
|
|
|
want: true,
|
|
|
|
want: true,
|
|
|
|
|
|
|
|
noRetryError: false,
|
|
|
|
},
|
|
|
|
},
|
|
|
|
}
|
|
|
|
}
|
|
|
|
for _, tt := range tests {
|
|
|
|
for _, tt := range tests {
|
|
|
@ -422,6 +432,9 @@ func Test_ReadyChecker_jobReady(t *testing.T) {
|
|
|
|
t.Errorf("jobReady() error = %v, wantErr %v", err, tt.wantErr)
|
|
|
|
t.Errorf("jobReady() error = %v, wantErr %v", err, tt.wantErr)
|
|
|
|
return
|
|
|
|
return
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if errors.Is(err, ErrNoRetryError) != tt.noRetryError {
|
|
|
|
|
|
|
|
t.Errorf("jobReady() error = %v, not ErrNoRetryError", err)
|
|
|
|
|
|
|
|
}
|
|
|
|
if got != tt.want {
|
|
|
|
if got != tt.want {
|
|
|
|
t.Errorf("jobReady() = %v, want %v", got, tt.want)
|
|
|
|
t.Errorf("jobReady() = %v, want %v", got, tt.want)
|
|
|
|
}
|
|
|
|
}
|
|
|
|