From 3eb3bece11c5a97f0b82c855518d4ed1fd3353e6 Mon Sep 17 00:00:00 2001 From: nolouch Date: Mon, 4 Jun 2018 16:03:53 +0800 Subject: [PATCH] fix tests --- pd-client/leader_change_test.go | 2 +- pkg/etcdutil/etcdutil_test.go | 2 ++ server/api/server_test.go | 1 + server/api/store_ns_test.go | 9 +++++---- server/join.go | 4 +++- server/join_test.go | 1 + server/leader_test.go | 9 ++++----- server/server.go | 10 ++++++++++ server/server_test.go | 5 +++++ server/testutil.go | 1 + 10 files changed, 33 insertions(+), 11 deletions(-) diff --git a/pd-client/leader_change_test.go b/pd-client/leader_change_test.go index e527ead71ea..867355354e4 100644 --- a/pd-client/leader_change_test.go +++ b/pd-client/leader_change_test.go @@ -38,10 +38,10 @@ func (s *testLeaderChangeSuite) prepareClusterN(c *C, n int) (svrs map[string]*s for i := 0; i < n; i++ { cfg := cfgs[i] - go func() { svr, err := server.CreateServer(cfg, api.NewHandler) c.Assert(err, IsNil) + svr.SetUpTestMode() err = svr.Run() c.Assert(err, IsNil) ch <- svr diff --git a/pkg/etcdutil/etcdutil_test.go b/pkg/etcdutil/etcdutil_test.go index 35c44739423..33b6c972022 100644 --- a/pkg/etcdutil/etcdutil_test.go +++ b/pkg/etcdutil/etcdutil_test.go @@ -42,6 +42,8 @@ func newTestSingleConfig() *embed.Config { cfg.Name = "test_etcd" cfg.Dir, _ = ioutil.TempDir("/tmp", "test_etcd") cfg.WalDir = "" + cfg.Logger = "zap" + cfg.LogOutputs = []string{"stdout"} pu, _ := url.Parse(tempurl.Alloc()) cfg.LPUrls = []url.URL{*pu} diff --git a/server/api/server_test.go b/server/api/server_test.go index 1945a6bb998..ce681fa92dc 100644 --- a/server/api/server_test.go +++ b/server/api/server_test.go @@ -81,6 +81,7 @@ func mustNewCluster(c *C, num int) ([]*server.Config, []*server.Server, cleanUpF go func(cfg *server.Config) { s, err := server.CreateServer(cfg, NewHandler) c.Assert(err, IsNil) + s.SetUpTestMode() err = s.Run() c.Assert(err, IsNil) ch <- s diff --git a/server/api/store_ns_test.go b/server/api/store_ns_test.go index dab03b36306..ed3336a9611 100644 --- a/server/api/store_ns_test.go +++ b/server/api/store_ns_test.go @@ -61,12 +61,13 @@ func (s *testStoreNsSuite) SetUpSuite(c *C) { cfg := server.NewTestSingleConfig() cfg.NamespaceClassifier = "table" - srv, err := server.CreateServer(cfg, NewHandler) + svr, err := server.CreateServer(cfg, NewHandler) c.Assert(err, IsNil) - c.Assert(srv.Run(), IsNil) - s.svr = srv + svr.SetUpTestMode() + c.Assert(svr.Run(), IsNil) + s.svr = svr s.cleanup = func() { - srv.Close() + svr.Close() cleanServer(cfg) } diff --git a/server/join.go b/server/join.go index 124dbfa8134..11f397fb6f0 100644 --- a/server/join.go +++ b/server/join.go @@ -73,8 +73,10 @@ func PrepareJoinCluster(cfg *Config) error { } // Cases with data directory. + // The path change from "member" to "member/wal" + // Reference: https://github.com/coreos/etcd/pull/9733 initialCluster := "" - if wal.Exist(path.Join(cfg.DataDir, "member")) { + if wal.Exist(path.Join(cfg.DataDir, "member/wal")) { cfg.InitialCluster = initialCluster cfg.InitialClusterState = embed.ClusterStateFlagExisting return nil diff --git a/server/join_test.go b/server/join_test.go index bd01b2a6c8d..fa28b588c58 100644 --- a/server/join_test.go +++ b/server/join_test.go @@ -105,6 +105,7 @@ func startPdWith(cfg *Config) (*Server, error) { errCh <- errors.Trace(err) return } + svr.SetUpTestMode() err = svr.Run() if err != nil { errCh <- errors.Trace(err) diff --git a/server/leader_test.go b/server/leader_test.go index 335d6a2f4d0..9d6c65ab57c 100644 --- a/server/leader_test.go +++ b/server/leader_test.go @@ -33,16 +33,15 @@ type testGetLeaderSuite struct { func (s *testGetLeaderSuite) SetUpSuite(c *C) { cfg := NewTestSingleConfig() - // Send requests before server has started. s.wg.Add(1) s.done = make(chan bool) - go s.sendRequest(c, cfg.ClientUrls) - time.Sleep(100 * time.Millisecond) - svr, err := CreateServer(cfg, nil) c.Assert(err, IsNil) - + svr.SetUpTestMode() err = svr.Run() + // Send requests after server has started. + go s.sendRequest(c, cfg.ClientUrls) + time.Sleep(100 * time.Millisecond) c.Assert(err, IsNil) s.svr = svr diff --git a/server/server.go b/server/server.go index bf10eb42551..a79c9d5b901 100644 --- a/server/server.go +++ b/server/server.go @@ -285,6 +285,16 @@ func (s *Server) Run() error { return nil } +// SetUpTestMode for testing +func (s *Server) SetUpTestMode() { + // The etcd master version has removed embed.Config.SetupLogging. + // Now logger is set up automatically based on embed.Config.Logger, embed.Config.LogOutputs, embed.Config.Debug fields. + // Use zap logger in the test, otherwise will panic. Reference: https://github.com/coreos/etcd/blob/master/embed/config_logging.go#L45 + s.etcdCfg.Logger = "zap" + s.etcdCfg.LogOutputs = []string{"stdout"} + s.etcdCfg.Debug = false +} + func (s *Server) bootstrapCluster(req *pdpb.BootstrapRequest) (*pdpb.BootstrapResponse, error) { clusterID := s.clusterID diff --git a/server/server_test.go b/server/server_test.go index 5b4730dbf47..8d8732b5ca2 100644 --- a/server/server_test.go +++ b/server/server_test.go @@ -36,6 +36,7 @@ func newTestServer(c *C) (*Server, cleanUpFunc) { svr, err := CreateServer(cfg, nil) c.Assert(err, IsNil) + svr.SetUpTestMode() cleanup := func() { svr.Close() @@ -62,6 +63,7 @@ func newMultiTestServers(c *C, count int) ([]*Server, cleanupFunc) { go func(cfg *Config) { svr, err := CreateServer(cfg, nil) c.Assert(err, IsNil) + svr.SetUpTestMode() err = svr.Run() c.Assert(err, IsNil) ch <- svr @@ -130,6 +132,7 @@ func (s *testLeaderServerSuite) SetUpSuite(c *C) { go func() { svr, err := CreateServer(cfg, nil) c.Assert(err, IsNil) + svr.SetUpTestMode() err = svr.Run() c.Assert(err, IsNil) ch <- svr @@ -185,6 +188,7 @@ func newTestServersWithCfgs(c *C, cfgs []*Config) ([]*Server, cleanupFunc) { go func(cfg *Config) { svr, err := CreateServer(cfg, nil) c.Assert(err, IsNil) + svr.SetUpTestMode() err = svr.Run() c.Assert(err, IsNil) ch <- svr @@ -304,6 +308,7 @@ func (s *testServerSuite) TestCheckClusterID(c *C) { cfgA.InitialCluster = originInitial svr, err := CreateServer(cfgA, nil) c.Assert(err, IsNil) + svr.SetUpTestMode() err = svr.Run() c.Assert(err, NotNil) } diff --git a/server/testutil.go b/server/testutil.go index 7301a797b41..a2303e832ec 100644 --- a/server/testutil.go +++ b/server/testutil.go @@ -43,6 +43,7 @@ func NewTestServer() (*Config, *Server, CleanupFunc, error) { if err != nil { return nil, nil, nil, errors.Trace(err) } + s.SetUpTestMode() if err = s.Run(); err != nil { return nil, nil, nil, errors.Trace(err) }