func (s *S) TestRetire(c *gocheck.C) { defer func() { if r := recover(); !c.Failed() && r == nil { c.Errorf("Should panic in ping, but did not!") } }() Open("127.0.0.1:27017", "tsuru_storage_test") sess := conn["127.0.0.1:27017"] sess.used = sess.used.Add(-1 * 2 * period) conn["127.0.0.1:27017"] = sess var ticker time.Ticker ch := make(chan time.Time, 1) ticker.C = ch ch <- time.Now() var wg sync.WaitGroup wg.Add(1) go func() { retire(&ticker) wg.Done() }() close(ch) wg.Wait() _, ok := conn["127.0.0.1:27017"] c.Check(ok, gocheck.Equals, false) sess.s.Ping() }
func (s *S) TestRetire(c *check.C) { log.Println("--> start [TestRetire]") defer func() { if r := recover(); !c.Failed() && r == nil { c.Errorf("Should panic in ping, but did not!") } }() Open(addr, bkt) ky := strings.Join(addr, "::") sess := conn[ky] sess.used = sess.used.Add(-1 * 2 * period) conn[ky] = sess var ticker time.Ticker ch := make(chan time.Time, 1) ticker.C = ch ch <- time.Now() var wg sync.WaitGroup wg.Add(1) go func() { retire(&ticker) wg.Done() }() close(ch) wg.Wait() _, ok := conn[ky] c.Check(ok, check.Equals, false) sess1 := conn[ky] sess1.s.Ping() log.Println("--> end [TestOpenReconnects]") }