test: public RunInGoTest for mock store (#31578)

close pingcap/tidb#31579
This commit is contained in:
3pointer
2022-01-13 13:25:42 +08:00
committed by GitHub
parent 794e838a1d
commit aabd4e04d9
5 changed files with 17 additions and 26 deletions

View File

@ -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)

View File

@ -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)
}

View File

@ -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.

View File

@ -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()

View File

@ -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)
}
}