mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-01 07:47:56 +00:00
cronjob: use the same schedule Parser for tests as the reconcile loop
This commit is contained in:
parent
6290a23ceb
commit
cebbc6b487
@ -638,6 +638,7 @@ func TestGetMostRecentScheduleTime(t *testing.T) {
|
|||||||
args args
|
args args
|
||||||
expectedTime *time.Time
|
expectedTime *time.Time
|
||||||
expectedNumberOfMisses int64
|
expectedNumberOfMisses int64
|
||||||
|
wantErr bool
|
||||||
}{
|
}{
|
||||||
{
|
{
|
||||||
name: "now before next schedule",
|
name: "now before next schedule",
|
||||||
@ -652,30 +653,50 @@ func TestGetMostRecentScheduleTime(t *testing.T) {
|
|||||||
name: "now just after next schedule",
|
name: "now just after next schedule",
|
||||||
args: args{
|
args: args{
|
||||||
earliestTime: topOfTheHour(),
|
earliestTime: topOfTheHour(),
|
||||||
now: topOfTheHour().Add(time.Second * 61),
|
now: topOfTheHour().Add(time.Minute * 61),
|
||||||
schedule: "0 * * * *",
|
schedule: "0 * * * *",
|
||||||
},
|
},
|
||||||
expectedTime: justAfterTheHour(),
|
expectedTime: deltaTimeAfterTopOfTheHour(time.Minute * 60),
|
||||||
expectedNumberOfMisses: 1,
|
expectedNumberOfMisses: 1,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "missed 5 schedules",
|
name: "missed 5 schedules",
|
||||||
args: args{
|
args: args{
|
||||||
earliestTime: deltaTimeAfterTopOfTheHour(time.Second * 10),
|
earliestTime: deltaTimeAfterTopOfTheHour(time.Second * 10),
|
||||||
now: *deltaTimeAfterTopOfTheHour(time.Minute * 5),
|
now: *deltaTimeAfterTopOfTheHour(time.Minute * 301),
|
||||||
schedule: "0 * * * *",
|
schedule: "0 * * * *",
|
||||||
},
|
},
|
||||||
expectedTime: deltaTimeAfterTopOfTheHour(time.Minute * 5),
|
expectedTime: deltaTimeAfterTopOfTheHour(time.Minute * 300),
|
||||||
expectedNumberOfMisses: 5,
|
expectedNumberOfMisses: 5,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
name: "rogue cronjob",
|
||||||
|
args: args{
|
||||||
|
earliestTime: deltaTimeAfterTopOfTheHour(time.Second * 10),
|
||||||
|
now: *deltaTimeAfterTopOfTheHour(time.Hour * 1000000),
|
||||||
|
schedule: "59 23 31 2 *",
|
||||||
|
},
|
||||||
|
expectedTime: nil,
|
||||||
|
expectedNumberOfMisses: 0,
|
||||||
|
wantErr: true,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
for _, tt := range tests {
|
for _, tt := range tests {
|
||||||
t.Run(tt.name, func(t *testing.T) {
|
t.Run(tt.name, func(t *testing.T) {
|
||||||
sched, err := cron.Parse(tt.args.schedule)
|
sched, err := cron.ParseStandard(tt.args.schedule)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Errorf("error setting up the test, %s", err)
|
t.Errorf("error setting up the test, %s", err)
|
||||||
}
|
}
|
||||||
gotTime, gotNumberOfMisses, _ := getMostRecentScheduleTime(*tt.args.earliestTime, tt.args.now, sched)
|
gotTime, gotNumberOfMisses, err := getMostRecentScheduleTime(*tt.args.earliestTime, tt.args.now, sched)
|
||||||
|
if tt.wantErr {
|
||||||
|
if err == nil {
|
||||||
|
t.Error("getMostRecentScheduleTime() got no error when expected one")
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if !tt.wantErr && err != nil {
|
||||||
|
t.Error("getMostRecentScheduleTime() got error when none expected")
|
||||||
|
}
|
||||||
if gotTime == nil && tt.expectedTime != nil {
|
if gotTime == nil && tt.expectedTime != nil {
|
||||||
t.Errorf("getMostRecentScheduleTime() got nil, want %v", tt.expectedTime)
|
t.Errorf("getMostRecentScheduleTime() got nil, want %v", tt.expectedTime)
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user