summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/go-redis/redis/internal/pool
diff options
context:
space:
mode:
authorChristopher Speller <crspeller@gmail.com>2018-04-16 05:37:14 -0700
committerJoram Wilander <jwawilander@gmail.com>2018-04-16 08:37:14 -0400
commit6e2cb00008cbf09e556b00f87603797fcaa47e09 (patch)
tree3c0eb55ff4226a3f024aad373140d1fb860a6404 /vendor/github.com/go-redis/redis/internal/pool
parentbf24f51c4e1cc6286885460672f7f449e8c6f5ef (diff)
downloadchat-6e2cb00008cbf09e556b00f87603797fcaa47e09.tar.gz
chat-6e2cb00008cbf09e556b00f87603797fcaa47e09.tar.bz2
chat-6e2cb00008cbf09e556b00f87603797fcaa47e09.zip
Depenancy upgrades and movign to dep. (#8630)
Diffstat (limited to 'vendor/github.com/go-redis/redis/internal/pool')
-rw-r--r--vendor/github.com/go-redis/redis/internal/pool/bench_test.go80
-rw-r--r--vendor/github.com/go-redis/redis/internal/pool/main_test.go35
-rw-r--r--vendor/github.com/go-redis/redis/internal/pool/pool_test.go241
3 files changed, 0 insertions, 356 deletions
diff --git a/vendor/github.com/go-redis/redis/internal/pool/bench_test.go b/vendor/github.com/go-redis/redis/internal/pool/bench_test.go
deleted file mode 100644
index e0bb52446..000000000
--- a/vendor/github.com/go-redis/redis/internal/pool/bench_test.go
+++ /dev/null
@@ -1,80 +0,0 @@
-package pool_test
-
-import (
- "testing"
- "time"
-
- "github.com/go-redis/redis/internal/pool"
-)
-
-func benchmarkPoolGetPut(b *testing.B, poolSize int) {
- connPool := pool.NewConnPool(&pool.Options{
- Dialer: dummyDialer,
- PoolSize: poolSize,
- PoolTimeout: time.Second,
- IdleTimeout: time.Hour,
- IdleCheckFrequency: time.Hour,
- })
-
- b.ResetTimer()
-
- b.RunParallel(func(pb *testing.PB) {
- for pb.Next() {
- cn, _, err := connPool.Get()
- if err != nil {
- b.Fatal(err)
- }
- if err = connPool.Put(cn); err != nil {
- b.Fatal(err)
- }
- }
- })
-}
-
-func BenchmarkPoolGetPut10Conns(b *testing.B) {
- benchmarkPoolGetPut(b, 10)
-}
-
-func BenchmarkPoolGetPut100Conns(b *testing.B) {
- benchmarkPoolGetPut(b, 100)
-}
-
-func BenchmarkPoolGetPut1000Conns(b *testing.B) {
- benchmarkPoolGetPut(b, 1000)
-}
-
-func benchmarkPoolGetRemove(b *testing.B, poolSize int) {
- connPool := pool.NewConnPool(&pool.Options{
- Dialer: dummyDialer,
- PoolSize: poolSize,
- PoolTimeout: time.Second,
- IdleTimeout: time.Hour,
- IdleCheckFrequency: time.Hour,
- })
-
- b.ResetTimer()
-
- b.RunParallel(func(pb *testing.PB) {
- for pb.Next() {
- cn, _, err := connPool.Get()
- if err != nil {
- b.Fatal(err)
- }
- if err := connPool.Remove(cn); err != nil {
- b.Fatal(err)
- }
- }
- })
-}
-
-func BenchmarkPoolGetRemove10Conns(b *testing.B) {
- benchmarkPoolGetRemove(b, 10)
-}
-
-func BenchmarkPoolGetRemove100Conns(b *testing.B) {
- benchmarkPoolGetRemove(b, 100)
-}
-
-func BenchmarkPoolGetRemove1000Conns(b *testing.B) {
- benchmarkPoolGetRemove(b, 1000)
-}
diff --git a/vendor/github.com/go-redis/redis/internal/pool/main_test.go b/vendor/github.com/go-redis/redis/internal/pool/main_test.go
deleted file mode 100644
index 43afe3fa9..000000000
--- a/vendor/github.com/go-redis/redis/internal/pool/main_test.go
+++ /dev/null
@@ -1,35 +0,0 @@
-package pool_test
-
-import (
- "net"
- "sync"
- "testing"
-
- . "github.com/onsi/ginkgo"
- . "github.com/onsi/gomega"
-)
-
-func TestGinkgoSuite(t *testing.T) {
- RegisterFailHandler(Fail)
- RunSpecs(t, "pool")
-}
-
-func perform(n int, cbs ...func(int)) {
- var wg sync.WaitGroup
- for _, cb := range cbs {
- for i := 0; i < n; i++ {
- wg.Add(1)
- go func(cb func(int), i int) {
- defer GinkgoRecover()
- defer wg.Done()
-
- cb(i)
- }(cb, i)
- }
- }
- wg.Wait()
-}
-
-func dummyDialer() (net.Conn, error) {
- return &net.TCPConn{}, nil
-}
diff --git a/vendor/github.com/go-redis/redis/internal/pool/pool_test.go b/vendor/github.com/go-redis/redis/internal/pool/pool_test.go
deleted file mode 100644
index 68c9a1bef..000000000
--- a/vendor/github.com/go-redis/redis/internal/pool/pool_test.go
+++ /dev/null
@@ -1,241 +0,0 @@
-package pool_test
-
-import (
- "testing"
- "time"
-
- "github.com/go-redis/redis/internal/pool"
-
- . "github.com/onsi/ginkgo"
- . "github.com/onsi/gomega"
-)
-
-var _ = Describe("ConnPool", func() {
- var connPool *pool.ConnPool
-
- BeforeEach(func() {
- connPool = pool.NewConnPool(&pool.Options{
- Dialer: dummyDialer,
- PoolSize: 10,
- PoolTimeout: time.Hour,
- IdleTimeout: time.Millisecond,
- IdleCheckFrequency: time.Millisecond,
- })
- })
-
- AfterEach(func() {
- connPool.Close()
- })
-
- It("should unblock client when conn is removed", func() {
- // Reserve one connection.
- cn, _, err := connPool.Get()
- Expect(err).NotTo(HaveOccurred())
-
- // Reserve all other connections.
- var cns []*pool.Conn
- for i := 0; i < 9; i++ {
- cn, _, err := connPool.Get()
- Expect(err).NotTo(HaveOccurred())
- cns = append(cns, cn)
- }
-
- started := make(chan bool, 1)
- done := make(chan bool, 1)
- go func() {
- defer GinkgoRecover()
-
- started <- true
- _, _, err := connPool.Get()
- Expect(err).NotTo(HaveOccurred())
- done <- true
-
- err = connPool.Put(cn)
- Expect(err).NotTo(HaveOccurred())
- }()
- <-started
-
- // Check that Get is blocked.
- select {
- case <-done:
- Fail("Get is not blocked")
- default:
- // ok
- }
-
- err = connPool.Remove(cn)
- Expect(err).NotTo(HaveOccurred())
-
- // Check that Ping is unblocked.
- select {
- case <-done:
- // ok
- case <-time.After(time.Second):
- Fail("Get is not unblocked")
- }
-
- for _, cn := range cns {
- err = connPool.Put(cn)
- Expect(err).NotTo(HaveOccurred())
- }
- })
-})
-
-var _ = Describe("conns reaper", func() {
- const idleTimeout = time.Minute
-
- var connPool *pool.ConnPool
- var conns, idleConns, closedConns []*pool.Conn
-
- BeforeEach(func() {
- conns = nil
- closedConns = nil
-
- connPool = pool.NewConnPool(&pool.Options{
- Dialer: dummyDialer,
- PoolSize: 10,
- PoolTimeout: time.Second,
- IdleTimeout: idleTimeout,
- IdleCheckFrequency: time.Hour,
-
- OnClose: func(cn *pool.Conn) error {
- closedConns = append(closedConns, cn)
- return nil
- },
- })
-
- // add stale connections
- idleConns = nil
- for i := 0; i < 3; i++ {
- cn, _, err := connPool.Get()
- Expect(err).NotTo(HaveOccurred())
- cn.SetUsedAt(time.Now().Add(-2 * idleTimeout))
- conns = append(conns, cn)
- idleConns = append(idleConns, cn)
- }
-
- // add fresh connections
- for i := 0; i < 3; i++ {
- cn, _, err := connPool.Get()
- Expect(err).NotTo(HaveOccurred())
- conns = append(conns, cn)
- }
-
- for _, cn := range conns {
- Expect(connPool.Put(cn)).NotTo(HaveOccurred())
- }
-
- Expect(connPool.Len()).To(Equal(6))
- Expect(connPool.FreeLen()).To(Equal(6))
-
- n, err := connPool.ReapStaleConns()
- Expect(err).NotTo(HaveOccurred())
- Expect(n).To(Equal(3))
- })
-
- AfterEach(func() {
- _ = connPool.Close()
- Expect(connPool.Len()).To(Equal(0))
- Expect(connPool.FreeLen()).To(Equal(0))
- Expect(len(closedConns)).To(Equal(len(conns)))
- Expect(closedConns).To(ConsistOf(conns))
- })
-
- It("reaps stale connections", func() {
- Expect(connPool.Len()).To(Equal(3))
- Expect(connPool.FreeLen()).To(Equal(3))
- })
-
- It("does not reap fresh connections", func() {
- n, err := connPool.ReapStaleConns()
- Expect(err).NotTo(HaveOccurred())
- Expect(n).To(Equal(0))
- })
-
- It("stale connections are closed", func() {
- Expect(len(closedConns)).To(Equal(len(idleConns)))
- Expect(closedConns).To(ConsistOf(idleConns))
- })
-
- It("pool is functional", func() {
- for j := 0; j < 3; j++ {
- var freeCns []*pool.Conn
- for i := 0; i < 3; i++ {
- cn, _, err := connPool.Get()
- Expect(err).NotTo(HaveOccurred())
- Expect(cn).NotTo(BeNil())
- freeCns = append(freeCns, cn)
- }
-
- Expect(connPool.Len()).To(Equal(3))
- Expect(connPool.FreeLen()).To(Equal(0))
-
- cn, _, err := connPool.Get()
- Expect(err).NotTo(HaveOccurred())
- Expect(cn).NotTo(BeNil())
- conns = append(conns, cn)
-
- Expect(connPool.Len()).To(Equal(4))
- Expect(connPool.FreeLen()).To(Equal(0))
-
- err = connPool.Remove(cn)
- Expect(err).NotTo(HaveOccurred())
-
- Expect(connPool.Len()).To(Equal(3))
- Expect(connPool.FreeLen()).To(Equal(0))
-
- for _, cn := range freeCns {
- err := connPool.Put(cn)
- Expect(err).NotTo(HaveOccurred())
- }
-
- Expect(connPool.Len()).To(Equal(3))
- Expect(connPool.FreeLen()).To(Equal(3))
- }
- })
-})
-
-var _ = Describe("race", func() {
- var connPool *pool.ConnPool
- var C, N int
-
- BeforeEach(func() {
- C, N = 10, 1000
- if testing.Short() {
- C = 4
- N = 100
- }
- })
-
- AfterEach(func() {
- connPool.Close()
- })
-
- It("does not happen on Get, Put, and Remove", func() {
- connPool = pool.NewConnPool(&pool.Options{
- Dialer: dummyDialer,
- PoolSize: 10,
- PoolTimeout: time.Minute,
- IdleTimeout: time.Millisecond,
- IdleCheckFrequency: time.Millisecond,
- })
-
- perform(C, func(id int) {
- for i := 0; i < N; i++ {
- cn, _, err := connPool.Get()
- Expect(err).NotTo(HaveOccurred())
- if err == nil {
- Expect(connPool.Put(cn)).NotTo(HaveOccurred())
- }
- }
- }, func(id int) {
- for i := 0; i < N; i++ {
- cn, _, err := connPool.Get()
- Expect(err).NotTo(HaveOccurred())
- if err == nil {
- Expect(connPool.Remove(cn)).NotTo(HaveOccurred())
- }
- }
- })
- })
-})