You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by me...@apache.org on 2021/09/15 02:24:54 UTC
[shardingsphere] branch master updated: support gov it tests
(#12411)
This is an automated email from the ASF dual-hosted git repository.
menghaoran 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 0de9efd support gov it tests (#12411)
0de9efd is described below
commit 0de9efda6a2c8429be89fcb08a90f7a8ad201bf0
Author: Jieker <ji...@163.com>
AuthorDate: Wed Sep 15 10:24:21 2021 +0800
support gov it tests (#12411)
* support gov it tests
* ci fixed
* ci fixed
* little change
* close gov test
* ci fixed
* close gov test
* little modify
---
.../env/dataset/DataSetEnvironmentManager.java | 2 +-
.../junit/compose/ContainerCompose.java | 2 +-
.../junit/compose/GovernanceContainerCompose.java | 10 ++---
.../adapter/ShardingSphereAdapterContainer.java | 11 ++---
.../adapter/impl/ShardingSphereJDBCContainer.java | 48 ++++++++++++++++++----
.../adapter/impl/ShardingSphereProxyContainer.java | 16 ++++++--
.../container/governance/ZookeeperContainer.java | 2 +-
.../test/integration/engine/it/BaseITCase.java | 39 +++++++++++++-----
.../test/integration/engine/it/BatchITCase.java | 6 ++-
.../test/integration/engine/it/ddl/BaseDDLIT.java | 11 +++--
.../test/integration/engine/it/dml/BaseDMLIT.java | 11 +++--
.../src/test/resources/env/engine-env.properties | 2 +-
12 files changed, 112 insertions(+), 48 deletions(-)
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-fixture/src/test/java/org/apache/shardingsphere/test/integration/env/dataset/DataSetEnvironmentManager.java b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-fixture/src/test/java/org/apache/shardingsphere/test/integration/env/dataset/DataSetEnvironmentManager.java
index 2b8b43c..ed21134 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-fixture/src/test/java/org/apache/shardingsphere/test/integration/env/dataset/DataSetEnvironmentManager.java
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-fixture/src/test/java/org/apache/shardingsphere/test/integration/env/dataset/DataSetEnvironmentManager.java
@@ -53,7 +53,7 @@ import java.util.concurrent.Callable;
*/
public final class DataSetEnvironmentManager {
- private static final ExecutorServiceManager EXECUTOR_SERVICE_MANAGER = new ExecutorServiceManager(20);
+ private static final ExecutorServiceManager EXECUTOR_SERVICE_MANAGER = new ExecutorServiceManager(Runtime.getRuntime().availableProcessors() * 2 - 1);
private final DataSet dataSet;
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-fixture/src/test/java/org/apache/shardingsphere/test/integration/junit/compose/ContainerCompose.java b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-fixture/src/test/java/org/apache/shardingsphere/test/integration/junit/compose/ContainerCompose.java
index a8a99b4..18ca944 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-fixture/src/test/java/org/apache/shardingsphere/test/integration/junit/compose/ContainerCompose.java
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-fixture/src/test/java/org/apache/shardingsphere/test/integration/junit/compose/ContainerCompose.java
@@ -159,7 +159,7 @@ public abstract class ContainerCompose extends ExternalResource implements Close
* @return datasource map
*/
public Map<String, DataSource> getDataSourceMap() {
- return Collections.singletonMap("adapterForWriter", getAdapterContainer().getDataSource());
+ return Collections.singletonMap("adapterForWriter", getAdapterContainer().getDataSource(null));
}
@Override
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-fixture/src/test/java/org/apache/shardingsphere/test/integration/junit/compose/GovernanceContainerCompose.java b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-fixture/src/test/java/org/apache/shardingsphere/test/integration/junit/compose/GovernanceContainerCompose.java
index 909ed89..8f2586e 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-fixture/src/test/java/org/apache/shardingsphere/test/integration/junit/compose/GovernanceContainerCompose.java
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-fixture/src/test/java/org/apache/shardingsphere/test/integration/junit/compose/GovernanceContainerCompose.java
@@ -44,8 +44,6 @@ public final class GovernanceContainerCompose extends ContainerCompose {
private final ZookeeperContainer zookeeperContainer;
- private final Map<String, DataSource> result = new HashMap<>(2, 1);
-
public GovernanceContainerCompose(final String clusterName, final ParameterizedArray parameterizedArray) {
super(clusterName, parameterizedArray);
this.storageContainer = createStorageContainer();
@@ -69,12 +67,10 @@ public final class GovernanceContainerCompose extends ContainerCompose {
@Override
public Map<String, DataSource> getDataSourceMap() {
- if (!result.isEmpty()) {
- return result;
- }
+ Map<String, DataSource> result = new HashMap<>(2, 1);
String serverLists = zookeeperContainer.getServerLists();
- result.put("adapterForWriter", adapterContainer.getGovernanceDataSource(serverLists));
- result.put("adapterForReader", adapterContainerForReader.getGovernanceDataSource(serverLists));
+ result.put("adapterForWriter", adapterContainer.getDataSource(serverLists));
+ result.put("adapterForReader", adapterContainerForReader.getDataSourceForReader(serverLists));
return result;
}
}
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-fixture/src/test/java/org/apache/shardingsphere/test/integration/junit/container/adapter/ShardingSphereAdapterContainer.java b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-fixture/src/test/java/org/apache/shardingsphere/test/integration/junit/container/adapter/ShardingSphereAdapterContainer.java
index bc42493..df25205 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-fixture/src/test/java/org/apache/shardingsphere/test/integration/junit/container/adapter/ShardingSphereAdapterContainer.java
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-fixture/src/test/java/org/apache/shardingsphere/test/integration/junit/container/adapter/ShardingSphereAdapterContainer.java
@@ -65,19 +65,20 @@ public abstract class ShardingSphereAdapterContainer extends ShardingSphereConta
}
/**
- * Get DataSource.
+ * Get data source.
*
- * @return DataSource
+ * @param serverLists server list
+ * @return data source
*/
- public abstract DataSource getDataSource();
+ public abstract DataSource getDataSource(String serverLists);
/**
* Get governance data source.
*
* @param serverLists server list
- * @return governance data source
+ * @return data source.
*/
- public abstract DataSource getGovernanceDataSource(String serverLists);
+ public abstract DataSource getDataSourceForReader(String serverLists);
private Collection<String> getUsersFromConfiguration(final YamlProxyServerConfiguration serverConfig) {
for (YamlRuleConfiguration config : serverConfig.getRules()) {
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-fixture/src/test/java/org/apache/shardingsphere/test/integration/junit/container/adapter/impl/ShardingSphereJDBCContainer.java b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-fixture/src/test/java/org/apache/shardingsphere/test/integration/junit/container/adapter/impl/ShardingSphereJDBCContainer.java
index 83bb6f1..c0b8231 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-fixture/src/test/java/org/apache/shardingsphere/test/integration/junit/container/adapter/impl/ShardingSphereJDBCContainer.java
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-fixture/src/test/java/org/apache/shardingsphere/test/integration/junit/container/adapter/impl/ShardingSphereJDBCContainer.java
@@ -20,8 +20,8 @@ package org.apache.shardingsphere.test.integration.junit.container.adapter.impl;
import com.google.common.base.Strings;
import org.apache.shardingsphere.driver.api.yaml.YamlShardingSphereDataSourceFactory;
import org.apache.shardingsphere.driver.jdbc.core.datasource.ShardingSphereDataSource;
-import org.apache.shardingsphere.infra.database.DefaultSchema;
import org.apache.shardingsphere.infra.config.mode.ModeConfiguration;
+import org.apache.shardingsphere.infra.database.DefaultSchema;
import org.apache.shardingsphere.infra.yaml.config.pojo.YamlRootConfiguration;
import org.apache.shardingsphere.infra.yaml.config.pojo.mode.YamlModeConfiguration;
import org.apache.shardingsphere.infra.yaml.config.swapper.YamlRuleConfigurationSwapperEngine;
@@ -41,8 +41,10 @@ import java.io.IOException;
import java.sql.SQLException;
import java.util.List;
import java.util.Map;
+import java.util.Objects;
import java.util.Properties;
import java.util.concurrent.atomic.AtomicBoolean;
+import java.util.concurrent.atomic.AtomicReference;
import java.util.stream.Collectors;
/**
@@ -53,6 +55,10 @@ public final class ShardingSphereJDBCContainer extends ShardingSphereAdapterCont
private final AtomicBoolean isHealthy = new AtomicBoolean();
private Map<String, DataSource> dataSourceMap;
+
+ private final AtomicReference<DataSource> dataSourceProvider = new AtomicReference<>();
+
+ private final AtomicReference<DataSource> dataSourceForReaderProvider = new AtomicReference<>();
public ShardingSphereJDBCContainer(final ParameterizedArray parameterizedArray) {
super("ShardingSphere-JDBC", "ShardingSphere-JDBC", true, parameterizedArray);
@@ -67,27 +73,51 @@ public final class ShardingSphereJDBCContainer extends ShardingSphereAdapterCont
dataSourceMap = ((ShardingSphereStorageContainer) startables.get(0)).getDataSourceMap();
isHealthy.set(true);
}
-
+
/**
* Get data source.
*
+ * @param serverLists server list
* @return data source
*/
- public DataSource getDataSource() {
- try {
- return YamlShardingSphereDataSourceFactory.createDataSource(dataSourceMap, new File(EnvironmentPath.getRulesConfigurationFile(getParameterizedArray().getScenario())));
- } catch (SQLException | IOException ex) {
- throw new RuntimeException(ex);
+ public DataSource getDataSource(final String serverLists) {
+ DataSource dataSource = dataSourceProvider.get();
+ if (Objects.isNull(dataSource)) {
+ if (null != serverLists && !"".equals(serverLists)) {
+ dataSourceProvider.lazySet(createGovernanceDataSource(serverLists));
+ } else {
+ try {
+ dataSourceProvider.lazySet(YamlShardingSphereDataSourceFactory.createDataSource(dataSourceMap,
+ new File(EnvironmentPath.getRulesConfigurationFile(getParameterizedArray().getScenario()))));
+ } catch (SQLException | IOException ex) {
+ throw new RuntimeException(ex);
+ }
+ }
+ }
+ return dataSourceProvider.get();
+ }
+
+ /**
+ * Get governance data source for reader.
+ *
+ * @param serverLists server list
+ * @return data source
+ */
+ public DataSource getDataSourceForReader(final String serverLists) {
+ DataSource dataSource = dataSourceForReaderProvider.get();
+ if (Objects.isNull(dataSource)) {
+ dataSourceForReaderProvider.lazySet(createGovernanceDataSource(serverLists));
}
+ return dataSourceForReaderProvider.get();
}
/**
- * Get governance data source.
+ * Create governance data source.
*
* @param serverLists server list
* @return data source
*/
- public DataSource getGovernanceDataSource(final String serverLists) {
+ private DataSource createGovernanceDataSource(final String serverLists) {
try {
File yamlFile = new File(EnvironmentPath.getRulesConfigurationFile(getParameterizedArray().getScenario()));
YamlRootConfiguration rootConfig = YamlEngine.unmarshal(yamlFile, YamlRootConfiguration.class);
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-fixture/src/test/java/org/apache/shardingsphere/test/integration/junit/container/adapter/impl/ShardingSphereProxyContainer.java b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-fixture/src/test/java/org/apache/shardingsphere/test/integration/junit/container/adapter/impl/ShardingSphereProxyContainer.java
index 747a283..ff6e5ce 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-fixture/src/test/java/org/apache/shardingsphere/test/integration/junit/container/adapter/impl/ShardingSphereProxyContainer.java
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-fixture/src/test/java/org/apache/shardingsphere/test/integration/junit/container/adapter/impl/ShardingSphereProxyContainer.java
@@ -103,7 +103,7 @@ public final class ShardingSphereProxyContainer extends ShardingSphereAdapterCon
*
* @return DataSource
*/
- public DataSource getDataSource() {
+ private DataSource getDataSource() {
DataSource dataSource = dataSourceProvider.get();
if (Objects.isNull(dataSource)) {
dataSourceProvider.lazySet(createDataSource());
@@ -112,12 +112,22 @@ public final class ShardingSphereProxyContainer extends ShardingSphereAdapterCon
}
/**
+ * Get data source.
+ *
+ * @param serverLists server list
+ * @return data source
+ */
+ public DataSource getDataSource(final String serverLists) {
+ return getDataSource();
+ }
+
+ /**
* Get governance data source.
*
* @param serverLists server list
- * @return governance data source
+ * @return data source.
*/
- public DataSource getGovernanceDataSource(final String serverLists) {
+ public DataSource getDataSourceForReader(final String serverLists) {
return getDataSource();
}
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-fixture/src/test/java/org/apache/shardingsphere/test/integration/junit/container/governance/ZookeeperContainer.java b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-fixture/src/test/java/org/apache/shardingsphere/test/integration/junit/container/governance/ZookeeperContainer.java
index 0757eb3..c0e6cc8 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-fixture/src/test/java/org/apache/shardingsphere/test/integration/junit/container/governance/ZookeeperContainer.java
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-fixture/src/test/java/org/apache/shardingsphere/test/integration/junit/container/governance/ZookeeperContainer.java
@@ -34,6 +34,6 @@ public final class ZookeeperContainer extends ShardingSphereContainer {
* @return server list
*/
public String getServerLists() {
- return this.getHost() + getMappedPort(2181);
+ return this.getHost() + ":" + getMappedPort(2181);
}
}
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/it/BaseITCase.java b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/it/BaseITCase.java
index f96bb13..c0dd225 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/it/BaseITCase.java
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/it/BaseITCase.java
@@ -35,7 +35,6 @@ import org.junit.Rule;
import org.junit.runner.RunWith;
import javax.sql.DataSource;
-import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
@@ -82,27 +81,47 @@ public abstract class BaseITCase {
this.adapterContainer = compose.getAdapterContainer();
this.integrationTestCase = parameterizedArray.getTestCaseContext().getTestCase();
}
-
+
@Before
- public void init() throws IOException {
+ public void init() throws Exception {
dataSourceMap = compose.getDataSourceMap();
targetDataSource = dataSourceMap.get("adapterForWriter");
if (compose instanceof GovernanceContainerCompose) {
dataSourceForReader = dataSourceMap.get("adapterForReader");
+ int waitForGov = 10;
+ while (waitForGov-- > 0) {
+ try (Connection connection = targetDataSource.getConnection()) {
+ return;
+ } catch (NullPointerException ignored) {
+ Thread.sleep(2000);
+ }
+ }
}
}
@After
public void tearDown() throws Exception {
- if (targetDataSource instanceof ShardingSphereDataSource) {
- ((ShardingSphereDataSource) targetDataSource).getContextManager().close();
- }
- if (null != dataSourceForReader && dataSourceForReader instanceof ShardingSphereDataSource) {
- ((ShardingSphereDataSource) dataSourceForReader).getContextManager().close();
- dataSourceMap.clear();
+ // TODO Closing data sources gracefully.
+// if (targetDataSource instanceof ShardingSphereDataSource) {
+// closeDataSource(((ShardingSphereDataSource) targetDataSource));
+// }
+// if (null != dataSourceForReader && dataSourceForReader instanceof ShardingSphereDataSource) {
+// closeDataSource(((ShardingSphereDataSource) dataSourceForReader));
+// }
+ }
+
+ /**
+ * Ensure to close shardingsphere datasource.
+ * @param dataSource shardingsphere datasource
+ * @throws Exception sql execute exception.
+ */
+ private void closeDataSource(final ShardingSphereDataSource dataSource) throws Exception {
+ try (Connection connection = dataSource.getConnection()) {
+ connection.createStatement().execute("SELECT 1");
}
+ dataSource.getContextManager().close();
}
-
+
protected abstract String getSQL() throws ParseException;
/**
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/it/BatchITCase.java b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/it/BatchITCase.java
index 622f781..4deacb8 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/it/BatchITCase.java
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/it/BatchITCase.java
@@ -33,6 +33,7 @@ import org.apache.shardingsphere.test.integration.env.dataset.DataSetEnvironment
import org.apache.shardingsphere.test.integration.junit.compose.GovernanceContainerCompose;
import org.apache.shardingsphere.test.integration.junit.param.model.CaseParameterizedArray;
+import javax.sql.DataSource;
import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
@@ -94,8 +95,9 @@ public abstract class BatchITCase extends BaseITCase {
DataSetMetadata expectedDataSetMetadata = expected.getMetadataList().get(0);
for (String each : new InlineExpressionParser(expectedDataSetMetadata.getDataNodes()).splitAndEvaluate()) {
DataNode dataNode = new DataNode(each);
- try (Connection connection = getCompose() instanceof GovernanceContainerCompose
- ? getDataSourceForReader().getConnection() : getStorageContainer().getDataSourceMap().get(dataNode.getDataSourceName()).getConnection();
+ DataSource dataSource = getCompose() instanceof GovernanceContainerCompose
+ ? getDataSourceForReader() : getStorageContainer().getDataSourceMap().get(dataNode.getDataSourceName());
+ try (Connection connection = dataSource.getConnection();
PreparedStatement preparedStatement = connection.prepareStatement(String.format("SELECT * FROM %s ORDER BY 1", dataNode.getTableName()))) {
assertDataSet(preparedStatement, expected.findRows(dataNode), expectedDataSetMetadata);
}
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/it/ddl/BaseDDLIT.java b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/it/ddl/BaseDDLIT.java
index b4dce9c..ae4313e 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/it/ddl/BaseDDLIT.java
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/it/ddl/BaseDDLIT.java
@@ -31,6 +31,7 @@ import org.apache.shardingsphere.test.integration.env.dataset.DataSetEnvironment
import org.apache.shardingsphere.test.integration.junit.compose.GovernanceContainerCompose;
import org.apache.shardingsphere.test.integration.junit.param.model.AssertionParameterizedArray;
+import javax.sql.DataSource;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
@@ -124,8 +125,9 @@ public abstract class BaseDDLIT extends SingleITCase {
private List<DataSetColumn> getActualColumns(final Collection<DataNode> dataNodes) throws SQLException {
Set<DataSetColumn> result = new LinkedHashSet<>();
for (DataNode each : dataNodes) {
- try (Connection connection = getCompose() instanceof GovernanceContainerCompose
- ? getDataSourceForReader().getConnection() : getStorageContainer().getDataSourceMap().get(each.getDataSourceName()).getConnection()) {
+ DataSource dataSource = getCompose() instanceof GovernanceContainerCompose
+ ? getDataSourceForReader() : getStorageContainer().getDataSourceMap().get(each.getDataSourceName());
+ try (Connection connection = dataSource.getConnection()) {
result.addAll(getActualColumns(connection, each.getTableName()));
}
}
@@ -149,8 +151,9 @@ public abstract class BaseDDLIT extends SingleITCase {
private List<DataSetIndex> getActualIndexes(final Collection<DataNode> dataNodes) throws SQLException {
Set<DataSetIndex> result = new LinkedHashSet<>();
for (DataNode each : dataNodes) {
- try (Connection connection = getCompose() instanceof GovernanceContainerCompose
- ? getDataSourceForReader().getConnection() : getStorageContainer().getDataSourceMap().get(each.getDataSourceName()).getConnection()) {
+ DataSource dataSource = getCompose() instanceof GovernanceContainerCompose
+ ? getDataSourceForReader() : getStorageContainer().getDataSourceMap().get(each.getDataSourceName());
+ try (Connection connection = dataSource.getConnection()) {
result.addAll(getActualIndexes(connection, each.getTableName()));
}
}
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/it/dml/BaseDMLIT.java b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/it/dml/BaseDMLIT.java
index 361fd5c..487392a 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/it/dml/BaseDMLIT.java
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/it/dml/BaseDMLIT.java
@@ -30,6 +30,7 @@ import org.apache.shardingsphere.test.integration.env.dataset.DataSetEnvironment
import org.apache.shardingsphere.test.integration.junit.compose.GovernanceContainerCompose;
import org.apache.shardingsphere.test.integration.junit.param.model.AssertionParameterizedArray;
+import javax.sql.DataSource;
import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
@@ -76,9 +77,10 @@ public abstract class BaseDMLIT extends SingleITCase {
DataSetMetadata expectedDataSetMetadata = getDataSet().getMetadataList().get(0);
for (String each : new InlineExpressionParser(expectedDataSetMetadata.getDataNodes()).splitAndEvaluate()) {
DataNode dataNode = new DataNode(each);
+ DataSource dataSource = getCompose() instanceof GovernanceContainerCompose
+ ? getDataSourceForReader() : getStorageContainer().getDataSourceMap().get(dataNode.getDataSourceName());
try (
- Connection connection = getCompose() instanceof GovernanceContainerCompose
- ? getDataSourceForReader().getConnection() : getStorageContainer().getDataSourceMap().get(dataNode.getDataSourceName()).getConnection();
+ Connection connection = dataSource.getConnection();
PreparedStatement preparedStatement = connection.prepareStatement(generateFetchActualDataSQL(dataNode))) {
assertDataSet(preparedStatement, expectedDataSetMetadata, getDataSet().findRows(dataNode));
}
@@ -103,9 +105,10 @@ public abstract class BaseDMLIT extends SingleITCase {
private String getPrimaryKeyColumnNameForPostgreSQL(final DataNode dataNode) throws SQLException {
String sql = String.format("SELECT a.attname, format_type(a.atttypid, a.atttypmod) AS data_type "
+ "FROM pg_index i JOIN pg_attribute a ON a.attrelid = i.indrelid AND a.attnum = ANY(i.indkey) WHERE i.indrelid = '%s'::regclass AND i.indisprimary", dataNode.getTableName());
+ DataSource dataSource = getCompose() instanceof GovernanceContainerCompose
+ ? getDataSourceForReader() : getStorageContainer().getDataSourceMap().get(dataNode.getDataSourceName());
try (
- Connection connection = getCompose() instanceof GovernanceContainerCompose
- ? getDataSourceForReader().getConnection() : getStorageContainer().getDataSourceMap().get(dataNode.getDataSourceName()).getConnection();
+ Connection connection = dataSource.getConnection();
Statement statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery(sql)) {
if (resultSet.next()) {
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 e263ac5..4a46096 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
@@ -23,7 +23,7 @@ it.adapters=jdbc
#it.scenarios=db,tbl,dbtbl_with_readwrite_splitting,readwrite_splitting,encrypt,dbtbl_with_readwrite_splitting_and_encrypt,sharding_governance,shadow
it.scenarios=db,tbl,dbtbl_with_readwrite_splitting,readwrite_splitting,encrypt,dbtbl_with_readwrite_splitting_and_encrypt
-#it.databases=H2,MySQL,Oracle,SQLServer,PostgreSQL
+#it.databases=H2,MySQL,PostgreSQL
it.databases=H2
it.run.additional.cases=false