package clockwork
import "github.com/jonboulle/clockwork"
Index ¶
- func AddToContext(ctx context.Context, clock Clock) context.Context
- type Clock
- type FakeClock
- type Ticker
- type Timer
Functions ¶
func AddToContext ¶
AddToContext creates a derived context that references the specified clock.
Types ¶
type Clock ¶
type Clock 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 }
Clock provides an interface that packages can use instead of directly using the time module, so that chronology-related behavior can be tested
func FromContext ¶
FromContext extracts a clock from the context. If not present, a real clock is returned.
func NewRealClock ¶
func NewRealClock() Clock
NewRealClock returns a Clock which simply delegates calls to the actual time package; it should be used by packages in production.
type FakeClock ¶
type FakeClock interface { Clock // Advance advances the FakeClock to a new point in time, ensuring any existing // sleepers are notified appropriately before returning Advance(d time.Duration) // BlockUntil will block until the FakeClock has the given number of // sleepers (callers of Sleep or After) BlockUntil(n int) }
FakeClock provides an interface for a clock which can be manually advanced through time
func NewFakeClock ¶
func NewFakeClock() FakeClock
NewFakeClock returns a FakeClock implementation which can be manually advanced through time for testing. The initial time of the FakeClock will be an arbitrary non-zero time.
func NewFakeClockAt ¶
NewFakeClockAt returns a FakeClock initialised at the given time.Time.
type Ticker ¶
Ticker provides an interface which can be used instead of directly using the ticker within the time module. The real-time ticker t provides ticks through t.C which becomes now t.Chan() to make this channel requirement definable in this interface.
type Timer ¶
Timer provides an interface which can be used instead of directly using the timer within the time module. The real-time timer t provides events through t.C which becomes now t.Chan() to make this channel requirement definable in this interface.
Source Files ¶
clockwork.go context.go ticker.go timer.go
- Version
- v0.3.0
- Published
- Apr 21, 2022
- Platform
- darwin/amd64
- Imports
- 4 packages
- Last checked
- now –
Tools for package owners.