integration: use timeout transport when launching cluster

This makes it do the same behavior as etcdmain does.
This commit is contained in:
Yicheng Qin 2014-12-01 16:26:27 -08:00
parent 19ccdbee18
commit 7a1d147795
2 changed files with 12 additions and 10 deletions

View File

@ -34,7 +34,9 @@ import (
"github.com/coreos/etcd/etcdserver"
"github.com/coreos/etcd/etcdserver/etcdhttp"
"github.com/coreos/etcd/etcdserver/etcdhttp/httptypes"
"github.com/coreos/etcd/pkg/transport"
"github.com/coreos/etcd/pkg/types"
"github.com/coreos/etcd/rafthttp"
"github.com/coreos/etcd/Godeps/_workspace/src/golang.org/x/net/context"
)
@ -423,13 +425,13 @@ func mustNewMember(t *testing.T, name string) *member {
t.Fatal(err)
}
m.NewCluster = true
m.Transport = newTransport()
m.Transport = mustNewTransport(t)
return m
}
// Clone returns a member with the same server configuration. The returned
// member will not set PeerListeners and ClientListeners.
func (m *member) Clone() *member {
func (m *member) Clone(t *testing.T) *member {
mm := &member{}
mm.ServerConfig = m.ServerConfig
@ -452,7 +454,7 @@ func (m *member) Clone() *member {
// this should never fail
panic(err)
}
mm.Transport = newTransport()
mm.Transport = mustNewTransport(t)
return mm
}
@ -524,18 +526,18 @@ func (m *member) Terminate(t *testing.T) {
}
func mustNewHTTPClient(t *testing.T, eps []string) client.HTTPClient {
cc, err := client.NewHTTPClient(newTransport(), eps)
cc, err := client.NewHTTPClient(mustNewTransport(t), eps)
if err != nil {
t.Fatal(err)
}
return cc
}
func newTransport() *http.Transport {
tr := &http.Transport{}
// TODO: need the support of graceful stop in Sender to remove this
tr.DisableKeepAlives = true
tr.Dial = (&net.Dialer{Timeout: 100 * time.Millisecond}).Dial
func mustNewTransport(t *testing.T) *http.Transport {
tr, err := transport.NewTimeoutTransport(transport.TLSInfo{}, rafthttp.ConnReadTimeout, rafthttp.ConnWriteTimeout)
if err != nil {
t.Fatal(err)
}
return tr
}

View File

@ -25,7 +25,7 @@ func TestRestartMember(t *testing.T) {
func TestLaunchDuplicateMemberShouldFail(t *testing.T) {
size := 3
c := NewCluster(t, size)
m := c.Members[0].Clone()
m := c.Members[0].Clone(t)
var err error
m.DataDir, err = ioutil.TempDir(os.TempDir(), "etcd")
if err != nil {