Skip to content

Commit

Permalink
casetest: create hint test to improve test performance (#45447)
Browse files Browse the repository at this point in the history
ref #44940
  • Loading branch information
hawkingrei authored Jul 19, 2023
1 parent 17cda10 commit 31bca92
Show file tree
Hide file tree
Showing 9 changed files with 5,122 additions and 5,011 deletions.
2 changes: 0 additions & 2 deletions planner/core/casetest/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,7 @@ go_test(
"//domain",
"//parser",
"//parser/model",
"//parser/terror",
"//planner/core",
"//planner/core/internal",
"//planner/property",
"//session",
"//sessionctx/stmtctx",
Expand Down
28 changes: 28 additions & 0 deletions planner/core/casetest/hint/BUILD.bazel
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
load("@io_bazel_rules_go//go:def.bzl", "go_test")

go_test(
name = "hint_test",
timeout = "short",
srcs = [
"hint_test.go",
"main_test.go",
],
data = glob(["testdata/**"]),
flaky = True,
shard_count = 15,
deps = [
"//domain",
"//parser/model",
"//parser/terror",
"//planner/core",
"//planner/core/internal",
"//sessionctx/stmtctx",
"//sessionctx/variable",
"//testkit",
"//testkit/testdata",
"//testkit/testmain",
"//testkit/testsetup",
"@com_github_stretchr_testify//require",
"@org_uber_go_goleak//:goleak",
],
)
649 changes: 649 additions & 0 deletions planner/core/casetest/hint/hint_test.go

Large diffs are not rendered by default.

54 changes: 54 additions & 0 deletions planner/core/casetest/hint/main_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
// Copyright 2023 PingCAP, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

package hint

import (
"flag"
"testing"

"github.com/pingcap/tidb/testkit/testdata"
"github.com/pingcap/tidb/testkit/testmain"
"github.com/pingcap/tidb/testkit/testsetup"
"go.uber.org/goleak"
)

var testDataMap = make(testdata.BookKeeper)

func TestMain(m *testing.M) {
testsetup.SetupForCommonTest()

flag.Parse()
testDataMap.LoadTestSuiteData("testdata", "integration_suite")

opts := []goleak.Option{
goleak.IgnoreTopFunction("github.com/golang/glog.(*fileSink).flushDaemon"),
goleak.IgnoreTopFunction("github.com/lestrrat-go/httprc.runFetchWorker"),
goleak.IgnoreTopFunction("go.etcd.io/etcd/client/pkg/v3/logutil.(*MergeLogger).outputLoop"),
goleak.IgnoreTopFunction("gopkg.in/natefinch/lumberjack%2ev2.(*Logger).millRun"),
goleak.IgnoreTopFunction("github.com/tikv/client-go/v2/txnkv/transaction.keepAlive"),
goleak.IgnoreTopFunction("go.opencensus.io/stats/view.(*worker).start"),
}

callback := func(i int) int {
testDataMap.GenerateOutputIfNeeded()
return i
}

goleak.VerifyTestMain(testmain.WrapTestingM(m, callback), opts...)
}

func GetIntegrationSuiteData() testdata.TestData {
return testDataMap["integration_suite"]
}
376 changes: 376 additions & 0 deletions planner/core/casetest/hint/testdata/integration_suite_in.json

Large diffs are not rendered by default.

Loading

0 comments on commit 31bca92

Please sign in to comment.