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

zhonghongsheng 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 1b105bc1c02 Use Awaitility replace sleep at CDC E2E (#26636)
1b105bc1c02 is described below

commit 1b105bc1c02a594728cf35bf190e19c901bda568
Author: Xinze Guo <[email protected]>
AuthorDate: Wed Jun 28 09:46:21 2023 +0800

    Use Awaitility replace sleep at CDC E2E (#26636)
    
    * Use Awaitility replace sleep at CDC E2E
    
    * increment max wait time
---
 .../e2e/data/pipeline/cases/PipelineContainerComposer.java  | 13 +++++++++++--
 .../test/e2e/data/pipeline/cases/cdc/CDCE2EIT.java          |  2 ++
 .../pipeline/cases/migration/AbstractMigrationE2EIT.java    |  9 ++++-----
 3 files changed, 17 insertions(+), 7 deletions(-)

diff --git 
a/test/e2e/operation/pipeline/src/test/java/org/apache/shardingsphere/test/e2e/data/pipeline/cases/PipelineContainerComposer.java
 
b/test/e2e/operation/pipeline/src/test/java/org/apache/shardingsphere/test/e2e/data/pipeline/cases/PipelineContainerComposer.java
index 7ba21cb53d3..c1c5349bddf 100644
--- 
a/test/e2e/operation/pipeline/src/test/java/org/apache/shardingsphere/test/e2e/data/pipeline/cases/PipelineContainerComposer.java
+++ 
b/test/e2e/operation/pipeline/src/test/java/org/apache/shardingsphere/test/e2e/data/pipeline/cases/PipelineContainerComposer.java
@@ -226,7 +226,7 @@ public final class PipelineContainerComposer implements 
AutoCloseable {
                 .replace("${user}", getUsername())
                 .replace("${password}", getPassword())
                 .replace("${url}", getActualJdbcUrlTemplate(storageUnitName, 
true));
-        proxyExecuteWithLog(registerStorageUnitTemplate, 2);
+        proxyExecuteWithLog(registerStorageUnitTemplate, 1);
     }
     
     /**
@@ -235,11 +235,20 @@ public final class PipelineContainerComposer implements 
AutoCloseable {
      * @param distSQL dist SQL
      * @throws SQLException SQL exception
      */
-    // TODO Use registerStorageUnit instead, and remove the method
+    // TODO Use registerStorageUnit instead, and remove the method, keep it now
     public void addResource(final String distSQL) throws SQLException {
         proxyExecuteWithLog(distSQL, 2);
     }
     
+    /**
+     * Show storage units names.
+     *
+     * @return storage units names
+     */
+    public List<String> showStorageUnitsName() {
+        return queryForListWithLog(proxyDataSource, "SHOW STORAGE 
UNITS").stream().map(each -> 
String.valueOf(each.get("name"))).collect(Collectors.toList());
+    }
+    
     /**
      * Get actual JDBC URL template.
      *
diff --git 
a/test/e2e/operation/pipeline/src/test/java/org/apache/shardingsphere/test/e2e/data/pipeline/cases/cdc/CDCE2EIT.java
 
b/test/e2e/operation/pipeline/src/test/java/org/apache/shardingsphere/test/e2e/data/pipeline/cases/cdc/CDCE2EIT.java
index cf7762eda10..4aeacfff4e6 100644
--- 
a/test/e2e/operation/pipeline/src/test/java/org/apache/shardingsphere/test/e2e/data/pipeline/cases/cdc/CDCE2EIT.java
+++ 
b/test/e2e/operation/pipeline/src/test/java/org/apache/shardingsphere/test/e2e/data/pipeline/cases/cdc/CDCE2EIT.java
@@ -105,6 +105,8 @@ class CDCE2EIT {
             for (String each : Arrays.asList(PipelineContainerComposer.DS_0, 
PipelineContainerComposer.DS_1)) {
                 containerComposer.registerStorageUnit(each);
             }
+            Awaitility.await().atMost(10L, TimeUnit.SECONDS).pollInterval(1, 
TimeUnit.SECONDS).until(() -> containerComposer.showStorageUnitsName()
+                    .containsAll(Arrays.asList(PipelineContainerComposer.DS_0, 
PipelineContainerComposer.DS_1)));
             createOrderTableRule(containerComposer);
             try (Connection connection = 
containerComposer.getProxyDataSource().getConnection()) {
                 initSchemaAndTable(containerComposer, connection, 3);
diff --git 
a/test/e2e/operation/pipeline/src/test/java/org/apache/shardingsphere/test/e2e/data/pipeline/cases/migration/AbstractMigrationE2EIT.java
 
b/test/e2e/operation/pipeline/src/test/java/org/apache/shardingsphere/test/e2e/data/pipeline/cases/migration/AbstractMigrationE2EIT.java
index b94d735be28..2750dc6850f 100644
--- 
a/test/e2e/operation/pipeline/src/test/java/org/apache/shardingsphere/test/e2e/data/pipeline/cases/migration/AbstractMigrationE2EIT.java
+++ 
b/test/e2e/operation/pipeline/src/test/java/org/apache/shardingsphere/test/e2e/data/pipeline/cases/migration/AbstractMigrationE2EIT.java
@@ -61,10 +61,10 @@ public abstract class AbstractMigrationE2EIT {
                 log.warn("Drop sharding_db failed, maybe it's not exist. error 
msg={}", ex.getMessage());
             }
         }
-        String addSourceResource = 
migrationDistSQL.getRegisterMigrationSourceStorageUnitTemplate().replace("${user}",
 containerComposer.getUsername())
+        String registerMigrationSource = 
migrationDistSQL.getRegisterMigrationSourceStorageUnitTemplate().replace("${user}",
 containerComposer.getUsername())
                 .replace("${password}", containerComposer.getPassword())
                 .replace("${ds0}", 
containerComposer.getActualJdbcUrlTemplate(PipelineContainerComposer.DS_0, 
true));
-        containerComposer.addResource(addSourceResource);
+        containerComposer.proxyExecuteWithLog(registerMigrationSource, 0);
     }
     
     protected void addMigrationTargetResource(final PipelineContainerComposer 
containerComposer) throws SQLException {
@@ -73,9 +73,8 @@ public abstract class AbstractMigrationE2EIT {
                 .replace("${ds2}", 
containerComposer.getActualJdbcUrlTemplate(PipelineContainerComposer.DS_2, 
true))
                 .replace("${ds3}", 
containerComposer.getActualJdbcUrlTemplate(PipelineContainerComposer.DS_3, 
true))
                 .replace("${ds4}", 
containerComposer.getActualJdbcUrlTemplate(PipelineContainerComposer.DS_4, 
true));
-        containerComposer.addResource(addTargetResource);
-        List<Map<String, Object>> resources = 
containerComposer.queryForListWithLog("SHOW STORAGE UNITS from sharding_db");
-        assertThat(resources.size(), is(3));
+        containerComposer.proxyExecuteWithLog(addTargetResource, 0);
+        Awaitility.await().atMost(5L, TimeUnit.SECONDS).pollInterval(500L, 
TimeUnit.MILLISECONDS).until(() -> 3 == 
containerComposer.showStorageUnitsName().size());
     }
     
     protected void createSourceSchema(final PipelineContainerComposer 
containerComposer, final String schemaName) throws SQLException {

Reply via email to