Skip to content

Commit

Permalink
tests/server: move TestCheckClusterID out of leaderServerTestSuite (
Browse files Browse the repository at this point in the history
#7950)

ref #7930

which can use parallel test

Signed-off-by: husharp <[email protected]>

Co-authored-by: ti-chi-bot[bot] <108142056+ti-chi-bot[bot]@users.noreply.github.com>
  • Loading branch information
HuSharp and ti-chi-bot[bot] authored Mar 21, 2024
1 parent bb8ba31 commit 89a8087
Showing 1 changed file with 47 additions and 47 deletions.
94 changes: 47 additions & 47 deletions server/server_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ func (suite *leaderServerTestSuite) TearDownSuite() {
}
}

func (suite *leaderServerTestSuite) newTestServersWithCfgs(
func newTestServersWithCfgs(
ctx context.Context,
cfgs []*config.Config,
re *require.Assertions,
Expand Down Expand Up @@ -135,52 +135,6 @@ func (suite *leaderServerTestSuite) newTestServersWithCfgs(
return svrs, cleanup
}

func (suite *leaderServerTestSuite) TestCheckClusterID() {
re := suite.Require()
ctx, cancel := context.WithCancel(context.Background())
defer cancel()
cfgs := NewTestMultiConfig(assertutil.CheckerWithNilAssert(re), 2)
for i, cfg := range cfgs {
cfg.DataDir = fmt.Sprintf("/tmp/test_pd_check_clusterID_%d", i)
// Clean up before testing.
testutil.CleanServer(cfg.DataDir)
}
originInitial := cfgs[0].InitialCluster
for _, cfg := range cfgs {
cfg.InitialCluster = fmt.Sprintf("%s=%s", cfg.Name, cfg.PeerUrls)
}

cfgA, cfgB := cfgs[0], cfgs[1]
// Start a standalone cluster.
svrsA, cleanA := suite.newTestServersWithCfgs(ctx, []*config.Config{cfgA}, re)
defer cleanA()
// Close it.
for _, svr := range svrsA {
svr.Close()
}

// Start another cluster.
_, cleanB := suite.newTestServersWithCfgs(ctx, []*config.Config{cfgB}, re)
defer cleanB()

// Start previous cluster, expect an error.
cfgA.InitialCluster = originInitial
mockHandler := CreateMockHandler(re, "127.0.0.1")
svr, err := CreateServer(ctx, cfgA, nil, mockHandler)
re.NoError(err)

etcd, err := embed.StartEtcd(svr.etcdCfg)
re.NoError(err)
urlsMap, err := types.NewURLsMap(svr.cfg.InitialCluster)
re.NoError(err)
tlsConfig, err := svr.cfg.Security.ToTLSConfig()
re.NoError(err)
err = etcdutil.CheckClusterID(etcd.Server.Cluster().ID(), urlsMap, tlsConfig)
re.Error(err)
etcd.Close()
testutil.CleanServer(cfgA.DataDir)
}

func (suite *leaderServerTestSuite) TestRegisterServerHandler() {
re := suite.Require()
cfg := NewTestSingleConfig(assertutil.CheckerWithNilAssert(re))
Expand Down Expand Up @@ -330,3 +284,49 @@ func TestIsPathInDirectory(t *testing.T) {
path = filepath.Join(directory, fileName)
re.False(isPathInDirectory(path, directory))
}

func TestCheckClusterID(t *testing.T) {
re := require.New(t)
ctx, cancel := context.WithCancel(context.Background())
defer cancel()
cfgs := NewTestMultiConfig(assertutil.CheckerWithNilAssert(re), 2)
for i, cfg := range cfgs {
cfg.DataDir = fmt.Sprintf("/tmp/test_pd_check_clusterID_%d", i)
// Clean up before testing.
testutil.CleanServer(cfg.DataDir)
}
originInitial := cfgs[0].InitialCluster
for _, cfg := range cfgs {
cfg.InitialCluster = fmt.Sprintf("%s=%s", cfg.Name, cfg.PeerUrls)
}

cfgA, cfgB := cfgs[0], cfgs[1]
// Start a standalone cluster.
svrsA, cleanA := newTestServersWithCfgs(ctx, []*config.Config{cfgA}, re)
defer cleanA()
// Close it.
for _, svr := range svrsA {
svr.Close()
}

// Start another cluster.
_, cleanB := newTestServersWithCfgs(ctx, []*config.Config{cfgB}, re)
defer cleanB()

// Start previous cluster, expect an error.
cfgA.InitialCluster = originInitial
mockHandler := CreateMockHandler(re, "127.0.0.1")
svr, err := CreateServer(ctx, cfgA, nil, mockHandler)
re.NoError(err)

etcd, err := embed.StartEtcd(svr.etcdCfg)
re.NoError(err)
urlsMap, err := types.NewURLsMap(svr.cfg.InitialCluster)
re.NoError(err)
tlsConfig, err := svr.cfg.Security.ToTLSConfig()
re.NoError(err)
err = etcdutil.CheckClusterID(etcd.Server.Cluster().ID(), urlsMap, tlsConfig)
re.Error(err)
etcd.Close()
testutil.CleanServer(cfgA.DataDir)
}

0 comments on commit 89a8087

Please sign in to comment.