From ccb0934e22d23510243448a35a016010df8203bb Mon Sep 17 00:00:00 2001 From: Yicheng Qin Date: Thu, 2 Apr 2015 00:01:39 -0700 Subject: [PATCH] integration: add TestTLSClusterUsingDiscovery --- integration/cluster_test.go | 44 ++++++++++++++++++++++++++++++------- 1 file changed, 36 insertions(+), 8 deletions(-) diff --git a/integration/cluster_test.go b/integration/cluster_test.go index 4232a56e5..6b6de36f1 100644 --- a/integration/cluster_test.go +++ b/integration/cluster_test.go @@ -103,6 +103,26 @@ func testClusterUsingDiscovery(t *testing.T, size int) { clusterMustProgress(t, c.Members) } +func TestTLSClusterOf3UsingDiscovery(t *testing.T) { + defer afterTest(t) + dc := NewCluster(t, 1) + dc.Launch(t) + defer dc.Terminate(t) + // init discovery token space + dcc := mustNewHTTPClient(t, dc.URLs()) + dkapi := client.NewKeysAPI(dcc) + ctx, cancel := context.WithTimeout(context.Background(), requestTimeout) + if _, err := dkapi.Create(ctx, "/_config/size", fmt.Sprintf("%d", 3)); err != nil { + t.Fatal(err) + } + cancel() + + c := NewTLSClusterByDiscovery(t, 3, dc.URL(0)+"/v2/keys") + c.Launch(t) + defer c.Terminate(t) + clusterMustProgress(t, c.Members) +} + func TestDoubleClusterSizeOf1(t *testing.T) { testDoubleClusterSize(t, 1) } func TestDoubleClusterSizeOf3(t *testing.T) { testDoubleClusterSize(t, 3) } @@ -244,6 +264,17 @@ func newCluster(t *testing.T, size int, usePeerTLS bool) *cluster { return c } +func newClusterByDiscovery(t *testing.T, size int, usePeerTLS bool, url string) *cluster { + c := &cluster{} + ms := make([]*member, size) + for i := 0; i < size; i++ { + ms[i] = mustNewMember(t, c.name(i), usePeerTLS) + ms[i].DiscoveryURL = url + } + c.Members = ms + return c +} + // NewCluster returns an unlaunched cluster of the given size which has been // set to use static bootstrap. func NewCluster(t *testing.T, size int) *cluster { @@ -253,20 +284,17 @@ func NewCluster(t *testing.T, size int) *cluster { // NewClusterUsingDiscovery returns an unlaunched cluster of the given size // which has been set to use the given url as discovery service to bootstrap. func NewClusterByDiscovery(t *testing.T, size int, url string) *cluster { - c := &cluster{} - ms := make([]*member, size) - for i := 0; i < size; i++ { - ms[i] = mustNewMember(t, c.name(i), false) - ms[i].DiscoveryURL = url - } - c.Members = ms - return c + return newClusterByDiscovery(t, size, false, url) } func NewTLSCluster(t *testing.T, size int) *cluster { return newCluster(t, size, true) } +func NewTLSClusterByDiscovery(t *testing.T, size int, url string) *cluster { + return newClusterByDiscovery(t, size, true, url) +} + func (c *cluster) Launch(t *testing.T) { errc := make(chan error) for _, m := range c.Members {