You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ca...@apache.org on 2022/12/24 13:02:47 UTC

[iotdb] 01/02: fix procedure test

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

caogaofei pushed a commit to branch beyyes/procedure
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit 95491d09816b81670d2f0b618889e39d75847deb
Author: Beyyes <cg...@foxmail.com>
AuthorDate: Sat Dec 24 10:27:52 2022 +0800

    fix procedure test
---
 .../procedure/TestProcedureExecutor.java           |  8 ++++----
 .../confignode/procedure/TestSTMProcedure.java     | 12 ++++++++----
 .../procedure/entity/SimpleLockProcedure.java      | 12 ++++++++----
 .../procedure/entity/SimpleSTMProcedure.java       | 13 +++++++++----
 .../procedure/entity/StuckProcedure.java           |  2 +-
 .../procedure/entity/TestProcedureFactory.java     |  5 +++--
 .../procedure/env/TestConfigNodeEnv.java           | 22 ----------------------
 7 files changed, 33 insertions(+), 41 deletions(-)

diff --git a/confignode/src/test/java/org/apache/iotdb/confignode/procedure/TestProcedureExecutor.java b/confignode/src/test/java/org/apache/iotdb/confignode/procedure/TestProcedureExecutor.java
index 046e4f9ffa..0c209fbc3a 100644
--- a/confignode/src/test/java/org/apache/iotdb/confignode/procedure/TestProcedureExecutor.java
+++ b/confignode/src/test/java/org/apache/iotdb/confignode/procedure/TestProcedureExecutor.java
@@ -73,10 +73,10 @@ public class TestProcedureExecutor extends TestProcedureBase {
     Assert.assertEquals(3, threads1);
 
     ProcedureTestUtil.waitForProcedure(procExecutor, otherProcId);
-    Assert.assertEquals(true, procExecutor.isFinished(otherProcId));
-    Assert.assertEquals(true, procExecutor.isRunning());
-    Assert.assertEquals(false, procExecutor.isFinished(busyProcId1));
-    Assert.assertEquals(false, procExecutor.isFinished(busyProcId2));
+    Assert.assertTrue(procExecutor.isFinished(otherProcId));
+    Assert.assertTrue(procExecutor.isRunning());
+    Assert.assertFalse(procExecutor.isFinished(busyProcId1));
+    Assert.assertFalse(procExecutor.isFinished(busyProcId2));
 
     // terminate the busy procedures
     latch1.release();
diff --git a/confignode/src/test/java/org/apache/iotdb/confignode/procedure/TestSTMProcedure.java b/confignode/src/test/java/org/apache/iotdb/confignode/procedure/TestSTMProcedure.java
index 7b387d3d43..0eff94ff97 100644
--- a/confignode/src/test/java/org/apache/iotdb/confignode/procedure/TestSTMProcedure.java
+++ b/confignode/src/test/java/org/apache/iotdb/confignode/procedure/TestSTMProcedure.java
@@ -25,11 +25,15 @@ import org.apache.iotdb.confignode.procedure.util.ProcedureTestUtil;
 
 import org.junit.Assert;
 import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.util.concurrent.atomic.AtomicInteger;
 
 public class TestSTMProcedure extends TestProcedureBase {
 
+  public static final Logger LOGGER = LoggerFactory.getLogger(TestSTMProcedure.class);
+
   @Test
   public void testSubmitProcedure() {
     SimpleSTMProcedure stmProcedure = new SimpleSTMProcedure();
@@ -37,7 +41,7 @@ public class TestSTMProcedure extends TestProcedureBase {
     ProcedureTestUtil.waitForProcedure(this.procExecutor, procId);
     TestProcEnv env = this.getEnv();
     AtomicInteger acc = env.getAcc();
-    Assert.assertEquals(acc.get(), 10);
+    Assert.assertEquals(10, acc.get());
   }
 
   @Test
@@ -50,9 +54,9 @@ public class TestSTMProcedure extends TestProcedureBase {
     AtomicInteger acc = env.getAcc();
     int success = env.successCount.get();
     int rolledback = env.rolledBackCount.get();
-    System.out.println(acc.get());
-    System.out.println(success);
-    System.out.println(rolledback);
+    LOGGER.info("all count: " + acc.get());
+    LOGGER.info("success count: " + success);
+    LOGGER.info("rolledback count: " + rolledback);
     Assert.assertEquals(1 + success - rolledback, acc.get());
   }
 }
diff --git a/confignode/src/test/java/org/apache/iotdb/confignode/procedure/entity/SimpleLockProcedure.java b/confignode/src/test/java/org/apache/iotdb/confignode/procedure/entity/SimpleLockProcedure.java
index 564b980794..a88afdb4f4 100644
--- a/confignode/src/test/java/org/apache/iotdb/confignode/procedure/entity/SimpleLockProcedure.java
+++ b/confignode/src/test/java/org/apache/iotdb/confignode/procedure/entity/SimpleLockProcedure.java
@@ -25,11 +25,15 @@ import org.apache.iotdb.confignode.procedure.exception.ProcedureSuspendedExcepti
 import org.apache.iotdb.confignode.procedure.exception.ProcedureYieldException;
 import org.apache.iotdb.confignode.procedure.scheduler.SimpleProcedureScheduler;
 import org.apache.iotdb.confignode.procedure.state.ProcedureLockState;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.io.IOException;
 
 public class SimpleLockProcedure extends Procedure<TestProcEnv> {
 
+  private static final Logger LOGGER = LoggerFactory.getLogger(SimpleLockProcedure.class);
+
   private String procName;
 
   public SimpleLockProcedure() {}
@@ -46,7 +50,7 @@ public class SimpleLockProcedure extends Procedure<TestProcEnv> {
   }
 
   @Override
-  protected void rollback(TestProcEnv testProcEnv) throws IOException, InterruptedException {}
+  protected void rollback(TestProcEnv testProcEnv) {}
 
   @Override
   protected boolean abort(TestProcEnv testProcEnv) {
@@ -57,19 +61,19 @@ public class SimpleLockProcedure extends Procedure<TestProcEnv> {
   protected ProcedureLockState acquireLock(TestProcEnv testProcEnv) {
     if (testProcEnv.getEnvLock().tryLock()) {
       testProcEnv.lockAcquireSeq.append(procName);
-      System.out.println(procName + " acquired lock.");
+      LOGGER.info(procName + " acquired lock.");
 
       return ProcedureLockState.LOCK_ACQUIRED;
     }
     SimpleProcedureScheduler scheduler = (SimpleProcedureScheduler) testProcEnv.getScheduler();
     scheduler.addWaiting(this);
-    System.out.println(procName + " wait for lock.");
+    LOGGER.info(procName + " wait for lock.");
     return ProcedureLockState.LOCK_EVENT_WAIT;
   }
 
   @Override
   protected void releaseLock(TestProcEnv testProcEnv) {
-    System.out.println(procName + " release lock.");
+    LOGGER.info(procName + " release lock.");
     testProcEnv.getEnvLock().unlock();
     SimpleProcedureScheduler scheduler = (SimpleProcedureScheduler) testProcEnv.getScheduler();
     scheduler.releaseWaiting();
diff --git a/confignode/src/test/java/org/apache/iotdb/confignode/procedure/entity/SimpleSTMProcedure.java b/confignode/src/test/java/org/apache/iotdb/confignode/procedure/entity/SimpleSTMProcedure.java
index 25a39b04cf..99c7b4e5d1 100644
--- a/confignode/src/test/java/org/apache/iotdb/confignode/procedure/entity/SimpleSTMProcedure.java
+++ b/confignode/src/test/java/org/apache/iotdb/confignode/procedure/entity/SimpleSTMProcedure.java
@@ -19,11 +19,14 @@
 
 package org.apache.iotdb.confignode.procedure.entity;
 
+import org.apache.iotdb.confignode.procedure.TestSTMProcedure;
 import org.apache.iotdb.confignode.procedure.env.TestProcEnv;
 import org.apache.iotdb.confignode.procedure.exception.ProcedureException;
 import org.apache.iotdb.confignode.procedure.exception.ProcedureSuspendedException;
 import org.apache.iotdb.confignode.procedure.exception.ProcedureYieldException;
 import org.apache.iotdb.confignode.procedure.impl.statemachine.StateMachineProcedure;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.io.IOException;
 import java.util.concurrent.atomic.AtomicInteger;
@@ -31,6 +34,8 @@ import java.util.concurrent.atomic.AtomicInteger;
 public class SimpleSTMProcedure
     extends StateMachineProcedure<TestProcEnv, SimpleSTMProcedure.TestState> {
 
+  public static final Logger LOGGER = LoggerFactory.getLogger(SimpleSTMProcedure.class);
+
   public int throwAtIndex = -1;
 
   public enum TestState {
@@ -40,8 +45,7 @@ public class SimpleSTMProcedure
   }
 
   @Override
-  protected Flow executeFromState(TestProcEnv testProcEnv, TestState testState)
-      throws ProcedureSuspendedException, ProcedureYieldException, InterruptedException {
+  protected Flow executeFromState(TestProcEnv testProcEnv, TestState testState) {
     AtomicInteger acc = testProcEnv.getAcc();
     try {
       switch (testState) {
@@ -77,8 +81,9 @@ public class SimpleSTMProcedure
   }
 
   @Override
-  protected void rollbackState(TestProcEnv testProcEnv, TestState testState)
-      throws IOException, InterruptedException {}
+  protected void rollbackState(TestProcEnv testProcEnv, TestState testState) {
+    LOGGER.info("Execute rollback in SimpleSTMProcedure, testState: {}", testState);
+  }
 
   @Override
   protected TestState getState(int stateId) {
diff --git a/confignode/src/test/java/org/apache/iotdb/confignode/procedure/entity/StuckProcedure.java b/confignode/src/test/java/org/apache/iotdb/confignode/procedure/entity/StuckProcedure.java
index 1db02597c4..1f1204de44 100644
--- a/confignode/src/test/java/org/apache/iotdb/confignode/procedure/entity/StuckProcedure.java
+++ b/confignode/src/test/java/org/apache/iotdb/confignode/procedure/entity/StuckProcedure.java
@@ -52,7 +52,7 @@ public class StuckProcedure extends Procedure<TestProcEnv> {
   }
 
   @Override
-  protected void rollback(TestProcEnv testProcEnv) throws IOException, InterruptedException {}
+  protected void rollback(TestProcEnv testProcEnv) {}
 
   @Override
   protected boolean abort(TestProcEnv testProcEnv) {
diff --git a/confignode/src/test/java/org/apache/iotdb/confignode/procedure/entity/TestProcedureFactory.java b/confignode/src/test/java/org/apache/iotdb/confignode/procedure/entity/TestProcedureFactory.java
index 421fe7cc46..c4c73e99db 100644
--- a/confignode/src/test/java/org/apache/iotdb/confignode/procedure/entity/TestProcedureFactory.java
+++ b/confignode/src/test/java/org/apache/iotdb/confignode/procedure/entity/TestProcedureFactory.java
@@ -20,6 +20,7 @@
 package org.apache.iotdb.confignode.procedure.entity;
 
 import org.apache.iotdb.confignode.procedure.Procedure;
+import org.apache.iotdb.confignode.procedure.env.TestProcEnv;
 import org.apache.iotdb.confignode.procedure.store.IProcedureFactory;
 
 import java.io.IOException;
@@ -28,13 +29,13 @@ import java.nio.ByteBuffer;
 public class TestProcedureFactory implements IProcedureFactory {
 
   @Override
-  public Procedure create(ByteBuffer buffer) throws IOException {
+  public Procedure<TestProcEnv> create(ByteBuffer buffer) throws IOException {
     int typeNum = buffer.getInt();
     if (typeNum >= TestProcedureType.values().length) {
       throw new IOException("unrecognized log type " + typeNum);
     }
     TestProcedureType type = TestProcedureType.values()[typeNum];
-    Procedure procedure;
+    Procedure<TestProcEnv> procedure;
     switch (type) {
       case INC_PROCEDURE:
         procedure = new IncProcedure();
diff --git a/confignode/src/test/java/org/apache/iotdb/confignode/procedure/env/TestConfigNodeEnv.java b/confignode/src/test/java/org/apache/iotdb/confignode/procedure/env/TestConfigNodeEnv.java
deleted file mode 100644
index a27b2244ea..0000000000
--- a/confignode/src/test/java/org/apache/iotdb/confignode/procedure/env/TestConfigNodeEnv.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.iotdb.confignode.procedure.env;
-
-public class TestConfigNodeEnv {}