clock

package
v1.2.8-prerelease2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 5, 2024 License: MIT Imports: 2 Imported by: 8

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type MockedTimeSource added in v1.2.7

type MockedTimeSource interface {
	TimeSource
	// Advance advances the FakeClock to a new point in time, ensuring any existing
	// waiters are notified appropriately before returning.
	Advance(d time.Duration)
	// BlockUntil blocks until the FakeClock has the given number of waiters
	// running at the same time.
	//
	// Waiters are either time.Sleep, time.After[Func], time.Ticker, or time.Timer,
	// and they decrement the counter when they complete or are stopped.
	BlockUntil(waiters int)
}

MockedTimeSource provides an interface for a clock which can be manually advanced through time.

MockedTimeSource maintains a list of "waiters," which consists of all callers waiting on the underlying clock (i.e. Tickers and Timers including callers of Sleep or After). Users can call BlockUntil to block until the clock has an expected number of waiters.

func NewMockedTimeSource added in v1.2.7

func NewMockedTimeSource() MockedTimeSource

NewMockedTimeSource returns a time source that servers fake controlled time

func NewMockedTimeSourceAt added in v1.2.7

func NewMockedTimeSourceAt(t time.Time) MockedTimeSource

NewMockedTimeSourceAt returns a time source that servers fake controlled time. The initial time of the MockedTimeSource will be the given time.

type Ticker added in v1.2.7

type Ticker interface {
	Chan() <-chan time.Time
	Reset(d time.Duration)
	Stop()
}

Ticker provides an interface which can be used instead of directly using time.Ticker. The real-time ticker t provides ticks through t.C which becomes t.Chan() to make this channel requirement definable in this interface.

type TimeSource

type TimeSource interface {
	After(d time.Duration) <-chan time.Time
	Sleep(d time.Duration)
	Now() time.Time
	Since(t time.Time) time.Duration
	NewTicker(d time.Duration) Ticker
	NewTimer(d time.Duration) Timer
	AfterFunc(d time.Duration, f func()) Timer
}

TimeSource provides an interface that packages can use instead of directly using the time module, so that chronology-related behavior can be tested.

func NewRealTimeSource

func NewRealTimeSource() TimeSource

NewRealTimeSource returns a time source that servers real wall clock time

type Timer added in v1.2.7

type Timer interface {
	Chan() <-chan time.Time
	Reset(d time.Duration) bool
	Stop() bool
}

Timer provides an interface which can be used instead of directly using time.Timer. The real-time timer t provides events through t.C which becomes t.Chan() to make this channel requirement definable in this interface.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL