Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Clock ¶
type Clock interface {
After(d time.Duration) <-chan time.Time
At(t time.Time) <-chan time.Time
Sleep(d time.Duration)
Now() time.Time
Since(t time.Time) time.Duration
NewTicker(d time.Duration) Ticker
}
Clock provides an interface that packages can use instead of directly using the time module, so that chronology-related behavior can be tested
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)
// AdvanceTo advances the FakeClock to a new point in time, where the time
// is specified directly. Returns false if the specified time has allready
// passed.
AdvanceTo(t time.Time) bool
// NextWakeup returns the earliest time from now that a blocker would
// wait up. Returns a Zero time if there are no more blockers.
//
// This can be used with Advance to wake subsequent blockers no matter
// what time they are blocked on.
NextWakeup() time.Time
// BlockUntil will block until the FakeClock has the given number of
// sleepers (callers of Sleep or After)
BlockUntil(n int)
// NumSleepCalls returns the number of calls to a blocking sleep function
// (Sleep and After).
NumSleepCalls() int64
}
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.
Click to show internal directories.
Click to hide internal directories.
