package clock
import "github.com/google/trillian/util/clock"
Package clock contains time utilities, and types that allow mocking system time in tests.
Index ¶
- func SecondsSince(ts TimeSource, t time.Time) float64
- func SleepContext(ctx context.Context, d time.Duration) error
- func SleepSource(ctx context.Context, d time.Duration, s TimeSource) error
- type FakeTimeSource
- func NewFake(t time.Time) *FakeTimeSource
- func (f *FakeTimeSource) NewTimer(d time.Duration) Timer
- func (f *FakeTimeSource) Now() time.Time
- func (f *FakeTimeSource) Set(t time.Time)
- type PredefinedFake
- type TimeSource
- type Timer
Functions ¶
func SecondsSince ¶
func SecondsSince(ts TimeSource, t time.Time) float64
SecondsSince returns the time in seconds elapsed since t until now, as measured by the TimeSource.
func SleepContext ¶
SleepContext sleeps for at least the specified duration. Returns ctx.Err() iff the context is done before the deadline.
func SleepSource ¶
SleepSource sleeps for at least the specified duration, as measured by the TimeSource. Returns ctx.Err() iff the context is done before the deadline.
Types ¶
type FakeTimeSource ¶
type FakeTimeSource struct {
// contains filtered or unexported fields
}
FakeTimeSource provides time that can be arbitrarily set. For tests only.
func NewFake ¶
func NewFake(t time.Time) *FakeTimeSource
NewFake creates a FakeTimeSource instance.
func (*FakeTimeSource) NewTimer ¶
func (f *FakeTimeSource) NewTimer(d time.Duration) Timer
NewTimer returns a fake Timer.
func (*FakeTimeSource) Now ¶
func (f *FakeTimeSource) Now() time.Time
Now returns the time value this instance contains.
func (*FakeTimeSource) Set ¶
func (f *FakeTimeSource) Set(t time.Time)
Set updates the time that this instance will report.
type PredefinedFake ¶
PredefinedFake is a TimeSource that returns a predefined set of times computed as base time + delays[i]. Delays don't have to be monotonic.
func (*PredefinedFake) NewTimer ¶
func (p *PredefinedFake) NewTimer(d time.Duration) Timer
NewTimer creates a timer with the specified delay. Not implemented.
func (*PredefinedFake) Now ¶
func (p *PredefinedFake) Now() time.Time
Now returns the current time, which depends on how many times this method has already been invoked. Must not be called more than len(delays) times.
type TimeSource ¶
type TimeSource interface { // Now returns the current time as seen by this TimeSource. Now() time.Time // NewTimer creates a timer that fires after the specified duration. NewTimer(d time.Duration) Timer }
TimeSource can provide the current time, or be replaced by a mock in tests to return specific values.
var System TimeSource = systemTimeSource{}
System is a default TimeSource that provides system time.
type Timer ¶
type Timer interface { // Chan returns a channel which is used to deliver the event. Chan() <-chan time.Time // Stop prevents the Timer from firing. Returns false if the event has // already fired, or the Timer has been stopped. Stop() bool }
Timer represents an event that fires with time passage. See time.Timer type for intuition on how it works.
Source Files ¶
time.go timer.go timesource.go
- Version
- v1.7.1 (latest)
- Published
- Jan 9, 2025
- Platform
- linux/amd64
- Imports
- 4 packages
- Last checked
- 5 days ago –
Tools for package owners.