Migrate rate limiter test

This commit is contained in:
Dimitrij Denissenko 2015-01-25 19:24:27 +00:00
parent 1a56e736aa
commit d7afd989b9
1 changed files with 12 additions and 18 deletions

View File

@ -1,31 +1,25 @@
package redis package redis
import ( import (
"sync"
"testing" "testing"
"time" "time"
. "github.com/onsi/ginkgo"
. "github.com/onsi/gomega"
) )
func TestRateLimiter(t *testing.T) { var _ = Describe("RateLimiter", func() {
var n = 100000 var n = 100000
if testing.Short() { if testing.Short() {
n = 1000 n = 1000
} }
It("should rate limit", func() {
rl := newRateLimiter(time.Minute, n) rl := newRateLimiter(time.Minute, n)
for i := 0; i <= n; i++ {
Expect(rl.Check()).To(BeTrue())
}
Expect(rl.Check()).To(BeFalse())
})
wg := &sync.WaitGroup{} })
for i := 0; i < n; i++ {
wg.Add(1)
go func() {
if !rl.Check() {
panic("check failed")
}
wg.Done()
}()
}
wg.Wait()
if rl.Check() && rl.Check() {
t.Fatal("check passed")
}
}