Jelajahi Sumber

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 tahun lalu
induk
melakukan
0275a3e54f
1 mengubah file dengan 14 tambahan dan 0 penghapusan
  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())