This is an automated email from the ASF dual-hosted git repository.
panjuan 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 f36e35e Wait env prepared with JDBC adapter if using docker (#9049)
f36e35e is described below
commit f36e35e463da035ce4e830fa3e22c548a5a472e1
Author: Liang Zhang <[email protected]>
AuthorDate: Fri Jan 15 19:39:23 2021 +0800
Wait env prepared with JDBC adapter if using docker (#9049)
* For test
* For test
* For test
* For test
* Wait env prepared with JDBC adapter if using docker
* Revert test
* Remove useless -D param
* Reduce proxy ready detection times
---
.github/workflows/it.yml | 16 +++++-----
.../test-engine/integration-test-engine.en.md | 2 +-
.../env/IntegrationTestEnvironment.java | 34 +++++++++++-----------
3 files changed, 26 insertions(+), 26 deletions(-)
diff --git a/.github/workflows/it.yml b/.github/workflows/it.yml
index e38606c..aa0d5ba 100644
--- a/.github/workflows/it.yml
+++ b/.github/workflows/it.yml
@@ -43,7 +43,7 @@ jobs:
- name: Build Project
run: ./mvnw -B clean install -Dmaven.javadoc.skip=true -Drat.skip=true
-Djacoco.skip=true -DskipITs
- name: Run Integration Test
- run: ./mvnw -B clean install -f
shardingsphere-test/shardingsphere-integration-test/pom.xml -Pit.env.docker
-Dit.adapters=proxy -Dit.scenarios=db -Dit.databases=MySQL
-Dit.mysql.host=127.0.0.1 -Dit.mysql.port=33060
+ run: ./mvnw -B clean install -f
shardingsphere-test/shardingsphere-integration-test/pom.xml -Pit.env.docker
-Dit.adapters=proxy -Dit.scenarios=db -Dit.databases=MySQL
mysql-proxy-tbl:
name: MySQL-Proxy with TBL
@@ -64,7 +64,7 @@ jobs:
- name: Build Project
run: ./mvnw -B clean install -Dmaven.javadoc.skip=true -Drat.skip=true
-Djacoco.skip=true -DskipITs
- name: Run Integration Test
- run: ./mvnw -B clean install -f
shardingsphere-test/shardingsphere-integration-test/pom.xml -Pit.env.docker
-Dit.adapters=proxy -Dit.scenarios=tbl -Dit.databases=MySQL
-Dit.mysql.host=127.0.0.1 -Dit.mysql.port=33160
+ run: ./mvnw -B clean install -f
shardingsphere-test/shardingsphere-integration-test/pom.xml -Pit.env.docker
-Dit.adapters=proxy -Dit.scenarios=tbl -Dit.databases=MySQL
mysql-proxy-repilca-query:
name: MySQL-Proxy with REPLICA-QUERY
@@ -85,7 +85,7 @@ jobs:
- name: Build Project
run: ./mvnw -B clean install -Dmaven.javadoc.skip=true -Drat.skip=true
-Djacoco.skip=true -DskipITs
- name: Run Integration Test
- run: ./mvnw -B clean install -f
shardingsphere-test/shardingsphere-integration-test/pom.xml -Pit.env.docker
-Dit.adapters=proxy -Dit.scenarios=replica_query -Dit.databases=MySQL
-Dit.mysql.host=127.0.0.1 -Dit.mysql.port=33260
+ run: ./mvnw -B clean install -f
shardingsphere-test/shardingsphere-integration-test/pom.xml -Pit.env.docker
-Dit.adapters=proxy -Dit.scenarios=replica_query -Dit.databases=MySQL
mysql-proxy-dbtbl-with-proxy-repilca-query:
name: MySQL-Proxy with DBTBL-WITH-REPLICA-QUERY
@@ -106,7 +106,7 @@ jobs:
- name: Build Project
run: ./mvnw -B clean install -Dmaven.javadoc.skip=true -Drat.skip=true
-Djacoco.skip=true -DskipITs
- name: Run Integration Test
- run: ./mvnw -B clean install -f
shardingsphere-test/shardingsphere-integration-test/pom.xml -Pit.env.docker
-Dit.adapters=proxy -Dit.scenarios=dbtbl_with_replica_query
-Dit.databases=MySQL -Dit.mysql.host=127.0.0.1 -Dit.mysql.port=33360
+ run: ./mvnw -B clean install -f
shardingsphere-test/shardingsphere-integration-test/pom.xml -Pit.env.docker
-Dit.adapters=proxy -Dit.scenarios=dbtbl_with_replica_query -Dit.databases=MySQL
mysql-jdbc-db:
name: MySQL-JDBC with DB
@@ -127,7 +127,7 @@ jobs:
- name: Build Project
run: ./mvnw -B clean install -Dmaven.javadoc.skip=true -Drat.skip=true
-Djacoco.skip=true -DskipITs
- name: Run Integration Test
- run: ./mvnw -B clean install -f
shardingsphere-test/shardingsphere-integration-test/pom.xml -Pit.env.docker
-Dit.adapters=jdbc -Dit.scenarios=db -Dit.databases=MySQL
-Dit.mysql.host=127.0.0.1 -Dit.mysql.port=33060
+ run: ./mvnw -B clean install -f
shardingsphere-test/shardingsphere-integration-test/pom.xml -Pit.env.docker
-Dit.adapters=jdbc -Dit.scenarios=db -Dit.databases=MySQL
mysql-jdbc-tbl:
name: MySQL-JDBC with TBL
@@ -148,7 +148,7 @@ jobs:
- name: Build Project
run: ./mvnw -B clean install -Dmaven.javadoc.skip=true -Drat.skip=true
-Djacoco.skip=true -DskipITs
- name: Run Integration Test
- run: ./mvnw -B clean install -f
shardingsphere-test/shardingsphere-integration-test/pom.xml -Pit.env.docker
-Dit.adapters=jdbc -Dit.scenarios=tbl -Dit.databases=MySQL
-Dit.mysql.host=127.0.0.1 -Dit.mysql.port=33160
+ run: ./mvnw -B clean install -f
shardingsphere-test/shardingsphere-integration-test/pom.xml -Pit.env.docker
-Dit.adapters=jdbc -Dit.scenarios=tbl -Dit.databases=MySQL
mysql-jdbc-repilca-query:
name: MySQL-JDBC with REPLICA-QUERY
@@ -169,7 +169,7 @@ jobs:
- name: Build Project
run: ./mvnw -B clean install -Dmaven.javadoc.skip=true -Drat.skip=true
-Djacoco.skip=true -DskipITs
- name: Run Integration Test
- run: ./mvnw -B clean install -f
shardingsphere-test/shardingsphere-integration-test/pom.xml -Pit.env.docker
-Dit.adapters=jdbc -Dit.scenarios=replica_query -Dit.databases=MySQL
-Dit.mysql.host=127.0.0.1 -Dit.mysql.port=33260
+ run: ./mvnw -B clean install -f
shardingsphere-test/shardingsphere-integration-test/pom.xml -Pit.env.docker
-Dit.adapters=jdbc -Dit.scenarios=replica_query -Dit.databases=MySQL
mysql-jdbc-dbtbl-with-proxy-repilca-query:
name: MySQL-JDBC with DBTBL-WITH-REPLICA-QUERY
@@ -190,4 +190,4 @@ jobs:
- name: Build Project
run: ./mvnw -B clean install -Dmaven.javadoc.skip=true -Drat.skip=true
-Djacoco.skip=true -DskipITs
- name: Run Integration Test
- run: ./mvnw -B clean install -f
shardingsphere-test/shardingsphere-integration-test/pom.xml -Pit.env.docker
-Dit.adapters=jdbc -Dit.scenarios=dbtbl_with_replica_query -Dit.databases=MySQL
-Dit.mysql.host=127.0.0.1 -Dit.mysql.port=33360
+ run: ./mvnw -B clean install -f
shardingsphere-test/shardingsphere-integration-test/pom.xml -Pit.env.docker
-Dit.adapters=jdbc -Dit.scenarios=dbtbl_with_replica_query -Dit.databases=MySQL
diff --git
a/docs/document/content/features/test-engine/integration-test-engine.en.md
b/docs/document/content/features/test-engine/integration-test-engine.en.md
index 851d8b1..b0edc56 100644
--- a/docs/document/content/features/test-engine/integration-test-engine.en.md
+++ b/docs/document/content/features/test-engine/integration-test-engine.en.md
@@ -32,7 +32,7 @@ Firstly, setup configuration file
`/shardingsphere-integration-test-suite/src/te
it.run.additional.cases=false
# test scenarios, could define multiple rules
-it.scenarios=db,tbl,dbtbl_with_replica_query_,replica_query_
+it.scenarios=db,tbl,dbtbl_with_replica_query,replica_query
# database type, could define multiple
databases(H2,MySQL,Oracle,SQLServer,PostgreSQL)
it.databases=MySQL,PostgreSQL
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 7e7c981..beabbae 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
@@ -67,6 +67,11 @@ public final class IntegrationTestEnvironment {
Map<String, DatabaseScenarioProperties> databaseProps =
getDatabaseScenarioProperties();
databaseEnvironments =
createDatabaseEnvironments(getDatabaseTypes(engineEnvProps), databaseProps);
proxyEnvironments = createProxyEnvironments(databaseProps);
+ if (isEnvironmentPrepared) {
+ for (String each : scenarios) {
+ waitForEnvironmentReady(each);
+ }
+ }
}
private Collection<String> getScenarios(final Properties engineEnvProps) {
@@ -122,21 +127,7 @@ public final class IntegrationTestEnvironment {
return new DatabaseEnvironment(new MySQLDatabaseType(),
databaseProps.getProxyHost(), databaseProps.getProxyPort(),
databaseProps.getProxyUsername(), databaseProps.getProxyPassword());
}
- /**
- * Get instance.
- *
- * @return singleton instance
- */
- public static IntegrationTestEnvironment getInstance() {
- if (INSTANCE.adapters.contains("proxy")) {
- for (String each : INSTANCE.scenarios) {
- waitForProxyReady(each);
- }
- }
- return INSTANCE;
- }
-
- private static void waitForProxyReady(final String scenario) {
+ private void waitForEnvironmentReady(final String scenario) {
int retryCount = 0;
while (!isProxyReady(scenario) && retryCount < 30) {
try {
@@ -148,8 +139,8 @@ public final class IntegrationTestEnvironment {
}
@SuppressWarnings("CallToDriverManagerGetConnection")
- private static boolean isProxyReady(final String scenario) {
- DatabaseEnvironment dbEnv = INSTANCE.proxyEnvironments.get(scenario);
+ private boolean isProxyReady(final String scenario) {
+ DatabaseEnvironment dbEnv = proxyEnvironments.get(scenario);
try (Connection connection =
DriverManager.getConnection(dbEnv.getURL(scenario), dbEnv.getUsername(),
dbEnv.getPassword());
Statement statement = connection.createStatement()) {
statement.execute("SELECT 1");
@@ -158,4 +149,13 @@ public final class IntegrationTestEnvironment {
}
return true;
}
+
+ /**
+ * Get instance.
+ *
+ * @return singleton instance
+ */
+ public static IntegrationTestEnvironment getInstance() {
+ return INSTANCE;
+ }
}