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.last = desc.max
 | 
			
		||||
			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)
 | 
			
		||||
			continue
 | 
			
		||||
		}
 | 
			
		||||
| 
						 | 
				
			
			@ -483,6 +486,9 @@ func genericFieldParse(s string, desc *fieldDescriptor) ([]*cronDirective, error
 | 
			
		|||
			directive.first = desc.atoi(snormal[pairs[2]:pairs[3]])
 | 
			
		||||
			directive.last = desc.max
 | 
			
		||||
			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)
 | 
			
		||||
			continue
 | 
			
		||||
		}
 | 
			
		||||
| 
						 | 
				
			
			@ -493,6 +499,9 @@ func genericFieldParse(s string, desc *fieldDescriptor) ([]*cronDirective, error
 | 
			
		|||
			directive.first = desc.atoi(snormal[pairs[2]:pairs[3]])
 | 
			
		||||
			directive.last = desc.atoi(snormal[pairs[4]:pairs[5]])
 | 
			
		||||
			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)
 | 
			
		||||
			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{
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue