You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by hx...@apache.org on 2021/05/07 04:49:11 UTC

[iotdb] branch test_container updated: refactor the e2e test

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

hxd pushed a commit to branch test_container
in repository https://gitbox.apache.org/repos/asf/iotdb.git


The following commit(s) were added to refs/heads/test_container by this push:
     new 5d7faa8  refactor the e2e test
5d7faa8 is described below

commit 5d7faa8257f547b96d94215087b675920d8785cf
Author: xiangdong huang <sa...@gmail.com>
AuthorDate: Fri May 7 12:48:36 2021 +0800

    refactor the e2e test
---
 .../test/java/org/apache/iotdb/db/sql/Cases.java   | 53 ++++++++++++++--------
 .../java/org/apache/iotdb/db/sql/ClusterIT.java    | 25 ++++++----
 .../java/org/apache/iotdb/db/sql/SingleNodeIT.java |  6 ++-
 3 files changed, 54 insertions(+), 30 deletions(-)

diff --git a/testcontainer/src/test/java/org/apache/iotdb/db/sql/Cases.java b/testcontainer/src/test/java/org/apache/iotdb/db/sql/Cases.java
index bbb9e6a..57143e1 100644
--- a/testcontainer/src/test/java/org/apache/iotdb/db/sql/Cases.java
+++ b/testcontainer/src/test/java/org/apache/iotdb/db/sql/Cases.java
@@ -32,14 +32,21 @@ public abstract class Cases {
 
   protected Statement writeStatement;
   protected Connection writeConnection;
-  protected Statement readStatement;
-  protected Connection readConnection;
+  protected Statement[] readStatements;
+  protected Connection[] readConnections;
+
+  /** initialize the writeStatement,writeConnection, readStatements and the readConnections. */
+  public abstract void setUp() throws Exception;
 
   public void tearDown() throws Exception {
     writeStatement.close();
     writeConnection.close();
-    readStatement.close();
-    readConnection.close();
+    for (Statement statement : readStatements) {
+      statement.close();
+    }
+    for (Connection connection : readConnections) {
+      connection.close();
+    }
   }
 
   @Test
@@ -54,26 +61,32 @@ public abstract class Cases {
               timeSeries));
     }
     ResultSet resultSet = null;
-    resultSet = readStatement.executeQuery("show timeseries");
-    Set<String> result = new HashSet<>();
-    while (resultSet.next()) {
-      result.add(resultSet.getString(1));
-    }
-    Assert.assertEquals(3, result.size());
-    for (String timeseries : timeSeriesArray) {
-      Assert.assertTrue(result.contains(timeseries));
+    // try to read data on each node.
+    for (Statement readStatement : readStatements) {
+      resultSet = readStatement.executeQuery("show timeseries");
+      Set<String> result = new HashSet<>();
+      while (resultSet.next()) {
+        result.add(resultSet.getString(1));
+      }
+      Assert.assertEquals(3, result.size());
+      for (String timeseries : timeSeriesArray) {
+        Assert.assertTrue(result.contains(timeseries));
+      }
+      resultSet.close();
     }
-    resultSet.close();
 
     // test https://issues.apache.org/jira/browse/IOTDB-1331
     writeStatement.execute("insert into root.ln.wf01.wt01(time, temperature) values(10, 1.0)");
-    resultSet = readStatement.executeQuery("select avg(temperature) from root.ln.wf01.wt01");
-    if (resultSet.next()) {
-      Assert.assertEquals(1.0, resultSet.getDouble(1), 0.01);
-    } else {
-      Assert.fail("expect 1 result, but get an empty resultSet.");
+    // try to read data on each node.
+    for (Statement readStatement : readStatements) {
+      resultSet = readStatement.executeQuery("select avg(temperature) from root.ln.wf01.wt01");
+      if (resultSet.next()) {
+        Assert.assertEquals(1.0, resultSet.getDouble(1), 0.01);
+      } else {
+        Assert.fail("expect 1 result, but get an empty resultSet.");
+      }
+      Assert.assertFalse(resultSet.next());
+      resultSet.close();
     }
-    Assert.assertFalse(resultSet.next());
-    resultSet.close();
   }
 }
diff --git a/testcontainer/src/test/java/org/apache/iotdb/db/sql/ClusterIT.java b/testcontainer/src/test/java/org/apache/iotdb/db/sql/ClusterIT.java
index 0497ae6..c90f5c4 100644
--- a/testcontainer/src/test/java/org/apache/iotdb/db/sql/ClusterIT.java
+++ b/testcontainer/src/test/java/org/apache/iotdb/db/sql/ClusterIT.java
@@ -27,7 +27,9 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.testcontainers.containers.DockerComposeContainer;
 
+import java.sql.Connection;
 import java.sql.DriverManager;
+import java.sql.Statement;
 
 // do not add tests here.
 // add tests into Cases.java instead.
@@ -47,12 +49,12 @@ public abstract class ClusterIT extends Cases {
     return getContainer().getServiceHost("iotdb-server_1", 6667);
   }
 
-  protected int getReadRpcPort() {
-    return getContainer().getServicePort("iotdb-server_1", 6667);
+  protected int[] getReadRpcPorts() {
+    return new int[] {getContainer().getServicePort("iotdb-server_1", 6667)};
   }
 
-  protected String getReadRpcIp() {
-    return getContainer().getServiceHost("iotdb-server_1", 6667);
+  protected String[] getReadRpcIps() {
+    return new String[] {getContainer().getServiceHost("iotdb-server_1", 6667)};
   }
 
   protected void startCluster() {}
@@ -68,10 +70,17 @@ public abstract class ClusterIT extends Cases {
         DriverManager.getConnection(
             "jdbc:iotdb://" + getWriteRpcIp() + ":" + getWriteRpcPort(), "root", "root");
     writeStatement = writeConnection.createStatement();
-    readConnection =
-        DriverManager.getConnection(
-            "jdbc:iotdb://" + getReadRpcIp() + ":" + getReadRpcPort(), "root", "root");
-    readStatement = readConnection.createStatement();
+
+    int[] readPorts = getReadRpcPorts();
+    String[] readIps = getReadRpcIps();
+    readConnections = new Connection[readPorts.length];
+    readStatements = new Statement[readPorts.length];
+    for (int i = 0; i < readPorts.length; i++) {
+      readConnections[i] =
+          DriverManager.getConnection(
+              "jdbc:iotdb://" + readIps[i] + ":" + readPorts[i], "root", "root");
+      readStatements[i] = readConnections[i].createStatement();
+    }
   }
 
   @After
diff --git a/testcontainer/src/test/java/org/apache/iotdb/db/sql/SingleNodeIT.java b/testcontainer/src/test/java/org/apache/iotdb/db/sql/SingleNodeIT.java
index 3a042e9..1f5585d 100644
--- a/testcontainer/src/test/java/org/apache/iotdb/db/sql/SingleNodeIT.java
+++ b/testcontainer/src/test/java/org/apache/iotdb/db/sql/SingleNodeIT.java
@@ -63,10 +63,12 @@ public class SingleNodeIT extends Cases {
     rpcPort = dslContainer.getMappedPort(6667);
     syncPort = dslContainer.getMappedPort(5555);
     Class.forName(Config.JDBC_DRIVER_NAME);
+    readConnections = new Connection[1];
+    readStatements = new Statement[1];
     writeConnection =
-        readConnection =
+        readConnections[0] =
             DriverManager.getConnection("jdbc:iotdb://127.0.0.1:" + rpcPort, "root", "root");
-    writeStatement = readStatement = writeConnection.createStatement();
+    writeStatement = readStatements[0] = writeConnection.createStatement();
   }
 
   @After