package loadsplit

import (
	"github.com/pingcap/endless/pkg/util"
	"github.com/pingcap/endless/testcase/oltp/oltppkg"
	"github.com/pingcap/test-infra/sdk/resource"
)

func TestSuite(caseParams *oltppkg.CaseParams) {
	util.TestCase("Load split should work fine when use mix scan and point get workload", "oltp_load_base_split_mix_fun", func() {
		OLTP_LOAD_BASE_SPLIT_MIX_FUN(caseParams.Ctx, caseParams.Tc.(resource.TiDBCluster), caseParams.CaseCmdParms, caseParams.BenchToolset)
	})
	util.TestCase("Load split should work fine when use pure little table scan", "oltp_load_base_split_pure_scan_little", func() {
		OLTP_LOAD_BASE_SPLIT_PURE_SCAN_LITTLE(caseParams.Ctx, caseParams.Tc.(resource.TiDBCluster), caseParams.CaseCmdParms, caseParams.BenchToolset)
	})
	util.TestCase("Load split should work fine when use pure large table scan", "oltp_load_base_split_pure_scan_large", func() {
		OLTP_LOAD_BASE_SPLIT_PURE_SCAN_LARGE(caseParams.Ctx, caseParams.Tc.(resource.TiDBCluster), caseParams.CaseCmdParms, caseParams.BenchToolset)
	})
	util.TestCase("Load split should work fine when use pure little table scan", "oltp_load_base_split_pure_scan_index_little", func() {
		OLTP_LOAD_BASE_SPLIT_PURE_SCAN_INDEX_LITTLE(caseParams.Ctx, caseParams.Tc.(resource.TiDBCluster), caseParams.CaseCmdParms, caseParams.BenchToolset)
	})
	util.TestCase("Load split should work fine when use pure large table scan", "oltp_load_base_split_pure_scan_index_large", func() {
		OLTP_LOAD_BASE_SPLIT_PURE_SCAN_INDEX_LARGE(caseParams.Ctx, caseParams.Tc.(resource.TiDBCluster), caseParams.CaseCmdParms, caseParams.BenchToolset)
	})
	util.TestCase("Load split should work fine when use mix scan and point get workload with chaos inject and set thresh randomly", "oltp_load_base_split_mix_rel_001", func() {
		OLTP_LOAD_BASE_SPLIT_MIX_REL_001(caseParams.Ctx, caseParams.Tc.(resource.TiDBCluster), caseParams.CaseCmdParms, caseParams.BenchToolset)
	})
	util.TestCase("Load split should work fine when use mix scan and point get workload with chaos inject and enable/disable cpu based split randomly", "oltp_load_base_split_mix_rel_002", func() {
		OLTP_LOAD_BASE_SPLIT_MIX_REL_002(caseParams.Ctx, caseParams.Tc.(resource.TiDBCluster), caseParams.CaseCmdParms, caseParams.BenchToolset)
	})
}
