Skip to content

Commit

Permalink
small changes
Browse files Browse the repository at this point in the history
Signed-off-by: Ryan Leung <rleungx@gmail.com>
  • Loading branch information
rleungx committed Mar 23, 2023
1 parent d830adb commit 1fac067
Show file tree
Hide file tree
Showing 5 changed files with 39 additions and 20 deletions.
37 changes: 29 additions & 8 deletions pkg/mcs/resource_manager/server/testutil.go
Expand Up @@ -19,7 +19,7 @@ import (
"os"

"github.com/pingcap/log"
"github.com/spf13/cobra"
"github.com/spf13/pflag"
"github.com/stretchr/testify/require"
"github.com/tikv/pd/pkg/utils/logutil"
"github.com/tikv/pd/pkg/utils/testutil"
Expand All @@ -46,13 +46,34 @@ func NewTestServer(ctx context.Context, re *require.Assertions, cfg *Config) (*S
return s, cleanup, nil
}

// NewTestDefaultConfig creates a new default config for testing.
func NewTestDefaultConfig() (*Config, error) {
cmd := &cobra.Command{
Use: "resource-manager",
Short: "Run the resource manager service",
// GenerateConfig generates a new config with the given options.
func GenerateConfig(c *Config) (*Config, error) {
arguments := []string{
"--listen-addr=" + c.ListenAddr,
"--advertise-listen-addr=" + c.AdvertiseListenAddr,
"--backend-endpoints=" + c.BackendEndpoints,
"--advertise-backend-endpoints=" + c.AdvertiseBackendEndpoints,
}

flagSet := pflag.NewFlagSet("test", pflag.ContinueOnError)
flagSet.BoolP("version", "V", false, "print version information and exit")
flagSet.StringP("config", "", "", "config file")
flagSet.StringP("backend-endpoints", "", "", "url for etcd client")
flagSet.StringP("advertise-backend-endpoints", "", "", "advertise urls for backend endpoints (default '${backend-endpoints}')")
flagSet.StringP("listen-addr", "", "", "listen address for tso service")
flagSet.StringP("advertise-listen-addr", "", "", "advertise urls for listen address (default '${listen-addr}')")
flagSet.StringP("cacert", "", "", "path of file that contains list of trusted TLS CAs")
flagSet.StringP("cert", "", "", "path of file that contains X509 certificate in PEM format")
flagSet.StringP("key", "", "", "path of file that contains X509 key in PEM format")
err := flagSet.Parse(arguments)
if err != nil {
return nil, err
}
cfg := NewConfig()
flagSet := cmd.Flags()
return cfg, cfg.Parse(flagSet)
err = cfg.Parse(flagSet)
if err != nil {
return nil, err
}

return cfg, nil
}
5 changes: 1 addition & 4 deletions pkg/mcs/tso/server/testutil.go
Expand Up @@ -56,11 +56,8 @@ func MustNewGrpcClient(re *require.Assertions, addr string) (*grpc.ClientConn, t
return conn, tsopb.NewTSOClient(conn)
}

// ConfigOption is the type of the functional option for config.
type ConfigOption func(conf *Config)

// GenerateConfig generates a new config with the given options.
func GenerateConfig(c *Config, opts ...ConfigOption) (*Config, error) {
func GenerateConfig(c *Config) (*Config, error) {
arguments := []string{
"--listen-addr=" + c.ListenAddr,
"--advertise-listen-addr=" + c.AdvertiseListenAddr,
Expand Down
2 changes: 1 addition & 1 deletion tests/mcs/discovery/register_test.go
Expand Up @@ -152,7 +152,7 @@ func (suite *serverRegisterTestSuite) addServer(serviceName string) (bs.Server,
case utils.TSOServiceName:
return mcs.StartSingleTSOTestServer(suite.ctx, re, suite.backendEndpoints, suite.listenAddr)
case utils.ResourceManagerServiceName:
return mcs.StartSingleResourceManagerTestServer(suite.ctx, re, suite.backendEndpoints)
return mcs.StartSingleResourceManagerTestServer(suite.ctx, re, suite.backendEndpoints, suite.listenAddr)
default:
return nil, nil
}
Expand Down
3 changes: 2 additions & 1 deletion tests/mcs/resource_manager/server_test.go
Expand Up @@ -25,6 +25,7 @@ import (
rmpb "github.com/pingcap/kvproto/pkg/resource_manager"
"github.com/stretchr/testify/require"
"github.com/tikv/pd/client/grpcutil"
"github.com/tikv/pd/pkg/utils/tempurl"
"github.com/tikv/pd/tests"
"github.com/tikv/pd/tests/mcs"
)
Expand All @@ -44,7 +45,7 @@ func TestResourceManagerServer(t *testing.T) {
leaderName := cluster.WaitLeader()
leader := cluster.GetServer(leaderName)

s, cleanup := mcs.StartSingleResourceManagerTestServer(ctx, re, leader.GetAddr())
s, cleanup := mcs.StartSingleResourceManagerTestServer(ctx, re, leader.GetAddr(), tempurl.Alloc())
addr := s.GetAddr()
defer cleanup()

Expand Down
12 changes: 6 additions & 6 deletions tests/mcs/testutil.go
Expand Up @@ -22,7 +22,6 @@ import (
rm "github.com/tikv/pd/pkg/mcs/resource_manager/server"
tso "github.com/tikv/pd/pkg/mcs/tso/server"
"github.com/tikv/pd/pkg/mcs/utils"
"github.com/tikv/pd/pkg/utils/tempurl"
"github.com/tikv/pd/pkg/utils/testutil"

"github.com/stretchr/testify/require"
Expand All @@ -38,11 +37,12 @@ func SetupTSOClient(ctx context.Context, re *require.Assertions, endpoints []str
}

// StartSingleResourceManagerTestServer creates and starts a resource manager server with default config for testing.
func StartSingleResourceManagerTestServer(ctx context.Context, re *require.Assertions, backendEndpoints string) (*rm.Server, func()) {
cfg, err := rm.NewTestDefaultConfig()
re.NoError(err)
func StartSingleResourceManagerTestServer(ctx context.Context, re *require.Assertions, backendEndpoints, listenAddrs string) (*rm.Server, func()) {
cfg := rm.NewConfig()
cfg.BackendEndpoints = backendEndpoints
cfg.ListenAddr = tempurl.Alloc()
cfg.ListenAddr = listenAddrs
cfg, err := rm.GenerateConfig(cfg)
re.NoError(err)

s, cleanup, err := rm.NewTestServer(ctx, re, cfg)
re.NoError(err)
Expand All @@ -54,7 +54,7 @@ func StartSingleResourceManagerTestServer(ctx context.Context, re *require.Asser
}

// StartSingleTSOTestServer creates and starts a tso server with default config for testing.
func StartSingleTSOTestServer(ctx context.Context, re *require.Assertions, backendEndpoints, listenAddrs string, opts ...tso.ConfigOption) (*tso.Server, func()) {
func StartSingleTSOTestServer(ctx context.Context, re *require.Assertions, backendEndpoints, listenAddrs string) (*tso.Server, func()) {
cfg := tso.NewConfig()
cfg.BackendEndpoints = backendEndpoints
cfg.ListenAddr = listenAddrs
Expand Down

0 comments on commit 1fac067

Please sign in to comment.