You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by ji...@apache.org on 2022/02/16 23:05:41 UTC
[shardingsphere] branch master updated: Refactor IT engine: split memory and cluster mode (#15455)
This is an automated email from the ASF dual-hosted git repository.
jianglongtao pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git
The following commit(s) were added to refs/heads/master by this push:
new 7ebe7ff Refactor IT engine: split memory and cluster mode (#15455)
7ebe7ff is described below
commit 7ebe7ff5075de485cc773e84cf6b39c4892cbc1e
Author: Liang Zhang <zh...@apache.org>
AuthorDate: Thu Feb 17 07:04:20 2022 +0800
Refactor IT engine: split memory and cluster mode (#15455)
* Refactor IntegrationTestEnvironment
* Add ClusterParameterizedArrayFactory and MemoryParameterizedArrayFactory
* Refactor MemoryParameterizedArrayFactory
* Refactor ParameterizedArrayFactory
* Fix BaseDQLIT
* Add mode on test case name
* Skip memory test on IT
* Revert test case name
---
.github/workflows/it.yml | 6 +-
.../test/integration/engine/dql/BaseDQLIT.java | 11 +-
.../env/IntegrationTestEnvironment.java | 5 +-
.../param/ClusterParameterizedArrayGenerator.java | 56 ++++++++++
.../param/MemoryParameterizedArrayGenerator.java | 63 +++++++++++
.../framework/param/ParameterizedArrayFactory.java | 117 ++-------------------
...ctory.java => ParameterizedArrayGenerator.java} | 52 ++++-----
.../cases/dql/dql-integration-test-cases.xml | 52 ++++-----
.../src/test/resources/env/engine-env.properties | 3 +
9 files changed, 198 insertions(+), 167 deletions(-)
diff --git a/.github/workflows/it.yml b/.github/workflows/it.yml
index 2d3e847..c6c831e 100644
--- a/.github/workflows/it.yml
+++ b/.github/workflows/it.yml
@@ -59,7 +59,7 @@ jobs:
- name: Build Project
run: ./mvnw -B clean install -am -pl shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite -Pit.env.docker -DskipTests
- name: Run Integration Test
- run: ./mvnw -B install -f shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/pom.xml -Dit.adapters=${{ matrix.adapter }} -Dit.databases=${{ matrix.database }} -Dit.scenarios=${{ matrix.scenario }} -Dit.env.type=DOCKER
+ run: ./mvnw -B install -f shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/pom.xml -Dit.run.modes=Cluster -Dit.adapters=${{ matrix.adapter }} -Dit.databases=${{ matrix.database }} -Dit.scenarios=${{ matrix.scenario }} -Dit.env.type=DOCKER
it-single-rule:
name: single rule
@@ -90,7 +90,7 @@ jobs:
- name: Build Project
run: ./mvnw -B clean install -am -pl shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite -Pit.env.docker -DskipTests
- name: Run Integration Test
- run: ./mvnw -B install -f shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/pom.xml -Dit.adapters=${{ matrix.adapter }} -Dit.databases=${{ matrix.database }} -Dit.scenarios=${{ matrix.scenario }} -Dit.env.type=DOCKER
+ run: ./mvnw -B install -f shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/pom.xml -Dit.run.modes=Cluster -Dit.adapters=${{ matrix.adapter }} -Dit.databases=${{ matrix.database }} -Dit.scenarios=${{ matrix.scenario }} -Dit.env.type=DOCKER
it-mixture-rule:
name: mixture rule
@@ -121,7 +121,7 @@ jobs:
- name: Build Project
run: ./mvnw -B clean install -am -pl shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite -Pit.env.docker -DskipTests
- name: Run Integration Test
- run: ./mvnw -B install -f shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/pom.xml -Dit.adapters=${{ matrix.adapter }} -Dit.databases=${{ matrix.database }} -Dit.scenarios=${{ matrix.scenario }} -Dit.env.type=DOCKER
+ run: ./mvnw -B install -f shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/pom.xml -Dit.run.modes=Cluster -Dit.adapters=${{ matrix.adapter }} -Dit.databases=${{ matrix.database }} -Dit.scenarios=${{ matrix.scenario }} -Dit.env.type=DOCKER
mysql-proxy-agent-metrics:
name: MySQL-Proxy with Agent Metrics
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/dql/BaseDQLIT.java b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/dql/BaseDQLIT.java
index f8fee10..d028b05 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/dql/BaseDQLIT.java
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/dql/BaseDQLIT.java
@@ -46,7 +46,7 @@ import static org.junit.Assert.assertTrue;
public abstract class BaseDQLIT extends SingleITCase {
- private static final Collection<String> FILLED_SCENARIOS = new HashSet<>();
+ private static final Collection<String> FILLED_SUITES = new HashSet<>();
public BaseDQLIT(final AssertionParameterizedArray parameterizedArray, final ComposedContainer composedContainer) {
super(parameterizedArray, composedContainer);
@@ -58,11 +58,12 @@ public abstract class BaseDQLIT extends SingleITCase {
}
private void fillDataOnlyOnce() throws SQLException, ParseException, IOException, JAXBException {
- if (!FILLED_SCENARIOS.contains(getScenario())) {
- synchronized (FILLED_SCENARIOS) {
- if (!FILLED_SCENARIOS.contains(getScenario())) {
+ String key = String.join("-", getAdapter(), getScenario(), getDatabaseType().getName());
+ if (!FILLED_SUITES.contains(key)) {
+ synchronized (FILLED_SUITES) {
+ if (!FILLED_SUITES.contains(getScenario())) {
new DataSetEnvironmentManager(EnvironmentPath.getDataSetFile(getScenario()), getActualDataSourceMap()).fillData();
- FILLED_SCENARIOS.add(getScenario());
+ FILLED_SUITES.add(key);
}
}
}
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/env/IntegrationTestEnvironment.java b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/env/IntegrationTestEnvironment.java
index fe97a38..25568170 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/env/IntegrationTestEnvironment.java
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/env/IntegrationTestEnvironment.java
@@ -37,6 +37,8 @@ public final class IntegrationTestEnvironment {
private static final IntegrationTestEnvironment INSTANCE = new IntegrationTestEnvironment();
+ private final Collection<String> runModes;
+
private final EnvironmentType envType;
private final Collection<String> adapters;
@@ -45,10 +47,11 @@ public final class IntegrationTestEnvironment {
private final boolean runAdditionalTestCases;
- private final Set<DatabaseType> databaseTypes;
+ private final Collection<DatabaseType> databaseTypes;
private IntegrationTestEnvironment() {
Properties engineEnvProps = EnvironmentProperties.loadProperties("env/engine-env.properties");
+ runModes = Splitter.on(",").trimResults().splitToList(engineEnvProps.getProperty("it.run.modes"));
envType = getEnvironmentType(engineEnvProps);
adapters = Splitter.on(",").trimResults().splitToList(engineEnvProps.getProperty("it.adapters"));
scenarios = getScenarios(engineEnvProps);
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/framework/param/ClusterParameterizedArrayGenerator.java b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/framework/param/ClusterParameterizedArrayGenerator.java
new file mode 100644
index 0000000..8d1121e
--- /dev/null
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/framework/param/ClusterParameterizedArrayGenerator.java
@@ -0,0 +1,56 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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 org.apache.shardingsphere.test.integration.framework.param;
+
+import lombok.AccessLevel;
+import lombok.NoArgsConstructor;
+import org.apache.shardingsphere.test.integration.cases.SQLCommandType;
+import org.apache.shardingsphere.test.integration.env.IntegrationTestEnvironment;
+import org.apache.shardingsphere.test.integration.framework.param.model.AssertionParameterizedArray;
+import org.apache.shardingsphere.test.integration.framework.param.model.ParameterizedArray;
+
+import java.util.Collection;
+
+/**
+ * Parameterized array generator for cluster mode.
+ */
+@NoArgsConstructor(access = AccessLevel.PRIVATE)
+public final class ClusterParameterizedArrayGenerator {
+
+ private static final IntegrationTestEnvironment ENV = IntegrationTestEnvironment.getInstance();
+
+ /**
+ * Get assertion parameterized array.
+ *
+ * @param sqlCommandType SQL command type
+ * @return assertion parameterized array
+ */
+ public static Collection<AssertionParameterizedArray> getAssertionParameterized(final SQLCommandType sqlCommandType) {
+ return new ParameterizedArrayGenerator(ENV.getAdapters(), ENV.getScenarios(), ENV.getDatabaseTypes()).getAssertionParameterized(sqlCommandType);
+ }
+
+ /**
+ * Get case parameterized array.
+ *
+ * @param sqlCommandType SQL command type
+ * @return case parameterized array
+ */
+ public static Collection<ParameterizedArray> getCaseParameterized(final SQLCommandType sqlCommandType) {
+ return new ParameterizedArrayGenerator(ENV.getAdapters(), ENV.getScenarios(), ENV.getDatabaseTypes()).getCaseParameterized(sqlCommandType);
+ }
+}
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/framework/param/MemoryParameterizedArrayGenerator.java b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/framework/param/MemoryParameterizedArrayGenerator.java
new file mode 100644
index 0000000..42b2621
--- /dev/null
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/framework/param/MemoryParameterizedArrayGenerator.java
@@ -0,0 +1,63 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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 org.apache.shardingsphere.test.integration.framework.param;
+
+import lombok.AccessLevel;
+import lombok.NoArgsConstructor;
+import org.apache.shardingsphere.infra.database.type.DatabaseType;
+import org.apache.shardingsphere.infra.database.type.DatabaseTypeRegistry;
+import org.apache.shardingsphere.test.integration.cases.SQLCommandType;
+import org.apache.shardingsphere.test.integration.env.IntegrationTestEnvironment;
+import org.apache.shardingsphere.test.integration.framework.param.model.AssertionParameterizedArray;
+import org.apache.shardingsphere.test.integration.framework.param.model.ParameterizedArray;
+
+import java.util.Collection;
+import java.util.Collections;
+
+/**
+ * Parameterized array generator for memory mode.
+ */
+@NoArgsConstructor(access = AccessLevel.PRIVATE)
+public final class MemoryParameterizedArrayGenerator {
+
+ private static final Collection<String> ADAPTERS = Collections.singleton("jdbc");
+
+ private static final Collection<DatabaseType> DATABASE_TYPES = Collections.singleton(DatabaseTypeRegistry.getActualDatabaseType("H2"));
+
+ private static final IntegrationTestEnvironment ENV = IntegrationTestEnvironment.getInstance();
+
+ /**
+ * Get assertion parameterized array.
+ *
+ * @param sqlCommandType SQL command type
+ * @return assertion parameterized array
+ */
+ public static Collection<AssertionParameterizedArray> getAssertionParameterized(final SQLCommandType sqlCommandType) {
+ return new ParameterizedArrayGenerator(ADAPTERS, ENV.getScenarios(), DATABASE_TYPES).getAssertionParameterized(sqlCommandType);
+ }
+
+ /**
+ * Get case parameterized array.
+ *
+ * @param sqlCommandType SQL command type
+ * @return case parameterized array
+ */
+ public static Collection<ParameterizedArray> getCaseParameterized(final SQLCommandType sqlCommandType) {
+ return new ParameterizedArrayGenerator(ADAPTERS, ENV.getScenarios(), DATABASE_TYPES).getCaseParameterized(sqlCommandType);
+ }
+}
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/framework/param/ParameterizedArrayFactory.java b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/framework/param/ParameterizedArrayFactory.java
index 0aceec3..bb941b6 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/framework/param/ParameterizedArrayFactory.java
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/framework/param/ParameterizedArrayFactory.java
@@ -17,30 +17,15 @@
package org.apache.shardingsphere.test.integration.framework.param;
-import com.google.common.base.Splitter;
-import com.google.common.base.Strings;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
-import org.apache.shardingsphere.distsql.parser.statement.ral.RALStatement;
-import org.apache.shardingsphere.distsql.parser.statement.rdl.RDLStatement;
-import org.apache.shardingsphere.infra.database.type.DatabaseType;
-import org.apache.shardingsphere.infra.database.type.DatabaseTypeRegistry;
-import org.apache.shardingsphere.sql.parser.sql.common.statement.SQLStatement;
-import org.apache.shardingsphere.test.integration.cases.IntegrationTestCaseContext;
-import org.apache.shardingsphere.test.integration.cases.IntegrationTestCasesLoader;
import org.apache.shardingsphere.test.integration.cases.SQLCommandType;
-import org.apache.shardingsphere.test.integration.cases.assertion.IntegrationTestCaseAssertion;
-import org.apache.shardingsphere.test.integration.cases.SQLExecuteType;
import org.apache.shardingsphere.test.integration.env.IntegrationTestEnvironment;
import org.apache.shardingsphere.test.integration.framework.param.model.AssertionParameterizedArray;
-import org.apache.shardingsphere.test.integration.framework.param.model.CaseParameterizedArray;
import org.apache.shardingsphere.test.integration.framework.param.model.ParameterizedArray;
-import java.util.Arrays;
import java.util.Collection;
-import java.util.Collections;
import java.util.LinkedList;
-import java.util.stream.Collectors;
/**
* Parameterized array factory.
@@ -48,8 +33,6 @@ import java.util.stream.Collectors;
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public final class ParameterizedArrayFactory {
- private static final IntegrationTestCasesLoader TEST_CASES_LOADER = IntegrationTestCasesLoader.getInstance();
-
private static final IntegrationTestEnvironment ENV = IntegrationTestEnvironment.getInstance();
/**
@@ -60,69 +43,16 @@ public final class ParameterizedArrayFactory {
*/
public static Collection<AssertionParameterizedArray> getAssertionParameterized(final SQLCommandType sqlCommandType) {
Collection<AssertionParameterizedArray> result = new LinkedList<>();
- for (IntegrationTestCaseContext each : TEST_CASES_LOADER.getTestCaseContexts(sqlCommandType)) {
- result.addAll(getAssertionParameterizedArray(each, sqlCommandType));
- }
- return result;
- }
-
- private static Collection<AssertionParameterizedArray> getAssertionParameterizedArray(final IntegrationTestCaseContext testCaseContext, final SQLCommandType sqlCommandType) {
- Collection<AssertionParameterizedArray> result = new LinkedList<>();
- for (DatabaseType each : getDatabaseTypes(testCaseContext.getTestCase().getDbTypes())) {
- if (ENV.getDatabaseTypes().contains(each)) {
- result.addAll(getAssertionParameterizedArray(testCaseContext, each, sqlCommandType));
+ for (String each : ENV.getRunModes()) {
+ if ("Memory".equalsIgnoreCase(each)) {
+ result.addAll(MemoryParameterizedArrayGenerator.getAssertionParameterized(sqlCommandType));
+ } else if ("Cluster".equalsIgnoreCase(each)) {
+ result.addAll(ClusterParameterizedArrayGenerator.getAssertionParameterized(sqlCommandType));
}
}
return result;
}
- private static Collection<AssertionParameterizedArray> getAssertionParameterizedArray(final IntegrationTestCaseContext testCaseContext,
- final DatabaseType databaseType, final SQLCommandType sqlCommandType) {
- Collection<AssertionParameterizedArray> result = new LinkedList<>();
- for (SQLExecuteType each : SQLExecuteType.values()) {
- result.addAll(getAssertionParameterizedArray(testCaseContext, databaseType, each, sqlCommandType));
- }
- return result;
- }
-
- private static Collection<AssertionParameterizedArray> getAssertionParameterizedArray(final IntegrationTestCaseContext testCaseContext,
- final DatabaseType databaseType, final SQLExecuteType sqlExecuteType, final SQLCommandType sqlCommandType) {
- Collection<AssertionParameterizedArray> result = new LinkedList<>();
- for (IntegrationTestCaseAssertion each : testCaseContext.getTestCase().getAssertions()) {
- result.addAll(getAssertionParameterizedArray(testCaseContext, databaseType, sqlExecuteType, each, sqlCommandType));
- }
- return result;
- }
-
- private static Collection<AssertionParameterizedArray> getAssertionParameterizedArray(final IntegrationTestCaseContext testCaseContext,
- final DatabaseType databaseType, final SQLExecuteType sqlExecuteType,
- final IntegrationTestCaseAssertion assertion, final SQLCommandType sqlCommandType) {
- Collection<AssertionParameterizedArray> result = new LinkedList<>();
- for (String adapter : ENV.getAdapters()) {
- result.addAll(getAssertionParameterizedArray(testCaseContext, assertion, adapter, databaseType, sqlExecuteType, sqlCommandType));
- }
- return result;
- }
-
- private static Collection<AssertionParameterizedArray> getAssertionParameterizedArray(final IntegrationTestCaseContext testCaseContext, final IntegrationTestCaseAssertion assertion,
- final String adapter, final DatabaseType databaseType,
- final SQLExecuteType sqlExecuteType, final SQLCommandType sqlCommandType) {
- Collection<String> scenarios = null == testCaseContext.getTestCase().getScenarioTypes() ? Collections.emptyList() : Arrays.asList(testCaseContext.getTestCase().getScenarioTypes().split(","));
- return ENV.getScenarios().stream().filter(each -> filterScenarios(each, scenarios, sqlCommandType.getSqlStatementClass()))
- .map(each -> new AssertionParameterizedArray(testCaseContext, assertion, adapter, each, databaseType, sqlExecuteType, sqlCommandType)).collect(Collectors.toList());
- }
-
- private static Boolean filterScenarios(final String scenario, final Collection<String> scenarios, final Class<? extends SQLStatement> sqlStatementClass) {
- if (sqlStatementClass == RDLStatement.class || sqlStatementClass == RALStatement.class) {
- return "empty_rules".equals(scenario);
- } else {
- if ("empty_rules".equals(scenario)) {
- return false;
- }
- return scenarios.isEmpty() || scenarios.contains(scenario);
- }
- }
-
/**
* Get case parameterized array.
*
@@ -131,40 +61,13 @@ public final class ParameterizedArrayFactory {
*/
public static Collection<ParameterizedArray> getCaseParameterized(final SQLCommandType sqlCommandType) {
Collection<ParameterizedArray> result = new LinkedList<>();
- for (IntegrationTestCaseContext each : TEST_CASES_LOADER.getTestCaseContexts(sqlCommandType)) {
- result.addAll(getCaseParameterizedArray(each, sqlCommandType));
- }
- return result;
- }
-
- private static Collection<ParameterizedArray> getCaseParameterizedArray(final IntegrationTestCaseContext testCaseContext, final SQLCommandType sqlCommandType) {
- Collection<ParameterizedArray> result = new LinkedList<>();
- for (DatabaseType each : getDatabaseTypes(testCaseContext.getTestCase().getDbTypes())) {
- if (ENV.getDatabaseTypes().contains(each)) {
- result.addAll(getCaseParameterizedArray(testCaseContext, each, sqlCommandType));
+ for (String each : ENV.getRunModes()) {
+ if ("Memory".equalsIgnoreCase(each)) {
+ result.addAll(MemoryParameterizedArrayGenerator.getCaseParameterized(sqlCommandType));
+ } else if ("Cluster".equalsIgnoreCase(each)) {
+ result.addAll(ClusterParameterizedArrayGenerator.getCaseParameterized(sqlCommandType));
}
}
return result;
}
-
- private static Collection<ParameterizedArray> getCaseParameterizedArray(final IntegrationTestCaseContext testCaseContext, final DatabaseType databaseType,
- final SQLCommandType sqlCommandType) {
- Collection<ParameterizedArray> result = new LinkedList<>();
- for (String adapter : ENV.getAdapters()) {
- result.addAll(getCaseParameterizedArray(testCaseContext, adapter, databaseType, sqlCommandType));
- }
- return result;
- }
-
- private static Collection<ParameterizedArray> getCaseParameterizedArray(final IntegrationTestCaseContext testCaseContext, final String adapter,
- final DatabaseType databaseType, final SQLCommandType sqlCommandType) {
- Collection<String> scenarios = null == testCaseContext.getTestCase().getScenarioTypes() ? Collections.emptyList() : Arrays.asList(testCaseContext.getTestCase().getScenarioTypes().split(","));
- return ENV.getScenarios().stream().filter(each -> scenarios.isEmpty() || scenarios.contains(each))
- .map(each -> new CaseParameterizedArray(testCaseContext, adapter, each, databaseType, sqlCommandType)).collect(Collectors.toList());
- }
-
- private static Collection<DatabaseType> getDatabaseTypes(final String databaseTypes) {
- String candidates = Strings.isNullOrEmpty(databaseTypes) ? "H2,MySQL,Oracle,SQLServer,PostgreSQL" : databaseTypes;
- return Splitter.on(',').trimResults().splitToList(candidates).stream().map(DatabaseTypeRegistry::getActualDatabaseType).collect(Collectors.toList());
- }
}
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/framework/param/ParameterizedArrayFactory.java b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/framework/param/ParameterizedArrayGenerator.java
similarity index 75%
copy from shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/framework/param/ParameterizedArrayFactory.java
copy to shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/framework/param/ParameterizedArrayGenerator.java
index 0aceec3..4c96f2f 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/framework/param/ParameterizedArrayFactory.java
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/framework/param/ParameterizedArrayGenerator.java
@@ -19,8 +19,7 @@ package org.apache.shardingsphere.test.integration.framework.param;
import com.google.common.base.Splitter;
import com.google.common.base.Strings;
-import lombok.AccessLevel;
-import lombok.NoArgsConstructor;
+import lombok.RequiredArgsConstructor;
import org.apache.shardingsphere.distsql.parser.statement.ral.RALStatement;
import org.apache.shardingsphere.distsql.parser.statement.rdl.RDLStatement;
import org.apache.shardingsphere.infra.database.type.DatabaseType;
@@ -29,9 +28,8 @@ import org.apache.shardingsphere.sql.parser.sql.common.statement.SQLStatement;
import org.apache.shardingsphere.test.integration.cases.IntegrationTestCaseContext;
import org.apache.shardingsphere.test.integration.cases.IntegrationTestCasesLoader;
import org.apache.shardingsphere.test.integration.cases.SQLCommandType;
-import org.apache.shardingsphere.test.integration.cases.assertion.IntegrationTestCaseAssertion;
import org.apache.shardingsphere.test.integration.cases.SQLExecuteType;
-import org.apache.shardingsphere.test.integration.env.IntegrationTestEnvironment;
+import org.apache.shardingsphere.test.integration.cases.assertion.IntegrationTestCaseAssertion;
import org.apache.shardingsphere.test.integration.framework.param.model.AssertionParameterizedArray;
import org.apache.shardingsphere.test.integration.framework.param.model.CaseParameterizedArray;
import org.apache.shardingsphere.test.integration.framework.param.model.ParameterizedArray;
@@ -43,14 +41,18 @@ import java.util.LinkedList;
import java.util.stream.Collectors;
/**
- * Parameterized array factory.
+ * Parameterized array generator.
*/
-@NoArgsConstructor(access = AccessLevel.PRIVATE)
-public final class ParameterizedArrayFactory {
+@RequiredArgsConstructor
+public final class ParameterizedArrayGenerator {
private static final IntegrationTestCasesLoader TEST_CASES_LOADER = IntegrationTestCasesLoader.getInstance();
- private static final IntegrationTestEnvironment ENV = IntegrationTestEnvironment.getInstance();
+ private final Collection<String> envAdapters;
+
+ private final Collection<String> envScenarios;
+
+ private final Collection<DatabaseType> envDatabaseTypes;
/**
* Get assertion parameterized array.
@@ -58,7 +60,7 @@ public final class ParameterizedArrayFactory {
* @param sqlCommandType SQL command type
* @return assertion parameterized array
*/
- public static Collection<AssertionParameterizedArray> getAssertionParameterized(final SQLCommandType sqlCommandType) {
+ public Collection<AssertionParameterizedArray> getAssertionParameterized(final SQLCommandType sqlCommandType) {
Collection<AssertionParameterizedArray> result = new LinkedList<>();
for (IntegrationTestCaseContext each : TEST_CASES_LOADER.getTestCaseContexts(sqlCommandType)) {
result.addAll(getAssertionParameterizedArray(each, sqlCommandType));
@@ -66,17 +68,17 @@ public final class ParameterizedArrayFactory {
return result;
}
- private static Collection<AssertionParameterizedArray> getAssertionParameterizedArray(final IntegrationTestCaseContext testCaseContext, final SQLCommandType sqlCommandType) {
+ private Collection<AssertionParameterizedArray> getAssertionParameterizedArray(final IntegrationTestCaseContext testCaseContext, final SQLCommandType sqlCommandType) {
Collection<AssertionParameterizedArray> result = new LinkedList<>();
for (DatabaseType each : getDatabaseTypes(testCaseContext.getTestCase().getDbTypes())) {
- if (ENV.getDatabaseTypes().contains(each)) {
+ if (envDatabaseTypes.contains(each)) {
result.addAll(getAssertionParameterizedArray(testCaseContext, each, sqlCommandType));
}
}
return result;
}
- private static Collection<AssertionParameterizedArray> getAssertionParameterizedArray(final IntegrationTestCaseContext testCaseContext,
+ private Collection<AssertionParameterizedArray> getAssertionParameterizedArray(final IntegrationTestCaseContext testCaseContext,
final DatabaseType databaseType, final SQLCommandType sqlCommandType) {
Collection<AssertionParameterizedArray> result = new LinkedList<>();
for (SQLExecuteType each : SQLExecuteType.values()) {
@@ -85,7 +87,7 @@ public final class ParameterizedArrayFactory {
return result;
}
- private static Collection<AssertionParameterizedArray> getAssertionParameterizedArray(final IntegrationTestCaseContext testCaseContext,
+ private Collection<AssertionParameterizedArray> getAssertionParameterizedArray(final IntegrationTestCaseContext testCaseContext,
final DatabaseType databaseType, final SQLExecuteType sqlExecuteType, final SQLCommandType sqlCommandType) {
Collection<AssertionParameterizedArray> result = new LinkedList<>();
for (IntegrationTestCaseAssertion each : testCaseContext.getTestCase().getAssertions()) {
@@ -94,25 +96,25 @@ public final class ParameterizedArrayFactory {
return result;
}
- private static Collection<AssertionParameterizedArray> getAssertionParameterizedArray(final IntegrationTestCaseContext testCaseContext,
+ private Collection<AssertionParameterizedArray> getAssertionParameterizedArray(final IntegrationTestCaseContext testCaseContext,
final DatabaseType databaseType, final SQLExecuteType sqlExecuteType,
final IntegrationTestCaseAssertion assertion, final SQLCommandType sqlCommandType) {
Collection<AssertionParameterizedArray> result = new LinkedList<>();
- for (String adapter : ENV.getAdapters()) {
+ for (String adapter : envAdapters) {
result.addAll(getAssertionParameterizedArray(testCaseContext, assertion, adapter, databaseType, sqlExecuteType, sqlCommandType));
}
return result;
}
- private static Collection<AssertionParameterizedArray> getAssertionParameterizedArray(final IntegrationTestCaseContext testCaseContext, final IntegrationTestCaseAssertion assertion,
+ private Collection<AssertionParameterizedArray> getAssertionParameterizedArray(final IntegrationTestCaseContext testCaseContext, final IntegrationTestCaseAssertion assertion,
final String adapter, final DatabaseType databaseType,
final SQLExecuteType sqlExecuteType, final SQLCommandType sqlCommandType) {
Collection<String> scenarios = null == testCaseContext.getTestCase().getScenarioTypes() ? Collections.emptyList() : Arrays.asList(testCaseContext.getTestCase().getScenarioTypes().split(","));
- return ENV.getScenarios().stream().filter(each -> filterScenarios(each, scenarios, sqlCommandType.getSqlStatementClass()))
+ return envScenarios.stream().filter(each -> filterScenarios(each, scenarios, sqlCommandType.getSqlStatementClass()))
.map(each -> new AssertionParameterizedArray(testCaseContext, assertion, adapter, each, databaseType, sqlExecuteType, sqlCommandType)).collect(Collectors.toList());
}
- private static Boolean filterScenarios(final String scenario, final Collection<String> scenarios, final Class<? extends SQLStatement> sqlStatementClass) {
+ private Boolean filterScenarios(final String scenario, final Collection<String> scenarios, final Class<? extends SQLStatement> sqlStatementClass) {
if (sqlStatementClass == RDLStatement.class || sqlStatementClass == RALStatement.class) {
return "empty_rules".equals(scenario);
} else {
@@ -129,7 +131,7 @@ public final class ParameterizedArrayFactory {
* @param sqlCommandType SQL command type
* @return case parameterized array
*/
- public static Collection<ParameterizedArray> getCaseParameterized(final SQLCommandType sqlCommandType) {
+ public Collection<ParameterizedArray> getCaseParameterized(final SQLCommandType sqlCommandType) {
Collection<ParameterizedArray> result = new LinkedList<>();
for (IntegrationTestCaseContext each : TEST_CASES_LOADER.getTestCaseContexts(sqlCommandType)) {
result.addAll(getCaseParameterizedArray(each, sqlCommandType));
@@ -137,29 +139,29 @@ public final class ParameterizedArrayFactory {
return result;
}
- private static Collection<ParameterizedArray> getCaseParameterizedArray(final IntegrationTestCaseContext testCaseContext, final SQLCommandType sqlCommandType) {
+ private Collection<ParameterizedArray> getCaseParameterizedArray(final IntegrationTestCaseContext testCaseContext, final SQLCommandType sqlCommandType) {
Collection<ParameterizedArray> result = new LinkedList<>();
for (DatabaseType each : getDatabaseTypes(testCaseContext.getTestCase().getDbTypes())) {
- if (ENV.getDatabaseTypes().contains(each)) {
+ if (envDatabaseTypes.contains(each)) {
result.addAll(getCaseParameterizedArray(testCaseContext, each, sqlCommandType));
}
}
return result;
}
- private static Collection<ParameterizedArray> getCaseParameterizedArray(final IntegrationTestCaseContext testCaseContext, final DatabaseType databaseType,
+ private Collection<ParameterizedArray> getCaseParameterizedArray(final IntegrationTestCaseContext testCaseContext, final DatabaseType databaseType,
final SQLCommandType sqlCommandType) {
Collection<ParameterizedArray> result = new LinkedList<>();
- for (String adapter : ENV.getAdapters()) {
+ for (String adapter : envAdapters) {
result.addAll(getCaseParameterizedArray(testCaseContext, adapter, databaseType, sqlCommandType));
}
return result;
}
- private static Collection<ParameterizedArray> getCaseParameterizedArray(final IntegrationTestCaseContext testCaseContext, final String adapter,
+ private Collection<ParameterizedArray> getCaseParameterizedArray(final IntegrationTestCaseContext testCaseContext, final String adapter,
final DatabaseType databaseType, final SQLCommandType sqlCommandType) {
Collection<String> scenarios = null == testCaseContext.getTestCase().getScenarioTypes() ? Collections.emptyList() : Arrays.asList(testCaseContext.getTestCase().getScenarioTypes().split(","));
- return ENV.getScenarios().stream().filter(each -> scenarios.isEmpty() || scenarios.contains(each))
+ return envScenarios.stream().filter(each -> scenarios.isEmpty() || scenarios.contains(each))
.map(each -> new CaseParameterizedArray(testCaseContext, adapter, each, databaseType, sqlCommandType)).collect(Collectors.toList());
}
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dql/dql-integration-test-cases.xml b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dql/dql-integration-test-cases.xml
index 32c0e40..f5d0b3c 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dql/dql-integration-test-cases.xml
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dql/dql-integration-test-cases.xml
@@ -516,11 +516,11 @@
<test-case sql="SELECT * FROM t_user u INNER JOIN t_user_item m ON u.user_id=m.user_id WHERE u.user_id IN (0, 11)" scenario-types="encrypt,dbtbl_with_readwrite_splitting_and_encrypt">
<assertion expected-data-file="select_join_encrypt.xml"/>
</test-case>
-
+
<test-case sql="SELECT * FROM t_single_table" db-types="MySQL,Oracle,SQLServer" scenario-types="db,tbl,dbtbl_with_readwrite_splitting,readwrite_splitting,encrypt,dbtbl_with_readwrite_splitting_and_encrypt">
<assertion expected-data-file="select_from_single.xml"/>
</test-case>
-
+
<!--fixme! issue #9719-->
<!-- <test-case sql="SELECT * FROM t_single_table s INNER JOIN t_order o ON s.id = o.order_id" db-types="MySQL,Oracle,SQLServer" scenario-types="db,tbl,dbtbl_with_readwrite_splitting">-->
<!-- <assertion expected-data-file="select_from_single_join_order.xml"/>-->
@@ -529,31 +529,31 @@
<!-- <test-case sql="SELECT * FROM t_single_table s INNER JOIN t_user o ON s.id = o.user_id" db-types="MySQL,Oracle,SQLServer" scenario-types="encrypt,dbtbl_with_readwrite_splitting_and_encrypt">-->
<!-- <assertion expected-data-file="select_from_single_join_order.xml"/>-->
<!-- </test-case>-->
-
+
<test-case sql="SELECT o.*, i.* FROM t_order_federate o, t_order_item_federate i WHERE o.order_id = ? AND i.item_id = ?" scenario-types="db,dbtbl_with_readwrite_splitting,dbtbl_with_readwrite_splitting_and_encrypt">
<assertion parameters="1000:int, 100000:int" expected-data-file="select_across_single_tables_with_federate.xml" />
</test-case>
-
+
<test-case sql="SELECT user_id, CONCAT('SUM:', total, '.') content FROM (SELECT user_id, SUM(order_id_sharding) AS total FROM t_order_federate_sharding GROUP BY user_id HAVING SUM(order_id_sharding) > ?) AS temp" db-types="MySQL,PostgreSQL" scenario-types="tbl">
<assertion parameters="1000:int" expected-data-file="select_dialect_function_with_federate.xml" />
</test-case>
-
+
<test-case sql="SELECT GROUP_CONCAT(i.item_id SEPARATOR ';') AS item_ids FROM t_order_federate o INNER JOIN t_order_item_federate_sharding i ON o.order_id = i.item_id WHERE i.order_id >= ?" db-types="MySQL" scenario-types="dbtbl_with_readwrite_splitting,dbtbl_with_readwrite_splitting_and_encrypt">
<assertion parameters="10000:int" expected-data-file="select_group_concat_function_with_federate.xml" />
</test-case>
-
+
<test-case sql="select t_order_federate.*, t_order_item_federate_sharding.* from t_order_federate,t_order_item_federate_sharding where t_order_federate.order_id = t_order_item_federate_sharding.item_id" scenario-types="dbtbl_with_readwrite_splitting,dbtbl_with_readwrite_splitting_and_encrypt">
<assertion expected-data-file="select_sql_by_id_across_single_and_sharding_tables.xml" />
</test-case>
-
+
<test-case sql="select t_order_federate.*, t_order_item_federate_sharding.* from t_order_federate, t_order_item_federate_sharding where t_order_federate.order_id = t_order_item_federate_sharding.item_id AND t_order_item_federate_sharding.order_id = ?" scenario-types="dbtbl_with_readwrite_splitting,dbtbl_with_readwrite_splitting_and_encrypt">
<assertion parameters="10001:int" expected-data-file="select_sql_by_id_across_single_and_sharding_tables_order_id.xml" />
</test-case>
-
+
<test-case sql="SELECT SUM(DISTINCT user_id), SUM(order_id_sharding) FROM t_order_federate_sharding WHERE order_id_sharding > ?" db-types="MySQL,PostgreSQL" scenario-types="tbl">
<assertion parameters="1000:int" expected-data-file="select_partial_distinct_aggregation_sql_for_sharding_table.xml" />
</test-case>
-
+
<test-case sql="SELECT (SELECT MAX(user_id) FROM t_order_federate_sharding) max_user_id, order_id_sharding, status FROM t_order_federate_sharding WHERE order_id_sharding > ?" db-types="MySQL,PostgreSQL" scenario-types="tbl">
<assertion parameters="1100:int" expected-data-file="select_subquery_aggregation_sql_for_sharding_table.xml" />
</test-case>
@@ -561,71 +561,71 @@
<test-case sql="SELECT user_id, SUM(order_id_sharding) FROM t_order_federate_sharding GROUP BY user_id HAVING SUM(order_id_sharding) > ?" db-types="MySQL,PostgreSQL" scenario-types="tbl">
<assertion parameters="1000:int" expected-data-file="select_having_sql_for_sharding_table.xml" />
</test-case>
-
+
<test-case sql="SELECT COUNT(1) FROM t_order WHERE order_id < ?" db-types="PostgreSQL" scenario-types="db,tbl">
<assertion parameters="2000:int" expected-data-file="select_with_aggregation_function_for_postgresql.xml" />
</test-case>
-
+
<test-case sql="SELECT SUM(CRC32(`order_id`)) FROM t_order WHERE order_id = ?" db-types="MySQL" scenario-types="db,tbl">
<assertion parameters="1000:int" expected-data-file="select_with_aggregation_function_and_back_quote_for_mysql.xml" />
</test-case>
-
+
<test-case sql="select o.order_id_sharding, i.order_id from t_order_federate_sharding o, t_order_item_federate_sharding i where o.order_id_sharding = i.item_id" scenario-types="db,tbl,dbtbl_with_readwrite_splitting,dbtbl_with_readwrite_splitting_and_encrypt">
<assertion expected-data-file="select_sql_by_id_across_two_sharding_tables.xml" />
</test-case>
-
+
<test-case sql="select o.order_id_sharding, i.order_id from t_order_federate_sharding o, t_order_item_federate_sharding i where o.order_id_sharding = i.item_id and i.order_id > ?" scenario-types="db,tbl,dbtbl_with_readwrite_splitting,dbtbl_with_readwrite_splitting_and_encrypt">
<assertion parameters="10000:int" expected-data-file="select_sql_by_id_across_two_sharding_tables.xml" />
</test-case>
-
+
<test-case sql="select o.order_id_sharding, i.order_id from t_order_federate_sharding o, t_order_item_federate_sharding i where o.order_id_sharding = i.item_id and i.order_id > ?" scenario-types="db,tbl,dbtbl_with_readwrite_splitting,dbtbl_with_readwrite_splitting_and_encrypt">
<assertion parameters="10000:int" expected-data-file="select_sql_by_id_across_two_sharding_tables.xml" />
</test-case>
-
+
<test-case sql="select t_user_encrypt_federate_sharding.user_id, t_user_encrypt_federate_sharding.pwd, t_user_info.information from t_user_encrypt_federate_sharding, t_user_info where t_user_encrypt_federate_sharding.user_id = t_user_info.user_id " scenario-types="dbtbl_with_readwrite_splitting_and_encrypt">
<assertion expected-data-file="select_sql_by_id_across_single_and_sharding_tables_with_encrypt.xml" />
</test-case>
-
+
<test-case sql="select t_user_encrypt_federate_sharding.user_id, t_user_encrypt_federate_sharding.pwd, t_user_info.information from t_user_encrypt_federate_sharding, t_user_info where t_user_encrypt_federate_sharding.user_id = t_user_info.user_id and t_user_encrypt_federate_sharding.user_id > ? " scenario-types="dbtbl_with_readwrite_splitting_and_encrypt">
<assertion parameters="1:int" expected-data-file="select_sql_by_id_across_single_and_sharding_tables_with_encrypt_user_id.xml" />
</test-case>
-
+
<test-case sql="select t_order_federate.* from t_order_federate, t_order_item_federate_sharding where t_order_federate.order_id = t_order_item_federate_sharding.item_id ORDER BY t_order_item_federate_sharding.user_id" scenario-types="db,dbtbl_with_readwrite_splitting,dbtbl_with_readwrite_splitting_and_encrypt">
<assertion expected-data-file="select_sql_by_id_across_single_and_sharding_tables_order_by.xml" />
</test-case>
-
+
<test-case sql="select t_user_encrypt_federate.user_id, t_user_encrypt_federate.pwd, t_user_info.information from t_user_encrypt_federate, t_user_info where t_user_encrypt_federate.user_id = t_user_info.user_id " scenario-types="dbtbl_with_readwrite_splitting_and_encrypt">
<assertion expected-data-file="select_sql_by_id_across_single_tables_with_encrypt.xml" />
</test-case>
-
+
<test-case sql="select t_user_encrypt_federate.user_id, t_user_encrypt_federate.pwd, t_user_info.information from t_user_encrypt_federate, t_user_info where t_user_encrypt_federate.user_id = t_user_info.user_id and t_user_encrypt_federate.user_id > ? " scenario-types="dbtbl_with_readwrite_splitting_and_encrypt">
<assertion parameters="1:int" expected-data-file="select_sql_by_id_across_single_tables_with_encrypt_user_id.xml" />
</test-case>
-
+
<test-case sql="SELECT o.item_id, o.order_id, o.creation_date, s.id FROM t_order_item o INNER JOIN t_single_table s ON o.order_id = s.id ORDER BY o.item_id " scenario-types="db,tbl">
<assertion expected-data-file="select_with_data_type_across_single_and_sharding_tables.xml"/>
</test-case>
-
+
<test-case sql="select t_order_federate.*, t_order_item_federate_sharding.* from t_order_federate, t_order_item_federate_sharding where t_order_federate.order_id = t_order_item_federate_sharding.item_id AND t_order_item_federate_sharding.remarks = 't_order_item_federate_sharding' " scenario-types="db,dbtbl_with_readwrite_splitting,dbtbl_with_readwrite_splitting_and_encrypt">
<assertion expected-data-file="select_sql_by_id_across_single_and_sharding_tables_rewrite.xml"/>
</test-case>
-
+
<test-case sql="select o.*, i.* from t_order_federate o, t_order_item_federate_sharding i where o.order_id = i.item_id " scenario-types="db,dbtbl_with_readwrite_splitting,dbtbl_with_readwrite_splitting_and_encrypt">
<assertion expected-data-file="select_sql_by_id_across_single_and_sharding_tables_alias.xml"/>
</test-case>
-
+
<test-case sql="SELECT * FROM (SELECT order_id_sharding, user_id FROM t_order_federate_sharding WHERE order_id_sharding = 1010) AS TEMP" scenario-types="db,dbtbl_with_readwrite_splitting_and_encrypt">
<assertion expected-data-file="select_shorthand_projection_with_subquery.xml"/>
</test-case>
-
+
<test-case sql="SELECT AVG(order_id_sharding) AS order_id_sharding_avg FROM (SELECT order_id_sharding, user_id FROM t_order_federate_sharding WHERE order_id_sharding = 1010) AS TEMP" scenario-types="db,dbtbl_with_readwrite_splitting_and_encrypt" db-types="MySQL">
<assertion expected-data-file="select_aggregation_projection_with_subquery.xml"/>
</test-case>
-
+
<test-case sql="SELECT order_id_sharding AS order_id, user_id, status FROM t_order_federate_sharding WHERE order_id_sharding = ? UNION ALL SELECT order_id, user_id, status FROM t_order_item_federate_sharding WHERE user_id = ?" scenario-types="db,dbtbl_with_readwrite_splitting,dbtbl_with_readwrite_splitting_and_encrypt,tbl">
<assertion parameters="1010:int, 10:int" expected-data-file="select_multi_sharding_table_with_union_all.xml"/>
</test-case>
-
+
<!-- TODO complete test type -->
<test-case
sql="SELECT order_id, user_id, order_name, type_char, type_boolean, type_smallint, type_enum, type_decimal, type_date, type_time, type_timestamp FROM t_order WHERE user_id = ?"
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/engine-env.properties b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/engine-env.properties
index 209d19e..96525a6 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/engine-env.properties
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/engine-env.properties
@@ -15,6 +15,9 @@
# limitations under the License.
#
+#it.modes=Memory,Cluster
+it.run.modes=Memory
+
# EMBEDDED, DOCKER, NATIVE
it.env.type=${it.env}