[jira] [Created] (IOTDB-3923) Add Sorted Cluster Test ResultSet for the Function of last
Irvine created IOTDB-3923: - Summary: Add Sorted Cluster Test ResultSet for the Function of last Key: IOTDB-3923 URL: https://issues.apache.org/jira/browse/IOTDB-3923 Project: Apache IoTDB Issue Type: New Feature Reporter: Irvine Assignee: Irvine -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Created] (IOTDB-3647) Move the IoTDBTimeZoneIT to integration-test
Irvine created IOTDB-3647: - Summary: Move the IoTDBTimeZoneIT to integration-test Key: IOTDB-3647 URL: https://issues.apache.org/jira/browse/IOTDB-3647 Project: Apache IoTDB Issue Type: Improvement Reporter: Irvine Assignee: Irvine -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Created] (IOTDB-3604) Refactor the time zone setter by using the setClientInfo method of JDBC
Irvine created IOTDB-3604: - Summary: Refactor the time zone setter by using the setClientInfo method of JDBC Key: IOTDB-3604 URL: https://issues.apache.org/jira/browse/IOTDB-3604 Project: Apache IoTDB Issue Type: Improvement Reporter: Irvine Assignee: Irvine -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Assigned] (IOTDB-3508) Enhance some features of the IT framework
[ https://issues.apache.org/jira/browse/IOTDB-3508?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Irvine reassigned IOTDB-3508: - Assignee: Irvine > Enhance some features of the IT framework > - > > Key: IOTDB-3508 > URL: https://issues.apache.org/jira/browse/IOTDB-3508 > Project: Apache IoTDB > Issue Type: Improvement >Reporter: Irvine >Assignee: Irvine >Priority: Major > -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Created] (IOTDB-3508) Enhance some features of the IT framework
Irvine created IOTDB-3508: - Summary: Enhance some features of the IT framework Key: IOTDB-3508 URL: https://issues.apache.org/jira/browse/IOTDB-3508 Project: Apache IoTDB Issue Type: Improvement Reporter: Irvine -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Created] (IOTDB-3426) The tasks set about integration test framework refactor for MPP
Irvine created IOTDB-3426: - Summary: The tasks set about integration test framework refactor for MPP Key: IOTDB-3426 URL: https://issues.apache.org/jira/browse/IOTDB-3426 Project: Apache IoTDB Issue Type: Task Reporter: Irvine Assignee: Irvine -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Created] (IOTDB-3406) Correct the exclude part of xml format plugin
Irvine created IOTDB-3406: - Summary: Correct the exclude part of xml format plugin Key: IOTDB-3406 URL: https://issues.apache.org/jira/browse/IOTDB-3406 Project: Apache IoTDB Issue Type: Bug Reporter: Irvine Assignee: Irvine -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Assigned] (IOTDB-3178) Refactor integration test for the new cluster
[ https://issues.apache.org/jira/browse/IOTDB-3178?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Irvine reassigned IOTDB-3178: - Assignee: Irvine > Refactor integration test for the new cluster > - > > Key: IOTDB-3178 > URL: https://issues.apache.org/jira/browse/IOTDB-3178 > Project: Apache IoTDB > Issue Type: Improvement >Reporter: Irvine >Assignee: Irvine >Priority: Major > -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Created] (IOTDB-3178) Refactor integration test for the new cluster
Irvine created IOTDB-3178: - Summary: Refactor integration test for the new cluster Key: IOTDB-3178 URL: https://issues.apache.org/jira/browse/IOTDB-3178 Project: Apache IoTDB Issue Type: Improvement Reporter: Irvine -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Created] (IOTDB-2172) Refactor for IoTDBSimpleQueryIT
Irvine created IOTDB-2172: - Summary: Refactor for IoTDBSimpleQueryIT Key: IOTDB-2172 URL: https://issues.apache.org/jira/browse/IOTDB-2172 Project: Apache IoTDB Issue Type: Improvement Reporter: Irvine Assignee: Irvine Since the configuration change needs to be done before the cluster is started, for better cluster testing, a separate test case file is split. -- This message was sent by Atlassian Jira (v8.20.1#820001)
[jira] [Commented] (IOTDB-1559) Refactor the IT framework
[ https://issues.apache.org/jira/browse/IOTDB-1559?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=1745#comment-1745 ] Irvine commented on IOTDB-1559: --- As catching up with the master branch is continuous and massive, all refactor work can be split into two temporary phases. Phase 1, * This PR should be reviewed. * All tests should be annotated with the LocalStandaloneTest category. * All these LocalStandaloneTest should be passed. * No-brain tutorials should be done. The milestone of phase 1 is the PR of [GitHub Pull Request #4371|https://github.com/apache/iotdb/pull/4371] is merged. Phase 2, * All tests should be appropriately annotated with the ClusterTest category. * All these ClusterTest should be passed. * New IT should be followed by No-brain tutorials. The milestone of phase 2 is all ITs are passed. The above is already mentioned in the #integration-test channel of slack in Chinese. I will sync the progress in slack. > Refactor the IT framework > - > > Key: IOTDB-1559 > URL: https://issues.apache.org/jira/browse/IOTDB-1559 > Project: Apache IoTDB > Issue Type: Improvement >Reporter: Irvine >Assignee: Irvine >Priority: Major > Labels: pull-request-available > Fix For: master branch > > > - Background > Today iotdb has many IT cases, some are in the server module, some are in the > cluster module, and some cluster test cases are in the testcontainer module. > The test case structure causes developers to sometimes write test cases > repeatedly to ensure running correctly of the single-node mode and the > cluster mode. > - Suggestion > At present, the test cases of single-node mode and cluster mode are > separated, but they have intersections, and they can be classified for reuse > by using JUnit's category annotation. > In the testcontainer module, test cases are based on the test environment, > but the test environment is relatively fixed, we can use maven to configure > multiple environments to test the classified test cases. > - User Guide > [https://github.com/apache/iotdb/blob/master/integration/README.md] > -- This message was sent by Atlassian Jira (v8.20.1#820001)
[jira] [Commented] (IOTDB-1559) Thoughts on reusing the IT cases
[ https://issues.apache.org/jira/browse/IOTDB-1559?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17397930#comment-17397930 ] Irvine commented on IOTDB-1559: --- It's my fault that didn't make it clear. > What is the difference between different execution configurations in the pom > file? In this example, the difference is in section systemPropertyVariables. We set FiveNodeCluster1 in execution "integration-test-FiveNodeCluster1IT", and we set FiveNodeCluster2 in execution "integration-test-FiveNodeCluster2IT". By passed to Java code, there will be different test environments for each execution. We can also set other sections for every execution, each execution configuration is independent, they will run one by one in the maven's integration phase. For example, we can run test cases of SingleNodeTest's category in OneNodeEnv and then run test cases of ClusterTest's category in ThreeNodeClusterEnv and then run test cases of ClusterTest's category in FiveNodeClusterEnv. > Though it is just an example, but what can we benefit from two executions > "integration-test-FiveNodeCluster1IT" and > "integration-test-FiveNodeCluster2IT" ? I think the benefit is decoupling and reusing. Now in the testcontainer module, every environment IT all inherit from the base cases class, but java does not support multiple inheritances, so the base cases class will be only one, and the IT case from the server module can't be reused in the testcontainer environment. With maven execution and category annotation, we can decouple the environment from IT cases. We can write IT cases in several modules, and we can write environment classes based on the TestEnv interface. Finally, IT cases and environment classes are connected by maven. > Thoughts on reusing the IT cases > > > Key: IOTDB-1559 > URL: https://issues.apache.org/jira/browse/IOTDB-1559 > Project: Apache IoTDB > Issue Type: Improvement >Reporter: Irvine >Assignee: Irvine >Priority: Major > > - Background > Today iotdb has many IT cases, some are in the server module, some are in the > cluster module, and some cluster test cases are in the testcontainer module. > The test case structure causes developers to sometimes write test cases > repeatedly to ensure running correctly of the single-node mode and the > cluster mode. > - Suggestion > At present, the test cases of single-node mode and cluster mode are > separated, but they have intersections, and they can be classified for reuse > by using JUnit's category annotation. > In the testcontainer module, test cases are based on the test environment, > but the test environment is relatively fixed, we can use maven to configure > multiple environments to test the classified test cases. > - Example > * The pom.xml of testcontainer module > {code:xml} > > org.apache.maven.plugins > maven-failsafe-plugin > > > integration-test-FiveNodeCluster1IT > > integration-test > > > > ${basedir}/src/test/java > > ${basedir}/../server/src/test/java/org/apache/iotdb/db/integration > ${test.includedGroups} > ${test.excludedGroups} > false > 1 > 1 > false > > FiveNodeCluster1 > > > target/failsafe-reports/failsafe-summary-FiveNodeCluster1IT.xml > > > > integration-test-FiveNodeCluster2IT > > integration-test > > > > ${basedir}/src/test/java > > ${basedir}/../server/src/test/java/org/apache/iotdb/db/integration > ${test.includedGroups} > ${test.excludedGroups} > false > 1 > 1 > false > > FiveNodeCluster2 > > > target/failsafe-reports/failsafe-summary-FiveNodeCluster2IT.xml > > > > verify > > verify > > > > > target/failsafe-reports/failsafe-summary-FiveNodeCluster1IT.xml > > target/failsafe-reports/failsafe-summary-FiveNodeCluster2IT.xml > > > > > > {code} > We configure multiple environments by section > {color:#0747a6}{color}, it will like: > {color:#0747a6}{color} > {color:#0747a6} ...the first env...{color} > {color:#0747a6} ...the second env...{color} > {color:#0747a6} {color} > It can run multiple environments in one "mvn
[jira] [Created] (IOTDB-1559) Thoughts on reusing the IT cases
Irvine created IOTDB-1559: - Summary: Thoughts on reusing the IT cases Key: IOTDB-1559 URL: https://issues.apache.org/jira/browse/IOTDB-1559 Project: Apache IoTDB Issue Type: Improvement Reporter: Irvine Assignee: Irvine h1. Thoughts on reusing the IT cases - Background Today iotdb has many IT cases, some are in the server module, some are in the cluster module, and some cluster test cases are in the testcontainer module. The test case structure causes developers to sometimes write test cases repeatedly to ensure running correctly of the single-node mode and the cluster mode. - Suggestion At present, the test cases of single-node mode and cluster mode are separated, but they have intersections, and they can be classified for reuse by using JUnit's category annotation. In the testcontainer module, test cases are based on the test environment, but the test environment is relatively fixed, we can use maven to configure multiple environments to test the classified test cases. - Example * The pom.xml of testcontainer module {code:xml} org.apache.maven.plugins maven-failsafe-plugin integration-test-FiveNodeCluster1IT integration-test ${basedir}/src/test/java ${basedir}/../server/src/test/java/org/apache/iotdb/db/integration ${test.includedGroups} ${test.excludedGroups} false 1 1 false FiveNodeCluster1 target/failsafe-reports/failsafe-summary-FiveNodeCluster1IT.xml integration-test-FiveNodeCluster2IT integration-test ${basedir}/src/test/java ${basedir}/../server/src/test/java/org/apache/iotdb/db/integration ${test.includedGroups} ${test.excludedGroups} false 1 1 false FiveNodeCluster2 target/failsafe-reports/failsafe-summary-FiveNodeCluster2IT.xml verify verify target/failsafe-reports/failsafe-summary-FiveNodeCluster1IT.xml target/failsafe-reports/failsafe-summary-FiveNodeCluster2IT.xml {code} We configure multiple environments by section {color:#0747a6}{color}, it will like: {color:#0747a6}{color} {color:#0747a6} ...the first env...{color} {color:#0747a6} ...the second env...{color} {color:#0747a6} {color} It can run multiple environments in one "mvn verify" cmd. In each execution, we configure {color:#0747a6}{color} for the dir of IT case which can from different modules, {color:#0747a6}{color} for the category of IT case that can invoke the IT case with JUnit's category annotation, and {color:#0747a6}{color} to pass parameters, which can get by java code, to choose the init environment class. * IT case example {code:java} public class TestCategoryIT { private static String[] sqls = new String[] { "CREATE TIMESERIES root.sg1.d1.s1 with datatype=INT32,encoding=RLE", "CREATE TIMESERIES root.sg1.d1.s1.s1 with datatype=INT32,encoding=RLE", "CREATE TIMESERIES root.sg1.d1.s1.s2 with datatype=INT32,encoding=RLE" }; @BeforeClass public static void setUp() throws Exception { ExampleEnvUtil.init(); insertData(); } @AfterClass public static void tearDown() throws Exception { ExampleEnvUtil.clean(); } private static void insertData() { try (Connection connection = ExampleEnvUtil.getConnection(); Statement statement = connection.createStatement()) { for (String sql : sqls) { statement.execute(sql); } } catch (Exception e) { e.printStackTrace(); } } @Test @Category({SingleNodeTest.class, ClusterTest.class}) public void test1() throws ClassNotFoundException { try (Connection connection = ExampleEnvUtil.getConnection(); Statement statement = connection.createStatement()) { ... } catch (Exception e) { e.printStackTrace(); } ... } @Test @Category(SingleNodeTest.class) public void test2() throws ClassNotFoundException { ... } @Test @Category(ClusterTest.class) public void test3() throws ClassNotFoundException { ... } } {code} All we change is: to add Category annotation for test or class, to change the connection of every case to assign by ExampleEnvUtil.getConnection(), which depend on parameters passed b
[jira] [Commented] (IOTDB-1351) Add TestBase for teat container, i.e. Reduce the duplicate code. such as testSimplePutAndGet
[ https://issues.apache.org/jira/browse/IOTDB-1351?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17337959#comment-17337959 ] Irvine commented on IOTDB-1351: --- Great idea! This seems necessary. > Add TestBase for teat container, i.e. Reduce the duplicate code. such as > testSimplePutAndGet > > > Key: IOTDB-1351 > URL: https://issues.apache.org/jira/browse/IOTDB-1351 > Project: Apache IoTDB > Issue Type: Sub-task > Components: Test >Reporter: sunjincheng >Assignee: sunjincheng >Priority: Major > > Add TestBase for teat container, i.e. Reduce the duplicate code. such as > `testSimplePutAndGet` method both in ClusterIT and SingleNodeIT. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Commented] (IOTDB-1348) Last plan not work in cluster mode
[ https://issues.apache.org/jira/browse/IOTDB-1348?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17337145#comment-17337145 ] Irvine commented on IOTDB-1348: --- I'd like to fix it. > Last plan not work in cluster mode > --- > > Key: IOTDB-1348 > URL: https://issues.apache.org/jira/browse/IOTDB-1348 > Project: Apache IoTDB > Issue Type: Sub-task > Components: Cluster >Reporter: sunjincheng >Priority: Major > Fix For: 0.12.1 > > Attachments: image-2021-04-30-14-59-45-348.png > > > !image-2021-04-30-14-59-45-348.png! -- This message was sent by Atlassian Jira (v8.3.4#803005)