1
0
Fork 0
mirror of https://github.com/FrankerFaceZ/FrankerFaceZ.git synced 2025-07-24 03:28:30 +00:00

Moved rate.Limiter into its own package

This commit is contained in:
Kane York 2017-02-02 23:20:10 -08:00
parent 7be7fc5c3a
commit 1da392f5b3
7 changed files with 22 additions and 23 deletions

View file

@ -0,0 +1,40 @@
package rate
import (
"testing"
"time"
)
var exampleData = []string{}
func ExampleNewRateLimit() {
rl := NewRateLimit(100, 1*time.Minute)
go rl.Run()
defer rl.Close()
for _, v := range exampleData {
rl.Performed()
// do something with v
_ = v
}
}
func TestRateLimit(t *testing.T) {
rl := NewRateLimit(3, 100*time.Millisecond)
start := time.Now()
go rl.Run()
for i := 0; i < 4; i++ {
rl.Performed()
}
end := time.Now()
if end.Sub(start) < 100*time.Millisecond {
t.Error("ratelimiter did not wait for period to expire")
}
rl.Performed()
rl.Performed()
end2 := time.Now()
if end2.Sub(end) > 10*time.Millisecond {
t.Error("ratelimiter improperly waited when tokens were available")
}
rl.Close()
}