소스 검색

cron_test: fix bug in tests leading to flakiness

Test[Non]LocalTimezone was occasionally specifying an invalid cron spec seconds
field of "59,60", which caused it to subsequently fail. Since rolling the cron
spec forward is hard, in those cases we instead sleep for a couple seconds to
avoid the scenario.

Fixes #205
Rob Figueiredo 6 년 전
부모
커밋
0275a3e54f
1개의 변경된 파일14개의 추가작업 그리고 0개의 파일을 삭제
  1. 14 0
      cron_test.go

+ 14 - 0
cron_test.go

@@ -297,6 +297,13 @@ func TestLocalTimezone(t *testing.T) {
 	wg.Add(2)
 
 	now := time.Now()
+	// FIX: Issue #205
+	// This calculation doesn't work in seconds 58 or 59.
+	// Take the easy way out and sleep.
+	if now.Second() >= 58 {
+		time.Sleep(2 * time.Second)
+		now = time.Now()
+	}
 	spec := fmt.Sprintf("%d,%d %d %d %d %d ?",
 		now.Second()+1, now.Second()+2, now.Minute(), now.Hour(), now.Day(), now.Month())
 
@@ -324,6 +331,13 @@ func TestNonLocalTimezone(t *testing.T) {
 	}
 
 	now := time.Now().In(loc)
+	// FIX: Issue #205
+	// This calculation doesn't work in seconds 58 or 59.
+	// Take the easy way out and sleep.
+	if now.Second() >= 58 {
+		time.Sleep(2 * time.Second)
+		now = time.Now().In(loc)
+	}
 	spec := fmt.Sprintf("%d,%d %d %d %d %d ?",
 		now.Second()+1, now.Second()+2, now.Minute(), now.Hour(), now.Day(), now.Month())