This is an automated email from the ASF dual-hosted git repository.

chengzhang 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 544a5e329a4 Add : add debug mode for transaction E2E (#31629)
544a5e329a4 is described below

commit 544a5e329a4cff89251d9b2cd137fcd6a7d07227
Author: 孙念君 Nianjun Sun <[email protected]>
AuthorDate: Tue Jun 11 11:09:33 2024 +0800

    Add : add debug mode for transaction E2E (#31629)
    
    * Add : add debug mode for transaction E2E
    
    * Refactor : fix the checkstyle issues
---
 .../atomic/adapter/config/AdaptorContainerConfiguration.java   |  3 +++
 .../config/ProxyClusterContainerConfigurationFactory.java      |  3 ++-
 .../adapter/impl/ShardingSphereProxyClusterContainer.java      |  3 +++
 .../PipelineProxyClusterContainerConfigurationFactory.java     |  3 ++-
 .../composer/ClusterShowProcessListContainerComposer.java      |  3 ++-
 .../test/e2e/transaction/engine/base/TransactionBaseE2EIT.java | 10 +++++-----
 .../test/e2e/transaction/env/TransactionE2EEnvironment.java    |  7 +++++--
 .../framework/container/compose/DockerContainerComposer.java   |  2 +-
 .../proxy/ProxyClusterContainerConfigurationFactory.java       |  7 +++++--
 .../transaction/framework/param/TransactionTestParameter.java  |  2 ++
 .../transaction/src/test/resources/env/it-env.properties       |  3 ++-
 .../config/ProxyClusterContainerConfigurationFactory.java      |  5 +++--
 .../config/ProxyStandaloneContainerConfigurationFactory.java   |  5 +++--
 13 files changed, 38 insertions(+), 18 deletions(-)

diff --git 
a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/atomic/adapter/config/AdaptorContainerConfiguration.java
 
b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/atomic/adapter/config/AdaptorContainerConfiguration.java
index f49ce3b3e6f..c1b5e1330e5 100644
--- 
a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/atomic/adapter/config/AdaptorContainerConfiguration.java
+++ 
b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/atomic/adapter/config/AdaptorContainerConfiguration.java
@@ -20,6 +20,7 @@ package 
org.apache.shardingsphere.test.e2e.env.container.atomic.adapter.config;
 import lombok.Getter;
 import lombok.RequiredArgsConstructor;
 
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -31,6 +32,8 @@ public final class AdaptorContainerConfiguration {
     
     private final String proxyDataSourceName;
     
+    private final List<String> portBindings;
+    
     private final Map<String, String> mountedResources;
     
     private final String adapterContainerImage;
diff --git 
a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/atomic/adapter/config/ProxyClusterContainerConfigurationFactory.java
 
b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/atomic/adapter/config/ProxyClusterContainerConfigurationFactory.java
index 5cf7cecc50b..368fed135b7 100644
--- 
a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/atomic/adapter/config/ProxyClusterContainerConfigurationFactory.java
+++ 
b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/atomic/adapter/config/ProxyClusterContainerConfigurationFactory.java
@@ -23,6 +23,7 @@ import 
org.apache.shardingsphere.test.e2e.env.container.atomic.util.AdapterConta
 import 
org.apache.shardingsphere.test.e2e.env.container.atomic.constants.ProxyContainerConstants;
 
 import java.util.Collections;
+import java.util.LinkedList;
 import java.util.Map;
 
 /**
@@ -37,7 +38,7 @@ public final class ProxyClusterContainerConfigurationFactory {
      * @return created instance
      */
     public static AdaptorContainerConfiguration newInstance() {
-        return new AdaptorContainerConfiguration("", getMountedResources(), 
AdapterContainerUtils.getAdapterContainerImage(), "");
+        return new AdaptorContainerConfiguration("", new LinkedList<>(), 
getMountedResources(), AdapterContainerUtils.getAdapterContainerImage(), "");
     }
     
     private static Map<String, String> getMountedResources() {
diff --git 
a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/atomic/adapter/impl/ShardingSphereProxyClusterContainer.java
 
b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/atomic/adapter/impl/ShardingSphereProxyClusterContainer.java
index 1b6de75eb34..3a131743f8c 100644
--- 
a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/atomic/adapter/impl/ShardingSphereProxyClusterContainer.java
+++ 
b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/atomic/adapter/impl/ShardingSphereProxyClusterContainer.java
@@ -69,6 +69,9 @@ public final class ShardingSphereProxyClusterContainer 
extends DockerITContainer
             setCommand(config.getContainerCommand());
         }
         withExposedPorts(3307, 33071, 3308);
+        if (!config.getPortBindings().isEmpty()) {
+            setPortBindings(config.getPortBindings());
+        }
         addEnv("TZ", "UTC");
         mountConfigurationFiles();
         setWaitStrategy(new JdbcConnectionWaitStrategy(() -> 
DriverManager.getConnection(DataSourceEnvironment.getURL(databaseType,
diff --git 
a/test/e2e/operation/pipeline/src/test/java/org/apache/shardingsphere/test/e2e/data/pipeline/framework/container/config/proxy/PipelineProxyClusterContainerConfigurationFactory.java
 
b/test/e2e/operation/pipeline/src/test/java/org/apache/shardingsphere/test/e2e/data/pipeline/framework/container/config/proxy/PipelineProxyClusterContainerConfigurationFactory.java
index 43b853d672a..d036dfcd696 100644
--- 
a/test/e2e/operation/pipeline/src/test/java/org/apache/shardingsphere/test/e2e/data/pipeline/framework/container/config/proxy/PipelineProxyClusterContainerConfigurationFactory.java
+++ 
b/test/e2e/operation/pipeline/src/test/java/org/apache/shardingsphere/test/e2e/data/pipeline/framework/container/config/proxy/PipelineProxyClusterContainerConfigurationFactory.java
@@ -28,6 +28,7 @@ import 
org.apache.shardingsphere.test.e2e.env.container.atomic.constants.ProxyCo
 import 
org.apache.shardingsphere.test.e2e.env.container.atomic.util.AdapterContainerUtils;
 
 import java.util.HashMap;
+import java.util.LinkedList;
 import java.util.Map;
 
 /**
@@ -43,7 +44,7 @@ public final class 
PipelineProxyClusterContainerConfigurationFactory {
      * @return created instance
      */
     public static AdaptorContainerConfiguration newInstance(final DatabaseType 
databaseType) {
-        return new 
AdaptorContainerConfiguration(getProxyDatasourceName(databaseType), 
getMountedResource(databaseType), 
AdapterContainerUtils.getAdapterContainerImage(), "");
+        return new 
AdaptorContainerConfiguration(getProxyDatasourceName(databaseType), new 
LinkedList<>(), getMountedResource(databaseType), 
AdapterContainerUtils.getAdapterContainerImage(), "");
     }
     
     private static String getProxyDatasourceName(final DatabaseType 
databaseType) {
diff --git 
a/test/e2e/operation/showprocesslist/src/test/java/org/apache/shardingsphere/test/e2e/showprocesslist/container/composer/ClusterShowProcessListContainerComposer.java
 
b/test/e2e/operation/showprocesslist/src/test/java/org/apache/shardingsphere/test/e2e/showprocesslist/container/composer/ClusterShowProcessListContainerComposer.java
index 253eab64891..06365c0ba2e 100644
--- 
a/test/e2e/operation/showprocesslist/src/test/java/org/apache/shardingsphere/test/e2e/showprocesslist/container/composer/ClusterShowProcessListContainerComposer.java
+++ 
b/test/e2e/operation/showprocesslist/src/test/java/org/apache/shardingsphere/test/e2e/showprocesslist/container/composer/ClusterShowProcessListContainerComposer.java
@@ -36,6 +36,7 @@ import 
org.apache.shardingsphere.test.e2e.showprocesslist.parameter.ShowProcessL
 
 import javax.sql.DataSource;
 import java.util.HashMap;
+import java.util.LinkedList;
 import java.util.Map;
 
 /**
@@ -56,7 +57,7 @@ public final class ClusterShowProcessListContainerComposer 
implements AutoClosea
         governanceContainer = isClusterMode(testParam.getRunMode()) ? 
containers.registerContainer(GovernanceContainerFactory.newInstance("ZooKeeper"))
 : null;
         StorageContainer storageContainer = 
containers.registerContainer(StorageContainerFactory.newInstance(testParam.getDatabaseType(),
 "",
                 
StorageContainerConfigurationFactory.newInstance(testParam.getDatabaseType(), 
testParam.getScenario())));
-        AdaptorContainerConfiguration containerConfig = new 
AdaptorContainerConfiguration(testParam.getScenario(),
+        AdaptorContainerConfiguration containerConfig = new 
AdaptorContainerConfiguration(testParam.getScenario(), new LinkedList<>(),
                 getMountedResources(testParam.getScenario(), 
testParam.getDatabaseType(), testParam.getRunMode(), 
testParam.getGovernanceCenter()), 
AdapterContainerUtils.getAdapterContainerImage(),
                 "");
         jdbcContainer = AdapterContainerFactory.newInstance(
diff --git 
a/test/e2e/operation/transaction/src/test/java/org/apache/shardingsphere/test/e2e/transaction/engine/base/TransactionBaseE2EIT.java
 
b/test/e2e/operation/transaction/src/test/java/org/apache/shardingsphere/test/e2e/transaction/engine/base/TransactionBaseE2EIT.java
index 8f1441df760..d87b8bdcc55 100644
--- 
a/test/e2e/operation/transaction/src/test/java/org/apache/shardingsphere/test/e2e/transaction/engine/base/TransactionBaseE2EIT.java
+++ 
b/test/e2e/operation/transaction/src/test/java/org/apache/shardingsphere/test/e2e/transaction/engine/base/TransactionBaseE2EIT.java
@@ -179,8 +179,8 @@ public abstract class TransactionBaseE2EIT {
     
     /**
      * Create account table.
-     * 
-     * @param connection connection 
+     *
+     * @param connection connection
      * @throws SQLException SQL exception
      */
     public void createAccountTable(final Connection connection) throws 
SQLException {
@@ -190,7 +190,7 @@ public abstract class TransactionBaseE2EIT {
     /**
      * Drop account table.
      *
-     * @param connection connection 
+     * @param connection connection
      * @throws SQLException SQL exception
      */
     public void dropAccountTable(final Connection connection) throws 
SQLException {
@@ -286,7 +286,7 @@ public abstract class TransactionBaseE2EIT {
      * Create the account table rule with one data source.
      *
      * @param connection connection
-     * @param containerComposer container composer 
+     * @param containerComposer container composer
      * @throws SQLException SQL exception
      */
     public void createOriginalAccountTableRule(final Connection connection, 
final TransactionContainerComposer containerComposer) throws SQLException {
@@ -429,7 +429,7 @@ public abstract class TransactionBaseE2EIT {
         private void setTestParameters(final Map<String, 
TransactionTestParameter> testParams, final TransactionTestCaseRegistry 
registry, final String databaseVersion,
                                        final List<TransactionType> 
transactionTypes, final List<String> providers, final String scenario, final 
Class<? extends BaseTransactionTestCase> caseClass) {
             String key = getUniqueKey(registry.getDbType(), 
registry.getRunningAdaptor(), transactionTypes, providers, scenario);
-            testParams.putIfAbsent(key, new 
TransactionTestParameter(getDatabaseType(registry.getDbType()), 
registry.getRunningAdaptor(), transactionTypes, providers,
+            testParams.putIfAbsent(key, new 
TransactionTestParameter(getDatabaseType(registry.getDbType()), 
registry.getRunningAdaptor(), ENV.getPortBindings(), transactionTypes, 
providers,
                     getStorageContainerImageName(registry.getDbType(), 
databaseVersion), scenario, new LinkedList<>()));
             testParams.get(key).getTransactionTestCaseClasses().add(caseClass);
         }
diff --git 
a/test/e2e/operation/transaction/src/test/java/org/apache/shardingsphere/test/e2e/transaction/env/TransactionE2EEnvironment.java
 
b/test/e2e/operation/transaction/src/test/java/org/apache/shardingsphere/test/e2e/transaction/env/TransactionE2EEnvironment.java
index 483c1bdd4e0..909297dcdde 100644
--- 
a/test/e2e/operation/transaction/src/test/java/org/apache/shardingsphere/test/e2e/transaction/env/TransactionE2EEnvironment.java
+++ 
b/test/e2e/operation/transaction/src/test/java/org/apache/shardingsphere/test/e2e/transaction/env/TransactionE2EEnvironment.java
@@ -48,6 +48,8 @@ public final class TransactionE2EEnvironment {
     
     private final TransactionE2EEnvTypeEnum itEnvType;
     
+    private final List<String> portBindings;
+    
     private final List<String> mysqlVersions;
     
     private final List<String> postgresqlVersions;
@@ -65,6 +67,7 @@ public final class TransactionE2EEnvironment {
     private TransactionE2EEnvironment() {
         props = loadProperties();
         itEnvType = 
TransactionE2EEnvTypeEnum.valueOf(props.getProperty("transaction.it.env.type", 
TransactionE2EEnvTypeEnum.NONE.name()).toUpperCase());
+        portBindings = splitProperty("transaction.it.proxy.port.bindings");
         mysqlVersions = splitProperty("transaction.it.docker.mysql.version");
         postgresqlVersions = 
splitProperty("transaction.it.docker.postgresql.version");
         openGaussVersions = 
splitProperty("transaction.it.docker.opengauss.version");
@@ -155,7 +158,7 @@ public final class TransactionE2EEnvironment {
     
     /**
      * Get proxy password.
-     * 
+     *
      * @return proxy password
      */
     public String getProxyPassword() {
@@ -165,7 +168,7 @@ public final class TransactionE2EEnvironment {
     
     /**
      * Get proxy userName.
-     * 
+     *
      * @return proxy userName
      */
     public String getProxyUserName() {
diff --git 
a/test/e2e/operation/transaction/src/test/java/org/apache/shardingsphere/test/e2e/transaction/framework/container/compose/DockerContainerComposer.java
 
b/test/e2e/operation/transaction/src/test/java/org/apache/shardingsphere/test/e2e/transaction/framework/container/compose/DockerContainerComposer.java
index bbf1a841d66..749b12e8cb6 100644
--- 
a/test/e2e/operation/transaction/src/test/java/org/apache/shardingsphere/test/e2e/transaction/framework/container/compose/DockerContainerComposer.java
+++ 
b/test/e2e/operation/transaction/src/test/java/org/apache/shardingsphere/test/e2e/transaction/framework/container/compose/DockerContainerComposer.java
@@ -63,7 +63,7 @@ public final class DockerContainerComposer extends 
BaseContainerComposer {
         if 
(AdapterType.PROXY.getValue().equalsIgnoreCase(testParam.getAdapter())) {
             jdbcContainer = null;
             proxyContainer = (ShardingSphereProxyClusterContainer) 
AdapterContainerFactory.newInstance(AdapterMode.CLUSTER, AdapterType.PROXY,
-                    databaseType, storageContainer, testParam.getScenario(), 
ProxyClusterContainerConfigurationFactory.newInstance(testParam.getScenario(), 
databaseType));
+                    databaseType, storageContainer, testParam.getScenario(), 
ProxyClusterContainerConfigurationFactory.newInstance(testParam.getScenario(), 
databaseType, testParam.getPortBindings()));
             proxyContainer.dependsOn(governanceContainer, storageContainer);
             getContainers().registerContainer(proxyContainer);
         } else {
diff --git 
a/test/e2e/operation/transaction/src/test/java/org/apache/shardingsphere/test/e2e/transaction/framework/container/config/proxy/ProxyClusterContainerConfigurationFactory.java
 
b/test/e2e/operation/transaction/src/test/java/org/apache/shardingsphere/test/e2e/transaction/framework/container/config/proxy/ProxyClusterContainerConfigurationFactory.java
index 7aa177eb38a..8c439952f82 100644
--- 
a/test/e2e/operation/transaction/src/test/java/org/apache/shardingsphere/test/e2e/transaction/framework/container/config/proxy/ProxyClusterContainerConfigurationFactory.java
+++ 
b/test/e2e/operation/transaction/src/test/java/org/apache/shardingsphere/test/e2e/transaction/framework/container/config/proxy/ProxyClusterContainerConfigurationFactory.java
@@ -25,6 +25,7 @@ import 
org.apache.shardingsphere.test.e2e.env.container.atomic.constants.ProxyCo
 import 
org.apache.shardingsphere.test.e2e.env.container.atomic.util.AdapterContainerUtils;
 
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -38,11 +39,13 @@ public final class 
ProxyClusterContainerConfigurationFactory {
      *
      * @param scenario scenario
      * @param databaseType database type
+     * @param portBindings port bindings
      * @return created instance
      */
-    public static AdaptorContainerConfiguration newInstance(final String 
scenario, final DatabaseType databaseType) {
+    public static AdaptorContainerConfiguration newInstance(final String 
scenario, final DatabaseType databaseType, final List<String> portBindings) {
         String containerCommand = "readwrite-splitting".equals(scenario) ? 
"-f" : "";
-        return new 
AdaptorContainerConfiguration(getProxyDatasourceName(scenario), 
getMountedResource(scenario, databaseType), 
AdapterContainerUtils.getAdapterContainerImage(), containerCommand);
+        return new 
AdaptorContainerConfiguration(getProxyDatasourceName(scenario), portBindings, 
getMountedResource(scenario, databaseType), 
AdapterContainerUtils.getAdapterContainerImage(),
+                containerCommand);
     }
     
     private static String getProxyDatasourceName(final String scenario) {
diff --git 
a/test/e2e/operation/transaction/src/test/java/org/apache/shardingsphere/test/e2e/transaction/framework/param/TransactionTestParameter.java
 
b/test/e2e/operation/transaction/src/test/java/org/apache/shardingsphere/test/e2e/transaction/framework/param/TransactionTestParameter.java
index 6164fe7196e..68cda662524 100644
--- 
a/test/e2e/operation/transaction/src/test/java/org/apache/shardingsphere/test/e2e/transaction/framework/param/TransactionTestParameter.java
+++ 
b/test/e2e/operation/transaction/src/test/java/org/apache/shardingsphere/test/e2e/transaction/framework/param/TransactionTestParameter.java
@@ -34,6 +34,8 @@ public final class TransactionTestParameter {
     
     private final String adapter;
     
+    private final List<String> portBindings;
+    
     private final List<TransactionType> transactionTypes;
     
     private final List<String> providers;
diff --git 
a/test/e2e/operation/transaction/src/test/resources/env/it-env.properties 
b/test/e2e/operation/transaction/src/test/resources/env/it-env.properties
index 16f1bf562fd..151579d1880 100644
--- a/test/e2e/operation/transaction/src/test/resources/env/it-env.properties
+++ b/test/e2e/operation/transaction/src/test/resources/env/it-env.properties
@@ -16,7 +16,8 @@
 #
 # transaction.it.type=NONE,DOCKER,NATIVE
 transaction.it.env.type=NONE
-# transaction.it.env.cases=ClassicTransferTestCase, 
PostgreSQLSavePointTestCase, MySQLSavePointTestCase 
+# transaction.it.proxy.binding.ports=63308:3308
+# transaction.it.env.cases=ClassicTransferTestCase, 
PostgreSQLSavePointTestCase, MySQLSavePointTestCase
 transaction.it.env.cases=TransactionDeadlockTestCase, 
MultiJDBCConnectionsTestCase, MultiTransactionInConnectionTestCase, 
MultiOperationsCommitAndRollbackTestCase, MySQLAutoCommitTestCase, 
PostgreSQLAutoCommitTestCase, BroadcastTableTransactionTestCase, 
ExceptionInTransactionTestCase, MultiTableCommitAndRollbackTestCase, 
SingleTableCommitAndRollbackTestCase, MySQLSetReadOnlyTestCase, 
MySQLLocalTruncateTestCase, MySQLXATruncateTestCase, OpenGaussCursorTestCase, 
NestedTransactionTestCase,  [...]
 # transaction.it.env.transtypes=LOCAL, XA, BASE
 transaction.it.env.transtypes=LOCAL, XA
diff --git 
a/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/container/config/ProxyClusterContainerConfigurationFactory.java
 
b/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/container/config/ProxyClusterContainerConfigurationFactory.java
index 7bb606c5067..d53b92c8a37 100644
--- 
a/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/container/config/ProxyClusterContainerConfigurationFactory.java
+++ 
b/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/container/config/ProxyClusterContainerConfigurationFactory.java
@@ -26,6 +26,7 @@ import org.jetbrains.annotations.NotNull;
 
 import java.net.URL;
 import java.util.HashMap;
+import java.util.LinkedList;
 import java.util.Map;
 
 /**
@@ -36,14 +37,14 @@ public final class 
ProxyClusterContainerConfigurationFactory {
     
     /**
      * Create instance of adaptor container configuration.
-     * 
+     *
      * @param scenario scenario
      * @param databaseType database type
      * @param adapterContainerImage adapter container image
      * @return created instance
      */
     public static AdaptorContainerConfiguration newInstance(final String 
scenario, final DatabaseType databaseType, final String adapterContainerImage) {
-        return new AdaptorContainerConfiguration(scenario, 
getMountedResources(scenario, databaseType), adapterContainerImage, "");
+        return new AdaptorContainerConfiguration(scenario, new LinkedList<>(), 
getMountedResources(scenario, databaseType), adapterContainerImage, "");
     }
     
     private static Map<String, String> getMountedResources(final String 
scenario, final DatabaseType databaseType) {
diff --git 
a/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/container/config/ProxyStandaloneContainerConfigurationFactory.java
 
b/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/container/config/ProxyStandaloneContainerConfigurationFactory.java
index e01e26c5eda..dc04869f75a 100644
--- 
a/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/container/config/ProxyStandaloneContainerConfigurationFactory.java
+++ 
b/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/container/config/ProxyStandaloneContainerConfigurationFactory.java
@@ -27,6 +27,7 @@ import org.jetbrains.annotations.NotNull;
 
 import java.net.URL;
 import java.util.HashMap;
+import java.util.LinkedList;
 import java.util.Map;
 
 /**
@@ -37,13 +38,13 @@ public final class 
ProxyStandaloneContainerConfigurationFactory {
     
     /**
      * Create instance of adaptor container configuration.
-     * 
+     *
      * @param scenario scenario
      * @param databaseType database type
      * @return created instance
      */
     public static AdaptorContainerConfiguration newInstance(final String 
scenario, final DatabaseType databaseType) {
-        return new AdaptorContainerConfiguration(scenario, 
getMountedResources(scenario, databaseType), 
AdapterContainerUtils.getAdapterContainerImage(), "");
+        return new AdaptorContainerConfiguration(scenario, new LinkedList<>(), 
getMountedResources(scenario, databaseType), 
AdapterContainerUtils.getAdapterContainerImage(), "");
     }
     
     private static Map<String, String> getMountedResources(final String 
scenario, final DatabaseType databaseType) {

Reply via email to