Skip to content

Commit

Permalink
executor: migrate test-infra to testify for stale_txn_test (#32285)
Browse files Browse the repository at this point in the history
close #28618
  • Loading branch information
hawkingrei committed Feb 14, 2022
1 parent 6eec763 commit 2f0c23d
Show file tree
Hide file tree
Showing 7 changed files with 277 additions and 243 deletions.
2 changes: 2 additions & 0 deletions ddl/db_integration_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -1864,6 +1864,8 @@ func TestFulltextIndexIgnore(t *testing.T) {
}

func TestTreatOldVersionUTF8AsUTF8MB4(t *testing.T) {
restoreFunc := config.RestoreFunc()
defer restoreFunc()
store, clean := testkit.CreateMockStore(t)
defer clean()
tk := testkit.NewTestKit(t, store)
Expand Down
63 changes: 29 additions & 34 deletions executor/join_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -1464,9 +1464,9 @@ func TestIndexNestedLoopHashJoin(t *testing.T) {
}

// index hash join with semi join
require.Nil(t, failpoint.Enable("github.com/pingcap/tidb/planner/core/MockOnlyEnableIndexHashJoin", "return(true)"))
require.NoError(t, failpoint.Enable("github.com/pingcap/tidb/planner/core/MockOnlyEnableIndexHashJoin", "return(true)"))
defer func() {
require.Nil(t, failpoint.Disable("github.com/pingcap/tidb/planner/core/MockOnlyEnableIndexHashJoin"))
require.NoError(t, failpoint.Disable("github.com/pingcap/tidb/planner/core/MockOnlyEnableIndexHashJoin"))
}()
tk.MustExec("drop table t")
tk.MustExec("CREATE TABLE `t` ( `l_orderkey` int(11) NOT NULL,`l_linenumber` int(11) NOT NULL,`l_partkey` int(11) DEFAULT NULL,`l_suppkey` int(11) DEFAULT NULL,PRIMARY KEY (`l_orderkey`,`l_linenumber`))")
Expand Down Expand Up @@ -2331,14 +2331,11 @@ func TestInlineProjection4HashJoinIssue15316(t *testing.T) {
}

func TestIssue18070(t *testing.T) {
restoreFunc := config.RestoreFunc()
defer restoreFunc()
config.UpdateGlobal(func(conf *config.Config) {
conf.OOMAction = config.OOMActionCancel
})
defer func() {
config.UpdateGlobal(func(conf *config.Config) {
conf.OOMAction = config.OOMActionLog
})
}()
store, clean := testkit.CreateMockStore(t)
defer clean()
tk := testkit.NewTestKit(t, store)
Expand All @@ -2353,9 +2350,9 @@ func TestIssue18070(t *testing.T) {
require.True(t, strings.Contains(err.Error(), "Out Of Memory Quota!"))

fpName := "github.com/pingcap/tidb/executor/mockIndexMergeJoinOOMPanic"
require.Nil(t, failpoint.Enable(fpName, `panic("ERROR 1105 (HY000): Out Of Memory Quota![conn_id=1]")`))
require.NoError(t, failpoint.Enable(fpName, `panic("ERROR 1105 (HY000): Out Of Memory Quota![conn_id=1]")`))
defer func() {
require.Nil(t, failpoint.Disable(fpName))
require.NoError(t, failpoint.Disable(fpName))
}()
err = tk.QueryToErr("select /*+ inl_merge_join(t1)*/ * from t1 join t2 on t1.a = t2.a;")
require.True(t, strings.Contains(err.Error(), "Out Of Memory Quota!"))
Expand Down Expand Up @@ -2401,9 +2398,9 @@ func TestIssue18572_1(t *testing.T) {
tk.MustExec("insert into t1 values(1, 1);")
tk.MustExec("insert into t1 select * from t1;")

require.Nil(t, failpoint.Enable("github.com/pingcap/tidb/executor/testIndexHashJoinInnerWorkerErr", "return"))
require.NoError(t, failpoint.Enable("github.com/pingcap/tidb/executor/testIndexHashJoinInnerWorkerErr", "return"))
defer func() {
require.Nil(t, failpoint.Disable("github.com/pingcap/tidb/executor/testIndexHashJoinInnerWorkerErr"))
require.NoError(t, failpoint.Disable("github.com/pingcap/tidb/executor/testIndexHashJoinInnerWorkerErr"))
}()

rs, err := tk.Exec("select /*+ inl_hash_join(t1) */ * from t1 right join t1 t2 on t1.b=t2.b;")
Expand All @@ -2423,9 +2420,9 @@ func TestIssue18572_2(t *testing.T) {
tk.MustExec("insert into t1 values(1, 1);")
tk.MustExec("insert into t1 select * from t1;")

require.Nil(t, failpoint.Enable("github.com/pingcap/tidb/executor/testIndexHashJoinOuterWorkerErr", "return"))
require.NoError(t, failpoint.Enable("github.com/pingcap/tidb/executor/testIndexHashJoinOuterWorkerErr", "return"))
defer func() {
require.Nil(t, failpoint.Disable("github.com/pingcap/tidb/executor/testIndexHashJoinOuterWorkerErr"))
require.NoError(t, failpoint.Disable("github.com/pingcap/tidb/executor/testIndexHashJoinOuterWorkerErr"))
}()

rs, err := tk.Exec("select /*+ inl_hash_join(t1) */ * from t1 right join t1 t2 on t1.b=t2.b;")
Expand All @@ -2445,9 +2442,9 @@ func TestIssue18572_3(t *testing.T) {
tk.MustExec("insert into t1 values(1, 1);")
tk.MustExec("insert into t1 select * from t1;")

require.Nil(t, failpoint.Enable("github.com/pingcap/tidb/executor/testIndexHashJoinBuildErr", "return"))
require.NoError(t, failpoint.Enable("github.com/pingcap/tidb/executor/testIndexHashJoinBuildErr", "return"))
defer func() {
require.Nil(t, failpoint.Disable("github.com/pingcap/tidb/executor/testIndexHashJoinBuildErr"))
require.NoError(t, failpoint.Disable("github.com/pingcap/tidb/executor/testIndexHashJoinBuildErr"))
}()

rs, err := tk.Exec("select /*+ inl_hash_join(t1) */ * from t1 right join t1 t2 on t1.b=t2.b;")
Expand Down Expand Up @@ -2641,18 +2638,16 @@ func TestIssue20270(t *testing.T) {
defer clean()
tk := testkit.NewTestKit(t, store)
tk.MustExec("use test")
err := failpoint.Enable("github.com/pingcap/tidb/executor/killedInJoin2Chunk", "return(true)")
require.NoError(t, err)
require.NoError(t, failpoint.Enable("github.com/pingcap/tidb/executor/killedInJoin2Chunk", "return(true)"))
tk.MustExec("drop table if exists t;")
tk.MustExec("drop table if exists t1;")
tk.MustExec("create table t(c1 int, c2 int)")
tk.MustExec("create table t1(c1 int, c2 int)")
tk.MustExec("insert into t values(1,1),(2,2)")
tk.MustExec("insert into t1 values(2,3),(4,4)")
err = tk.QueryToErr("select /*+ TIDB_HJ(t, t1) */ * from t left join t1 on t.c1 = t1.c1 where t.c1 = 1 or t1.c2 > 20")
err := tk.QueryToErr("select /*+ TIDB_HJ(t, t1) */ * from t left join t1 on t.c1 = t1.c1 where t.c1 = 1 or t1.c2 > 20")
require.Equal(t, executor.ErrQueryInterrupted, err)
err = failpoint.Disable("github.com/pingcap/tidb/executor/killedInJoin2Chunk")
require.NoError(t, err)
require.NoError(t, failpoint.Disable("github.com/pingcap/tidb/executor/killedInJoin2Chunk"))
plannercore.ForceUseOuterBuild4Test = true
defer func() {
plannercore.ForceUseOuterBuild4Test = false
Expand Down Expand Up @@ -2702,9 +2697,9 @@ func TestIssue20779(t *testing.T) {
tk.MustExec("insert into t1 values(1, 1);")
tk.MustExec("insert into t1 select * from t1;")

require.Nil(t, failpoint.Enable("github.com/pingcap/tidb/executor/testIssue20779", "return"))
require.NoError(t, failpoint.Enable("github.com/pingcap/tidb/executor/testIssue20779", "return"))
defer func() {
require.Nil(t, failpoint.Disable("github.com/pingcap/tidb/executor/testIssue20779"))
require.NoError(t, failpoint.Disable("github.com/pingcap/tidb/executor/testIssue20779"))
}()

rs, err := tk.Exec("select /*+ inl_hash_join(t2) */ t1.b from t1 left join t1 t2 on t1.b=t2.b order by t1.b;")
Expand Down Expand Up @@ -2760,9 +2755,9 @@ func TestIssue30211(t *testing.T) {
tk.MustExec("create table t2(a int, index(a));")
func() {
fpName := "github.com/pingcap/tidb/executor/TestIssue30211"
require.Nil(t, failpoint.Enable(fpName, `panic("TestIssue30211 IndexJoinPanic")`))
require.NoError(t, failpoint.Enable(fpName, `panic("TestIssue30211 IndexJoinPanic")`))
defer func() {
require.Nil(t, failpoint.Disable(fpName))
require.NoError(t, failpoint.Disable(fpName))
}()
err := tk.QueryToErr("select /*+ inl_join(t1) */ * from t1 join t2 on t1.a = t2.a;")
require.EqualError(t, err, "failpoint panic: TestIssue30211 IndexJoinPanic")
Expand Down Expand Up @@ -2811,31 +2806,31 @@ func TestIssue31129(t *testing.T) {

// Test IndexNestedLoopHashJoin keepOrder.
fpName := "github.com/pingcap/tidb/executor/TestIssue31129"
require.Nil(t, failpoint.Enable(fpName, "return"))
require.NoError(t, failpoint.Enable(fpName, "return"))
err := tk.QueryToErr("select /*+ INL_HASH_JOIN(s) */ * from t left join s on t.a=s.a order by t.pk")
require.True(t, strings.Contains(err.Error(), "TestIssue31129"))
require.Nil(t, failpoint.Disable(fpName))
require.NoError(t, failpoint.Disable(fpName))

// Test IndexNestedLoopHashJoin build hash table panic.
fpName = "github.com/pingcap/tidb/executor/IndexHashJoinBuildHashTablePanic"
require.Nil(t, failpoint.Enable(fpName, `panic("IndexHashJoinBuildHashTablePanic")`))
require.NoError(t, failpoint.Enable(fpName, `panic("IndexHashJoinBuildHashTablePanic")`))
err = tk.QueryToErr("select /*+ INL_HASH_JOIN(s) */ * from t left join s on t.a=s.a order by t.pk")
require.True(t, strings.Contains(err.Error(), "IndexHashJoinBuildHashTablePanic"))
require.Nil(t, failpoint.Disable(fpName))
require.NoError(t, failpoint.Disable(fpName))

// Test IndexNestedLoopHashJoin fetch inner fail.
fpName = "github.com/pingcap/tidb/executor/IndexHashJoinFetchInnerResultsErr"
require.Nil(t, failpoint.Enable(fpName, "return"))
require.NoError(t, failpoint.Enable(fpName, "return"))
err = tk.QueryToErr("select /*+ INL_HASH_JOIN(s) */ * from t left join s on t.a=s.a order by t.pk")
require.True(t, strings.Contains(err.Error(), "IndexHashJoinFetchInnerResultsErr"))
require.Nil(t, failpoint.Disable(fpName))
require.NoError(t, failpoint.Disable(fpName))

// Test IndexNestedLoopHashJoin build hash table panic and IndexNestedLoopHashJoin fetch inner fail at the same time.
fpName1, fpName2 := "github.com/pingcap/tidb/executor/IndexHashJoinBuildHashTablePanic", "github.com/pingcap/tidb/executor/IndexHashJoinFetchInnerResultsErr"
require.Nil(t, failpoint.Enable(fpName1, `panic("IndexHashJoinBuildHashTablePanic")`))
require.Nil(t, failpoint.Enable(fpName2, "return"))
require.NoError(t, failpoint.Enable(fpName1, `panic("IndexHashJoinBuildHashTablePanic")`))
require.NoError(t, failpoint.Enable(fpName2, "return"))
err = tk.QueryToErr("select /*+ INL_HASH_JOIN(s) */ * from t left join s on t.a=s.a order by t.pk")
require.True(t, strings.Contains(err.Error(), "IndexHashJoinBuildHashTablePanic"))
require.Nil(t, failpoint.Disable(fpName1))
require.Nil(t, failpoint.Disable(fpName2))
require.NoError(t, failpoint.Disable(fpName1))
require.NoError(t, failpoint.Disable(fpName2))
}
4 changes: 2 additions & 2 deletions executor/show_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -1311,9 +1311,9 @@ func TestShowCreateStmtIgnoreLocalTemporaryTables(t *testing.T) {
}

func TestAutoRandomBase(t *testing.T) {
require.Nil(t, failpoint.Enable("github.com/pingcap/tidb/meta/autoid/mockAutoIDChange", `return(true)`))
require.NoError(t, failpoint.Enable("github.com/pingcap/tidb/meta/autoid/mockAutoIDChange", `return(true)`))
defer func() {
require.Nil(t, failpoint.Disable("github.com/pingcap/tidb/meta/autoid/mockAutoIDChange"))
require.NoError(t, failpoint.Disable("github.com/pingcap/tidb/meta/autoid/mockAutoIDChange"))
}()
store, clean := testkit.CreateMockStore(t)
defer clean()
Expand Down
Loading

0 comments on commit 2f0c23d

Please sign in to comment.