clockwork: github.com/jonboulle/clockwork Index | Files

package clockwork

import "github.com/jonboulle/clockwork"

Index

Package Files

clockwork.go ticker.go

type Clock Uses

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
}

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 Uses

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 Uses

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 Uses

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 Uses

func NewFakeClockAt(t time.Time) FakeClock

NewFakeClockAt returns a FakeClock initialised at the given time.Time.

type Ticker Uses

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

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.

Package clockwork imports 2 packages (graph) and is imported by 707 packages. Updated 2019-01-14. Refresh now. Tools for package owners.