test: public RunInGoTest for mock store (#31578)
close pingcap/tidb#31579
This commit is contained in:
@ -6,7 +6,6 @@ import (
|
||||
"database/sql"
|
||||
"fmt"
|
||||
"io"
|
||||
"net"
|
||||
"net/http"
|
||||
"net/http/pprof"
|
||||
"strings"
|
||||
@ -84,25 +83,16 @@ func NewCluster() (*Cluster, error) {
|
||||
|
||||
// Start runs a mock cluster.
|
||||
func (mock *Cluster) Start() error {
|
||||
// choose a random available port
|
||||
l1, _ := net.Listen("tcp", "127.0.0.1:")
|
||||
statusPort := l1.Addr().(*net.TCPAddr).Port
|
||||
|
||||
// choose a random available port
|
||||
l2, _ := net.Listen("tcp", "127.0.0.1:")
|
||||
addrPort := l2.Addr().(*net.TCPAddr).Port
|
||||
|
||||
server.RunInGoTest = true
|
||||
mock.TiDBDriver = server.NewTiDBDriver(mock.Storage)
|
||||
cfg := config.NewConfig()
|
||||
cfg.Port = uint(addrPort)
|
||||
// let tidb random select a port
|
||||
cfg.Port = 0
|
||||
cfg.Store = "tikv"
|
||||
cfg.Status.StatusPort = uint(statusPort)
|
||||
cfg.Status.StatusPort = 0
|
||||
cfg.Status.ReportStatus = true
|
||||
cfg.Socket = fmt.Sprintf("/tmp/tidb-mock-%d.sock", time.Now().UnixNano())
|
||||
|
||||
// close port for next listen in NewServer
|
||||
l1.Close()
|
||||
l2.Close()
|
||||
svr, err := server.NewServer(cfg, mock.TiDBDriver)
|
||||
if err != nil {
|
||||
return errors.Trace(err)
|
||||
|
||||
@ -80,7 +80,7 @@ func sleepWithCtx(ctx context.Context, d time.Duration) {
|
||||
|
||||
func (s *Server) listenStatusHTTPServer() error {
|
||||
s.statusAddr = fmt.Sprintf("%s:%d", s.cfg.Status.StatusHost, s.cfg.Status.StatusPort)
|
||||
if s.cfg.Status.StatusPort == 0 && !runInGoTest {
|
||||
if s.cfg.Status.StatusPort == 0 && !RunInGoTest {
|
||||
s.statusAddr = fmt.Sprintf("%s:%d", s.cfg.Status.StatusHost, defaultStatusPort)
|
||||
}
|
||||
|
||||
@ -102,7 +102,7 @@ func (s *Server) listenStatusHTTPServer() error {
|
||||
if err != nil {
|
||||
logutil.BgLogger().Info("listen failed", zap.Error(err))
|
||||
return errors.Trace(err)
|
||||
} else if runInGoTest && s.cfg.Status.StatusPort == 0 {
|
||||
} else if RunInGoTest && s.cfg.Status.StatusPort == 0 {
|
||||
s.statusAddr = s.statusListener.Addr().String()
|
||||
s.cfg.Status.StatusPort = uint(s.statusListener.Addr().(*net.TCPAddr).Port)
|
||||
}
|
||||
|
||||
@ -31,7 +31,7 @@ import (
|
||||
func TestMain(m *testing.M) {
|
||||
testbridge.SetupForCommonTest()
|
||||
|
||||
runInGoTest = true // flag for NewServer to known it is running in test environment
|
||||
RunInGoTest = true // flag for NewServer to known it is running in test environment
|
||||
|
||||
// AsyncCommit will make DDL wait 2.5s before changing to the next state.
|
||||
// Set schema lease to avoid it from making CI slow.
|
||||
|
||||
@ -69,9 +69,9 @@ func (mc *mockConn) Close() {
|
||||
|
||||
// CreateMockServer creates a mock server.
|
||||
func CreateMockServer(t *testing.T, store kv.Storage) *Server {
|
||||
if !runInGoTest {
|
||||
// If CreateMockServer is called in another package, runInGoTest is not initialized.
|
||||
runInGoTest = flag.Lookup("test.v") != nil || flag.Lookup("check.v") != nil
|
||||
if !RunInGoTest {
|
||||
// If CreateMockServer is called in another package, RunInGoTest is not initialized.
|
||||
RunInGoTest = flag.Lookup("test.v") != nil || flag.Lookup("check.v") != nil
|
||||
}
|
||||
tidbdrv := NewTiDBDriver(store)
|
||||
cfg := config.NewConfig()
|
||||
|
||||
@ -70,10 +70,11 @@ import (
|
||||
)
|
||||
|
||||
var (
|
||||
serverPID int
|
||||
osUser string
|
||||
osVersion string
|
||||
runInGoTest bool
|
||||
serverPID int
|
||||
osUser string
|
||||
osVersion string
|
||||
// RunInGoTest represents whether we are run code in test.
|
||||
RunInGoTest bool
|
||||
)
|
||||
|
||||
func init() {
|
||||
@ -235,7 +236,7 @@ func NewServer(cfg *config.Config, driver IDriver) (*Server, error) {
|
||||
s.capability |= mysql.ClientSSL
|
||||
}
|
||||
|
||||
if s.cfg.Host != "" && (s.cfg.Port != 0 || runInGoTest) {
|
||||
if s.cfg.Host != "" && (s.cfg.Port != 0 || RunInGoTest) {
|
||||
addr := fmt.Sprintf("%s:%d", s.cfg.Host, s.cfg.Port)
|
||||
tcpProto := "tcp"
|
||||
if s.cfg.EnableTCP4Only {
|
||||
@ -245,7 +246,7 @@ func NewServer(cfg *config.Config, driver IDriver) (*Server, error) {
|
||||
return nil, errors.Trace(err)
|
||||
}
|
||||
logutil.BgLogger().Info("server is running MySQL protocol", zap.String("addr", addr))
|
||||
if runInGoTest && s.cfg.Port == 0 {
|
||||
if RunInGoTest && s.cfg.Port == 0 {
|
||||
s.cfg.Port = uint(s.listener.Addr().(*net.TCPAddr).Port)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user