Browse Source

testutil: key leader wait on bootstrap flag

pull/964/head
Ryan Uber 10 years ago
parent
commit
480c189d9a
  1. 3
      testutil/README.md
  2. 11
      testutil/server.go

3
testutil/README.md

@ -29,10 +29,9 @@ func TestMain(t *testing.T) {
defer srv1.Stop() defer srv1.Stop()
// Create a secondary server, passing in configuration // Create a secondary server, passing in configuration
// to avoid bootstrapping or waiting for a leader. // to avoid bootstrapping as we are forming a cluster.
srv2 := testutil.NewTestServerConfig(t, func(c *testutil.TestServerConfig) { srv2 := testutil.NewTestServerConfig(t, func(c *testutil.TestServerConfig) {
c.Bootstrap = false c.Bootstrap = false
c.NoLeaderWait = true
}) })
defer srv2.Stop() defer srv2.Stop()

11
testutil/server.go

@ -59,11 +59,6 @@ type TestServerConfig struct {
Bind string `json:"bind_addr,omitempty"` Bind string `json:"bind_addr,omitempty"`
Addresses *TestAddressConfig `json:"addresses,omitempty"` Addresses *TestAddressConfig `json:"addresses,omitempty"`
Ports *TestPortConfig `json:"ports,omitempty"` Ports *TestPortConfig `json:"ports,omitempty"`
// NoLeaderWait is a special config option used to instruct
// the test harness not to wait for a leader. Useful for
// bootstrapping a multi-node cluster for testing.
NoLeaderWait bool `json:"-"`
} }
// ServerConfigCallback is a function interface which can be // ServerConfigCallback is a function interface which can be
@ -207,10 +202,10 @@ func NewTestServerConfig(t *testing.T, cb ServerConfigCallback) *TestServer {
} }
// Wait for the server to be ready // Wait for the server to be ready
if consulConfig.NoLeaderWait { if consulConfig.Bootstrap {
server.waitForAPI()
} else {
server.waitForLeader() server.waitForLeader()
} else {
server.waitForAPI()
} }
return server return server

Loading…
Cancel
Save