fix interval 60 issue
This commit is contained in:
parent
3462c6a153
commit
4a6b5478ee
|
@ -473,6 +473,9 @@ func genericFieldParse(s string, desc *fieldDescriptor) ([]*cronDirective, error
|
||||||
directive.first = desc.min
|
directive.first = desc.min
|
||||||
directive.last = desc.max
|
directive.last = desc.max
|
||||||
directive.step = atoi(snormal[pairs[2]:pairs[3]])
|
directive.step = atoi(snormal[pairs[2]:pairs[3]])
|
||||||
|
if directive.step < 1 || directive.step > desc.max {
|
||||||
|
return nil, fmt.Errorf("invalid interval %s", snormal)
|
||||||
|
}
|
||||||
directives = append(directives, &directive)
|
directives = append(directives, &directive)
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
@ -483,6 +486,9 @@ func genericFieldParse(s string, desc *fieldDescriptor) ([]*cronDirective, error
|
||||||
directive.first = desc.atoi(snormal[pairs[2]:pairs[3]])
|
directive.first = desc.atoi(snormal[pairs[2]:pairs[3]])
|
||||||
directive.last = desc.max
|
directive.last = desc.max
|
||||||
directive.step = atoi(snormal[pairs[4]:pairs[5]])
|
directive.step = atoi(snormal[pairs[4]:pairs[5]])
|
||||||
|
if directive.step < 1 || directive.step > desc.max {
|
||||||
|
return nil, fmt.Errorf("invalid interval %s", snormal)
|
||||||
|
}
|
||||||
directives = append(directives, &directive)
|
directives = append(directives, &directive)
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
@ -493,6 +499,9 @@ func genericFieldParse(s string, desc *fieldDescriptor) ([]*cronDirective, error
|
||||||
directive.first = desc.atoi(snormal[pairs[2]:pairs[3]])
|
directive.first = desc.atoi(snormal[pairs[2]:pairs[3]])
|
||||||
directive.last = desc.atoi(snormal[pairs[4]:pairs[5]])
|
directive.last = desc.atoi(snormal[pairs[4]:pairs[5]])
|
||||||
directive.step = atoi(snormal[pairs[6]:pairs[7]])
|
directive.step = atoi(snormal[pairs[6]:pairs[7]])
|
||||||
|
if directive.step < 1 || directive.step > desc.max {
|
||||||
|
return nil, fmt.Errorf("invalid interval %s", snormal)
|
||||||
|
}
|
||||||
directives = append(directives, &directive)
|
directives = append(directives, &directive)
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
|
@ -284,6 +284,29 @@ func TestNextN_every5min(t *testing.T) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Issue: https://github.com/gorhill/cronexpr/issues/16
|
||||||
|
func TestInterval_Interval60Issue(t *testing.T){
|
||||||
|
_, err := cronexpr.Parse("*/60 * * * * *")
|
||||||
|
if err == nil {
|
||||||
|
t.Errorf("parsing with interval 60 should return err")
|
||||||
|
}
|
||||||
|
|
||||||
|
_, err = cronexpr.Parse("*/61 * * * * *")
|
||||||
|
if err == nil {
|
||||||
|
t.Errorf("parsing with interval 61 should return err")
|
||||||
|
}
|
||||||
|
|
||||||
|
_, err = cronexpr.Parse("2/60 * * * * *")
|
||||||
|
if err == nil {
|
||||||
|
t.Errorf("parsing with interval 60 should return err")
|
||||||
|
}
|
||||||
|
|
||||||
|
_, err = cronexpr.Parse("2-20/61 * * * * *")
|
||||||
|
if err == nil {
|
||||||
|
t.Errorf("parsing with interval 60 should return err")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/******************************************************************************/
|
/******************************************************************************/
|
||||||
|
|
||||||
var benchmarkExpressions = []string{
|
var benchmarkExpressions = []string{
|
||||||
|
|
Loading…
Reference in New Issue