Documentation
¶
Index ¶
- Constants
- func Context(t *testing.T, dur time.Duration) context.Context
- func CreateTemp(t *testing.T, dir, pattern string) *os.File
- func Eventually(ctx context.Context, t testing.TB, ...) (done bool)
- func GenerateTLSCertificate(t testing.TB, commonName string) tls.Certificate
- func Go(t *testing.T, fn func()) (done <-chan struct{})
- func InCI() bool
- func MustRandString(t *testing.T, n int) string
- func PromCounterAssertion(t testing.TB, metrics []*dto.MetricFamily, assert func(in float64) bool, ...) bool
- func PromCounterGathered(t testing.TB, metrics []*dto.MetricFamily, name string, labels ...string) bool
- func PromCounterHasValue(t testing.TB, metrics []*dto.MetricFamily, value float64, name string, ...) bool
- func PromGaugeAssertion(t testing.TB, metrics []*dto.MetricFamily, assert func(in float64) bool, ...) bool
- func PromGaugeGathered(t testing.TB, metrics []*dto.MetricFamily, name string, labels ...string) bool
- func PromGaugeHasValue(t testing.TB, metrics []*dto.MetricFamily, value float64, name string, ...) bool
- func RaceEnabled() bool
- func RandomPort(t *testing.T) int
- func RandomPortNoListen(*testing.T) uint16
- func RequireRecvCtx[A any](ctx context.Context, t testing.TB, c <-chan A) (a A)
- func RequireSendCtx[A any](ctx context.Context, t testing.TB, c chan<- A, a A)
- func SkipIfNotTiming(t *testing.T)
- func TempFile(t *testing.T, dir, pattern string) string
- type OAuth2Config
- func (*OAuth2Config) AuthCodeURL(state string, _ ...oauth2.AuthCodeOption) string
- func (*OAuth2Config) Do(_ context.Context, _ promoauth.Oauth2Source, req *http.Request) (*http.Response, error)
- func (c *OAuth2Config) Exchange(_ context.Context, _ string, _ ...oauth2.AuthCodeOption) (*oauth2.Token, error)
- func (c *OAuth2Config) TokenSource(_ context.Context, _ *oauth2.Token) oauth2.TokenSource
- type OAuth2TokenSource
- type TerminalReader
Constants ¶
const ( WaitShort = 10 * time.Second WaitMedium = 15 * time.Second WaitLong = 25 * time.Second WaitSuperLong = 60 * time.Second )
Constants for timing out operations, usable for creating contexts that timeout or in require.Eventually.
const ( IntervalFast = 25 * time.Millisecond IntervalMedium = 250 * time.Millisecond IntervalSlow = time.Second )
Constants for delaying repeated operations, e.g. in require.Eventually.
Variables ¶
This section is empty.
Functions ¶
func CreateTemp ¶
CreateTemp is a convenience function for creating a temporary file, like os.CreateTemp, but it also registers a cleanup function to close and remove the file.
func Eventually ¶
func Eventually(ctx context.Context, t testing.TB, condition func(ctx context.Context) (done bool), tick time.Duration, msgAndArgs ...interface{}) (done bool)
Eventually is like require.Eventually except it allows passing a context into the condition. It is safe to use with `require.*`.
If ctx times out, the test will fail, but not immediately. It is the caller's responsibility to exit early if required.
It is the caller's responsibility to ensure that ctx has a deadline or timeout set. Eventually will panic if this is not the case in order to avoid potentially waiting forever.
condition is not run in a goroutine; use the provided context argument for cancellation if required.
func GenerateTLSCertificate ¶
func GenerateTLSCertificate(t testing.TB, commonName string) tls.Certificate
func Go ¶ added in v2.4.0
Go runs fn in a goroutine and waits until fn has completed before test completion. Done is returned for optionally waiting for fn to exit.
func MustRandString ¶ added in v2.7.0
MustRandString returns a random string of length n.
func PromCounterAssertion ¶ added in v2.12.0
func PromCounterGathered ¶ added in v2.12.0
func PromCounterHasValue ¶ added in v2.8.0
func PromGaugeAssertion ¶ added in v2.12.0
func PromGaugeGathered ¶ added in v2.12.0
func PromGaugeHasValue ¶ added in v2.8.0
func RaceEnabled ¶
func RaceEnabled() bool
RaceEnabled returns whether the race detector is enabled. This is a constant at compile time. It should be used to conditionally skip tests that are known to be sensitive to being run with the race detector enabled. Please use sparingly and as a last resort.
func RandomPort ¶ added in v2.9.0
RandomPort is a helper function to find a free random port. Note that the OS may reallocate the port very quickly, so this is not _guaranteed_.
func RandomPortNoListen ¶ added in v2.9.0
RandomPortNoListen returns a random port in the ephemeral port range. Does not attempt to listen and close to find a port as the OS may reallocate the port very quickly.
func RequireRecvCtx ¶ added in v2.4.0
func RequireSendCtx ¶ added in v2.7.1
func SkipIfNotTiming ¶
Types ¶
type OAuth2Config ¶
type OAuth2Config struct { Token *oauth2.Token TokenSourceFunc OAuth2TokenSource }
func (*OAuth2Config) AuthCodeURL ¶
func (*OAuth2Config) AuthCodeURL(state string, _ ...oauth2.AuthCodeOption) string
func (*OAuth2Config) Do ¶ added in v2.7.0
func (*OAuth2Config) Do(_ context.Context, _ promoauth.Oauth2Source, req *http.Request) (*http.Response, error)
func (*OAuth2Config) Exchange ¶
func (c *OAuth2Config) Exchange(_ context.Context, _ string, _ ...oauth2.AuthCodeOption) (*oauth2.Token, error)
func (*OAuth2Config) TokenSource ¶
func (c *OAuth2Config) TokenSource(_ context.Context, _ *oauth2.Token) oauth2.TokenSource
type OAuth2TokenSource ¶
type TerminalReader ¶ added in v2.2.0
type TerminalReader struct {
// contains filtered or unexported fields
}
TerminalReader emulates a terminal and allows matching output. It's important in cases where we can get control sequences to parse them correctly, and keep the state of the terminal across the lifespan of the PTY, since some control sequences are relative to the current cursor position.
func NewTerminalReader ¶ added in v2.2.0
func NewTerminalReader(t *testing.T, r io.Reader) *TerminalReader
func (*TerminalReader) ReadUntil ¶ added in v2.2.0
func (tr *TerminalReader) ReadUntil(ctx context.Context, matcher func(line string) bool) (retErr error)
ReadUntil emulates a terminal and reads one byte at a time until the matcher returns true or the context expires. If the matcher is nil, read until EOF. The PTY must be sized to 80x80 or there could be unexpected results.
func (*TerminalReader) ReadUntilString ¶ added in v2.2.0
func (tr *TerminalReader) ReadUntilString(ctx context.Context, want string) error
ReadUntilString emulates a terminal and reads one byte at a time until we either see the string we want, or the context expires. The PTY must be sized to 80x80 or there could be unexpected results.