ktesting: skip timing check in unit test

Extending the duration and the allowed delta in f6682370b1 was still not enough
to make the unit test run reliably in pull-kubernetes-unit.

Now it uses the original, stricter timing again, but only when run locally. In
Prow (detected by checking the "CI" env variable), the duration check is
skipped.
This commit is contained in:
Patrick Ohly 2024-02-24 19:26:29 +01:00
parent 8980b4b846
commit 1ecd4053de

View File

@ -19,6 +19,8 @@ package ktesting
import (
"context"
"errors"
"os"
"strings"
"testing"
"time"
@ -112,7 +114,17 @@ func TestCause(t *testing.T) {
if tt.expectDeadline != 0 {
actualDeadline, ok := ctx.Deadline()
if assert.True(t, ok, "should have had a deadline") {
assert.InDelta(t, time.Until(actualDeadline), tt.expectDeadline, float64(time.Second), "remaining time till Deadline()")
// Testing timing behavior is unreliable in Prow because
// the test runs in parallel with several others.
// Therefore this check is skipped if a CI environment is
// detected.
ci, _ := os.LookupEnv("CI")
switch strings.ToLower(ci) {
case "yes", "true", "1":
// Skip.
default:
assert.InDelta(t, time.Until(actualDeadline), tt.expectDeadline, float64(time.Second), "remaining time till Deadline()")
}
}
}
time.Sleep(tt.sleep)