// Note that Ping won't work with old (1.2) mongo servers. func (mgw *MongoWrapper) TestConnection(timeout time.Duration) bool { session, err := mgo.DialWithTimeout(mgw.url(), timeout) if err != nil { return false } defer session.Close() session.SetSyncTimeout(timeout) if err = session.Ping(); err != nil { return false } return true }
// ping won't work with old (1.2) mongo servers. func (ins *instance) ping(timeout time.Duration) bool { session, err := mgo.DialWithTimeout(ins.url(), timeout) if err != nil { return false } defer session.Close() session.SetSyncTimeout(timeout) if err = session.Ping(); err != nil { return false } return true }
func (s *S) TestDialWithTimeout(c *C) { if *fast { c.Skip("-fast") } timeout := 2 * time.Second started := time.Now() // 40009 isn't used by the test servers. session, err := mgo.DialWithTimeout("localhost:40009", timeout) if session != nil { session.Close() } c.Assert(err, ErrorMatches, "no reachable servers") c.Assert(session, IsNil) c.Assert(started.Before(time.Now().Add(-timeout)), Equals, true) c.Assert(started.After(time.Now().Add(-timeout*2)), Equals, true) }
func (s *S) TestSocketTimeoutOnDial(c *C) { if *fast { c.Skip("-fast") } timeout := 1 * time.Second defer mgo.HackSyncSocketTimeout(timeout)() s.Freeze("localhost:40001") started := time.Now() session, err := mgo.DialWithTimeout("localhost:40001", timeout) c.Assert(err, ErrorMatches, "no reachable servers") c.Assert(session, IsNil) c.Assert(started.Before(time.Now().Add(-timeout)), Equals, true) c.Assert(started.After(time.Now().Add(-20*time.Second)), Equals, true) }