code: func NewMockGCWorker(store tikv.Storage) (*MockGCWorker, error) {
  	ver, err := store.CurrentVersion()
  	if err != nil {
  		return nil, errors.Trace(err)
  	}
  	hostName, err := os.Hostname()
  	if err != nil {
  		hostName = "unknown"
  	}
  	worker := &GCWorker{
  		uuid:        strconv.FormatUint(ver.Ver, 16),
  		desc:        fmt.Sprintf("host:%s, pid:%d, start at %s", hostName, os.Getpid(), time.Now()),
  		store:       store,
  		gcIsRunning: false,
  		lastFinish:  time.Now(),
  		done:        make(chan error),
  	}
  	worker.session, err = session.CreateSession(worker.store)
  	if err != nil {
  		logutil.Logger(context.Background()).Error("initialize MockGCWorker session fail", zap.Error(err))
  		return nil, errors.Trace(err)
  	}
  	privilege.BindPrivilegeManager(worker.session, nil)
  	worker.session.GetSessionVars().InRestrictedSQL = true
  	return &MockGCWorker{worker: worker}, nil
  }
docs: // NewMockGCWorker creates a MockGCWorker instance ONLY for test.