diff --git a/executor/BUILD.bazel b/executor/BUILD.bazel index 46ae254888db6..e1ecaca57456f 100644 --- a/executor/BUILD.bazel +++ b/executor/BUILD.bazel @@ -249,7 +249,7 @@ go_library( go_test( name = "executor_test", - timeout = "moderate", + timeout = "short", srcs = [ "adapter_test.go", "admin_test.go", @@ -332,7 +332,6 @@ go_test( "utils_test.go", "window_test.go", "write_concurrent_test.go", - "write_test.go", ], data = glob(["testdata/**"]), embed = [":executor"], diff --git a/executor/aggfuncs/BUILD.bazel b/executor/aggfuncs/BUILD.bazel index 5c01950eef836..a1d4a57dde1f5 100644 --- a/executor/aggfuncs/BUILD.bazel +++ b/executor/aggfuncs/BUILD.bazel @@ -89,7 +89,7 @@ go_test( embed = [":aggfuncs"], flaky = True, race = "on", - shard_count = 10, + shard_count = 20, deps = [ "//expression", "//expression/aggregation", diff --git a/executor/writetest/BUILD.bazel b/executor/writetest/BUILD.bazel new file mode 100644 index 0000000000000..2ddc46c29ad82 --- /dev/null +++ b/executor/writetest/BUILD.bazel @@ -0,0 +1,38 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_test") + +go_test( + name = "writetest_test", + srcs = [ + "main_test.go", + "write_test.go", + ], + flaky = True, + race = "on", + shard_count = 50, + deps = [ + "//config", + "//executor", + "//kv", + "//meta/autoid", + "//parser/model", + "//parser/mysql", + "//planner/core", + "//session", + "//sessionctx", + "//sessionctx/stmtctx", + "//sessionctx/variable", + "//sessiontxn", + "//store/mockstore", + "//table", + "//table/tables", + "//testkit", + "//types", + "//util", + "//util/mock", + "@com_github_pingcap_failpoint//:failpoint", + "@com_github_stretchr_testify//require", + "@com_github_tikv_client_go_v2//tikv", + "@io_opencensus_go//stats/view", + "@org_uber_go_goleak//:goleak", + ], +) diff --git a/executor/writetest/main_test.go b/executor/writetest/main_test.go new file mode 100644 index 0000000000000..075e1f91b488a --- /dev/null +++ b/executor/writetest/main_test.go @@ -0,0 +1,60 @@ +// Copyright 2022 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 writetest + +import ( + "fmt" + "testing" + + "github.com/pingcap/tidb/config" + "github.com/pingcap/tidb/meta/autoid" + "github.com/pingcap/tidb/testkit" + "github.com/tikv/client-go/v2/tikv" + "go.opencensus.io/stats/view" + "go.uber.org/goleak" +) + +func TestMain(m *testing.M) { + autoid.SetStep(5000) + config.UpdateGlobal(func(conf *config.Config) { + conf.Log.SlowThreshold = 30000 // 30s + conf.TiKVClient.AsyncCommit.SafeWindow = 0 + conf.TiKVClient.AsyncCommit.AllowedClockDrift = 0 + conf.Experimental.AllowsExpressionIndex = true + }) + tikv.EnableFailpoints() + + opts := []goleak.Option{ + goleak.Cleanup(func(_ int) { + view.Stop() + }), + goleak.IgnoreTopFunction("github.com/golang/glog.(*loggingT).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.VerifyTestMain(m, opts...) +} + +func fillData(tk *testkit.TestKit, table string) { + tk.MustExec("use test") + tk.MustExec(fmt.Sprintf("create table %s(id int not null default 1, name varchar(255), PRIMARY KEY(id));", table)) + + // insert data + tk.MustExec(fmt.Sprintf("insert INTO %s VALUES (1, \"hello\");", table)) + tk.MustExec(fmt.Sprintf("insert into %s values (2, \"hello\");", table)) +} diff --git a/executor/write_test.go b/executor/writetest/write_test.go similarity index 99% rename from executor/write_test.go rename to executor/writetest/write_test.go index 32aa261c5518d..ebeaaa388e269 100644 --- a/executor/write_test.go +++ b/executor/writetest/write_test.go @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package executor_test +package writetest import ( "context" diff --git a/planner/core/prepare_test.go b/planner/core/prepare_test.go index 2cb5cca6ab4d6..4f20721bb9e0a 100644 --- a/planner/core/prepare_test.go +++ b/planner/core/prepare_test.go @@ -1373,7 +1373,6 @@ func TestPlanCacheSwitchDB(t *testing.T) { } func TestPlanCacheHitInfo(t *testing.T) { - t.Skip("unstable, skip it and fix it before 20210705") store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec(`set tidb_enable_prepared_plan_cache=1`)