package tidbrel

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("should recover the QPS in 1 minutes and system keep normal when one tidb down", "oltp_tidb_rel_tidb_down", func() {
		OLTP_TiDB_REL_TiDB_DOWN(caseParams.Ctx, caseParams.Tc.(resource.TiDBCluster), caseParams.WorkloadRunParms.WorkloadNode, caseParams.WorkloadRunParms.Cmdpr)
	})
	util.TestCase("should recover the QPS in 1 minutes and system keep normal when one tidb network-loss", "oltp_tidb_rel_tidb_network_loss", func() {
		OLTP_TiDB_REL_TiDB_NETWORK_LOSS(caseParams.Ctx, caseParams.Tc.(resource.TiDBCluster), caseParams.WorkloadRunParms.WorkloadNode, caseParams.WorkloadRunParms.Cmdpr)
	})
	util.TestCase("should recover the QPS in 1 minutes and system keep normal when one tidb network-delay", "oltp_tidb_rel_tidb_network_delay", func() {
		OLTP_TiDB_REL_TiDB_NETWORK_DELAY(caseParams.Ctx, caseParams.Tc.(resource.TiDBCluster), caseParams.WorkloadRunParms.WorkloadNode, caseParams.WorkloadRunParms.Cmdpr)
	})
	util.TestCase("should recover the QPS in 1 minutes and system keep normal when one tidb network-partition", "oltp_tidb_rel_tidb_network_partition", func() {
		OLTP_TiDB_REL_TiDB_NETWORK_PARTITION(caseParams.Ctx, caseParams.Tc.(resource.TiDBCluster), caseParams.WorkloadRunParms.WorkloadNode, caseParams.WorkloadRunParms.Cmdpr)
	})
	util.TestCase("should recover the QPS in 1 minutes and system keep normal when one tidb io down", "oltp_tidb_rel_tidb_io_down", func() {
		OLTP_TiDB_REL_TiDB_IO_DOWN(caseParams.Ctx, caseParams.Tc.(resource.TiDBCluster), caseParams.WorkloadRunParms.WorkloadNode, caseParams.WorkloadRunParms.Cmdpr)
	})
}
