فهرست منبع

integration: use timeout transport when launching cluster

This makes it do the same behavior as etcdmain does.
Yicheng Qin 11 سال پیش
والد
کامیت
7a1d147795
2فایلهای تغییر یافته به همراه12 افزوده شده و 10 حذف شده
  1. 11 9
      integration/cluster_test.go
  2. 1 1
      integration/member_test.go

+ 11 - 9
integration/cluster_test.go

@@ -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
 }
 

+ 1 - 1
integration/member_test.go

@@ -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 {