v2: Add defensive pool check.

This commit is contained in:
Vladimir Mihailenco 2013-09-17 12:03:17 +03:00
parent 73b92efa94
commit 301d2f1353
2 changed files with 16 additions and 6 deletions

View File

@ -117,6 +117,10 @@ func (p *connPool) Get() (*conn, bool, error) {
}
func (p *connPool) Put(cn *conn) error {
if cn.Rd.Buffered() != 0 {
panic("pool: put connection with buffered data")
}
p.cond.L.Lock()
cn.UsedAt = time.Now()
p.conns.PushFront(cn)

View File

@ -27,19 +27,25 @@ func sortStrings(slice []string) []string {
//------------------------------------------------------------------------------
type RedisShutdownTest struct {
type RedisConnectionTest struct {
opt *redis.Options
client *redis.Client
}
var _ = Suite(&RedisShutdownTest{})
var _ = Suite(&RedisConnectionTest{})
func (t *RedisShutdownTest) SetUpTest(c *C) {
t.client = redis.DialTCP(&redis.Options{
func (t *RedisConnectionTest) SetUpTest(c *C) {
t.opt = &redis.Options{
Addr: redisAddr,
})
}
t.client = redis.DialTCP(t.opt)
}
func (t *RedisShutdownTest) TestShutdown(c *C) {
func (t *RedisConnectionTest) TearDownTest(c *C) {
c.Assert(t.client.Close(), IsNil)
}
func (t *RedisConnectionTest) TestShutdown(c *C) {
c.Skip("shutdowns server")
shutdown := t.client.Shutdown()