Procházet zdrojové kódy

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 před 6 roky
rodič
revize
0275a3e54f
1 změnil soubory, kde provedl 14 přidání a 0 odebrání
  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())