Atlas › Test

TestClockedRateLimiter_Reserve

Exact test identity: go.temporal.io/server/common/quotas/TestClockedRateLimiter_Reserve

Package
go.temporal.io/server/common/quotas
Suite / test hierarchy
TestClockedRateLimiter_Reserve
Test
TestClockedRateLimiter_Reserve
Introduced at
TestClockedRateLimiter_Reserve Frontier kind: Test frontier
Covered ranges
8
Covered lines
34
Covered files
2

Covered source

Expand a file to inspect source; the > gutter marks covered lines.

go.temporal.io/server/common/quotas/clocked_rate_limiter.go 23 covered LOC · 6 ranges

Open complete file

25 )
26
27 > func NewClockedRateLimiter(rateLimiter *rate.Limiter, timeSource clock.TimeSource) ClockedRateLimiter { clocked_rate_limiter.go
28 > return ClockedRateLimiter{
29 > rateLimiter: rateLimiter,
30 > timeSource: timeSource,
31 > recycleCh: make(chan struct{}),
32 > }
33 > }
34
35 > func (l ClockedRateLimiter) Allow() bool { clocked_rate_limiter.go
36 > return l.AllowN(l.timeSource.Now(), 1)
37 > }
38
39 > func (l ClockedRateLimiter) AllowN(now time.Time, token int) bool { clocked_rate_limiter.go
40 > return l.rateLimiter.AllowN(now, token)
41 > }
42
43 // ClockedReservation wraps a rate.Reservation with a clockwork.Clock. It is used to ensure that the reservation
56 }
57
58 > func (r ClockedReservation) DelayFrom(t time.Time) time.Duration { clocked_rate_limiter.go
59 > return r.reservation.DelayFrom(t)
60 > }
61
62 func (r ClockedReservation) Cancel() {
68 }
69
70 > func (l ClockedRateLimiter) Reserve() ClockedReservation { clocked_rate_limiter.go
71 > return l.ReserveN(l.timeSource.Now(), 1)
72 > }
73
74 > func (l ClockedRateLimiter) ReserveN(now time.Time, token int) ClockedReservation { clocked_rate_limiter.go
75 > reservation := l.rateLimiter.ReserveN(now, token)
76 > return ClockedReservation{reservation, l.timeSource}
77 > }
78
79 func (l ClockedRateLimiter) Wait(ctx context.Context) error {
go.temporal.io/server/common/clock/event_time_source.go 11 covered LOC · 2 ranges

Open complete file

39
40 // NewEventTimeSource returns a EventTimeSource with the current time set to Unix zero: 1970-01-01 00:00:00 +0000 UTC.
41 > func NewEventTimeSource() *EventTimeSource { event_time_source.go
42 > return &EventTimeSource{
43 > now: time.Unix(0, 0),
44 > }
45 > }
46
47 // Some clients depend on the fact that the runtime's timers do _not_ run synchronously.
55
56 // Now return the current time.
57 > func (ts *EventTimeSource) Now() time.Time { event_time_source.go
58 > ts.mu.RLock()
59 > defer ts.mu.RUnlock()
60 >
61 > return ts.now
62 > }
63
64 func (ts *EventTimeSource) Since(t time.Time) time.Duration {