diff --git a/pom.xml b/pom.xml
index 088a0874d7e..efd8cb7033e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -582,6 +582,11 @@
full
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+ 3.0.0-M5
+
diff --git a/src/test/java/org/tikv/BaseRawKVTest.java b/src/test/java/org/tikv/BaseRawKVTest.java
index afa3b228555..9b8a9042f3c 100644
--- a/src/test/java/org/tikv/BaseRawKVTest.java
+++ b/src/test/java/org/tikv/BaseRawKVTest.java
@@ -17,10 +17,21 @@
package org.tikv;
+import org.tikv.common.PDClient;
+import org.tikv.common.StoreVersion;
import org.tikv.common.TiConfiguration;
+import org.tikv.common.TiSession;
import org.tikv.util.TestUtils;
public class BaseRawKVTest {
+
+ protected boolean tikvVersionNewerThan(String expectedVersion) {
+ TiConfiguration conf = createTiConfiguration();
+ TiSession session = TiSession.create(conf);
+ PDClient pdClient = session.getPDClient();
+ return StoreVersion.minTiKVVersion(expectedVersion, pdClient);
+ }
+
protected TiConfiguration createTiConfiguration() {
String pdAddrsStr = TestUtils.getEnv("RAWKV_PD_ADDRESSES");
diff --git a/src/test/java/org/tikv/common/PDClientIntegrationTest.java b/src/test/java/org/tikv/common/PDClientIntegrationTest.java
index 947195abb5a..a78ad2b411c 100644
--- a/src/test/java/org/tikv/common/PDClientIntegrationTest.java
+++ b/src/test/java/org/tikv/common/PDClientIntegrationTest.java
@@ -21,11 +21,13 @@
import static org.junit.Assert.assertTrue;
import org.junit.After;
+import org.junit.Assume;
import org.junit.Before;
import org.junit.Test;
import org.tikv.BaseRawKVTest;
public class PDClientIntegrationTest extends BaseRawKVTest {
+
private TiSession session;
@Before
@@ -44,6 +46,7 @@ public void tearDown() throws Exception {
@Test
public void testPauseCheck() throws Exception {
+ Assume.assumeTrue(tikvVersionNewerThan("v5.3.0"));
try (PDClient client = session.getPDClient()) {
PDChecker checker = PDChecker.Merge;
for (int i = 0; i < 2; i++) {
diff --git a/src/test/java/org/tikv/common/importer/RawKVIngestTest.java b/src/test/java/org/tikv/common/importer/RawKVIngestTest.java
index 17c66f5bcc0..a8e5f94cf08 100644
--- a/src/test/java/org/tikv/common/importer/RawKVIngestTest.java
+++ b/src/test/java/org/tikv/common/importer/RawKVIngestTest.java
@@ -26,6 +26,7 @@
import java.util.List;
import java.util.Optional;
import org.junit.After;
+import org.junit.Assume;
import org.junit.Before;
import org.junit.Test;
import org.tikv.BaseRawKVTest;
@@ -37,6 +38,7 @@
import org.tikv.util.TestUtils;
public class RawKVIngestTest extends BaseRawKVTest {
+
private TiSession session;
private static final int KEY_NUMBER = 16;
@@ -59,6 +61,7 @@ public void tearDown() throws Exception {
@Test
public void rawKVIngestTest() {
+ Assume.assumeTrue(tikvVersionNewerThan("v5.2.0"));
RawKVClient client = session.createRawClient();
// gen test data
@@ -88,6 +91,7 @@ public void rawKVIngestTest() {
@Test
public void rawKVIngestTestWithTTL() throws InterruptedException {
+ Assume.assumeTrue(tikvVersionNewerThan("v5.2.0"));
long ttl = 10;
RawKVClient client = session.createRawClient();
diff --git a/src/test/java/org/tikv/common/importer/RegionSplitTest.java b/src/test/java/org/tikv/common/importer/RegionSplitTest.java
index cc3365f1cb6..3de36e90eac 100644
--- a/src/test/java/org/tikv/common/importer/RegionSplitTest.java
+++ b/src/test/java/org/tikv/common/importer/RegionSplitTest.java
@@ -24,6 +24,7 @@
import java.util.ArrayList;
import java.util.List;
import org.junit.After;
+import org.junit.Assume;
import org.junit.Before;
import org.junit.Test;
import org.tikv.BaseRawKVTest;
@@ -32,6 +33,7 @@
import org.tikv.common.region.TiRegion;
public class RegionSplitTest extends BaseRawKVTest {
+
private TiSession session;
private static final int KEY_NUMBER = 10;
@@ -53,6 +55,7 @@ public void tearDown() throws Exception {
@Test
public void rawKVSplitTest() {
+ Assume.assumeTrue(tikvVersionNewerThan("v5.1.0"));
List splitKeys = new ArrayList<>(KEY_NUMBER);
for (int i = 0; i < KEY_NUMBER; i++) {
splitKeys.add(genRandomKey(KEY_PREFIX, KEY_LENGTH));