|
5 | 5 | "os" |
6 | 6 | "path/filepath" |
7 | 7 | "testing" |
| 8 | + "time" |
8 | 9 |
|
9 | 10 | "github.com/google/go-cmp/cmp" |
10 | 11 | ) |
@@ -375,3 +376,37 @@ t1643d7874890dca5982facfba9c4f24da53876e9 4c286e182bc4d1832a8739b18c19ecaf9262c3 |
375 | 376 | }) |
376 | 377 | } |
377 | 378 | } |
| 379 | + |
| 380 | +func TestJitter(t *testing.T) { |
| 381 | + type args struct { |
| 382 | + duration time.Duration |
| 383 | + maxFactor float64 |
| 384 | + } |
| 385 | + tests := []struct { |
| 386 | + name string |
| 387 | + args args |
| 388 | + minWant time.Duration |
| 389 | + maxWant time.Duration |
| 390 | + }{ |
| 391 | + {"1", args{10 * time.Second, 0.1}, 10 * time.Second, 11 * time.Second}, |
| 392 | + {"2", args{10 * time.Second, 0.5}, 10 * time.Second, 15 * time.Second}, |
| 393 | + {"3", args{10 * time.Second, 0.0}, 10 * time.Second, 10 * time.Second}, |
| 394 | + {"4", args{30 * time.Second, 0.1}, 30 * time.Second, 33 * time.Second}, |
| 395 | + {"5", args{30 * time.Second, 0.5}, 30 * time.Second, 45 * time.Second}, |
| 396 | + {"6", args{30 * time.Second, 0.0}, 30 * time.Second, 30 * time.Second}, |
| 397 | + } |
| 398 | + for _, tt := range tests { |
| 399 | + t.Run(tt.name, func(t *testing.T) { |
| 400 | + // since we are using rand test values 10 times |
| 401 | + for i := 0; i < 10; i++ { |
| 402 | + got := jitter(tt.args.duration, tt.args.maxFactor) |
| 403 | + if got < tt.minWant { |
| 404 | + t.Errorf("jitter() = %v, min-want %v", got, tt.minWant) |
| 405 | + } |
| 406 | + if got > tt.maxWant { |
| 407 | + t.Errorf("jitter() = %v, max-want %v", got, tt.maxWant) |
| 408 | + } |
| 409 | + } |
| 410 | + }) |
| 411 | + } |
| 412 | +} |
0 commit comments