var _ = Describe("pool", func() { var client *redis.Client BeforeEach(func() { client = redis.NewClient(redisOptions()) Expect(client.FlushDb().Err()).NotTo(HaveOccurred()) }) AfterEach(func() { Expect(client.Close()).NotTo(HaveOccurred()) }) It("should respect max size", func() { perform(1000, func(id int) { val, err := client.Ping().Result() Expect(err).NotTo(HaveOccurred()) Expect(val).To(Equal("PONG")) }) pool := client.Pool() Expect(pool.Len()).To(BeNumerically("<=", 10)) Expect(pool.FreeLen()).To(BeNumerically("<=", 10)) Expect(pool.Len()).To(Equal(pool.FreeLen())) }) It("should respect max on multi", func() { perform(1000, func(id int) { var ping *redis.StatusCmd multi := client.Multi()