You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rocketmq.apache.org by yu...@apache.org on 2017/08/29 12:30:49 UTC

[21/28] incubator-rocketmq git commit: ROCKETMQ-264 Fix ut's time-consuming problems closes apache/incubator-rocketmq#145

ROCKETMQ-264 Fix ut's time-consuming problems closes apache/incubator-rocketmq#145


Project: http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/commit/76464ba6
Tree: http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/tree/76464ba6
Diff: http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/diff/76464ba6

Branch: refs/heads/master
Commit: 76464ba657eca3ceb1755777ea4601fa630593f3
Parents: 629c3e9
Author: lindzh <li...@163.com>
Authored: Mon Aug 28 18:00:18 2017 +0800
Committer: vongosling <vo...@apache.org>
Committed: Mon Aug 28 18:00:18 2017 +0800

----------------------------------------------------------------------
 .../rocketmq/broker/BrokerControllerTest.java   |  18 +-
 .../filter/MessageStoreWithFilterTest.java      | 256 +++++++++----------
 broker/src/test/resources/logback-test.xml      |   1 -
 .../rocketmq/client/log/ClientLogger.java       |  28 +-
 .../AllocateMessageQueueConsitentHashTest.java  |   6 +-
 .../rocketmq/client/log/ClientLogTest.java      |  72 ------
 .../rocketmq/client/log/ClientLoggerTest.java   |  51 ++++
 .../apache/rocketmq/filter/ExpressionTest.java  |  68 +++--
 .../rocketmq/namesrv/NamesrvControllerTest.java |  46 ----
 .../namesrv/kvconfig/KVConfigManagerTest.java   |   1 -
 .../rocketmq/store/DefaultMessageStoreTest.java |  77 +++---
 11 files changed, 272 insertions(+), 352 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/76464ba6/broker/src/test/java/org/apache/rocketmq/broker/BrokerControllerTest.java
----------------------------------------------------------------------
diff --git a/broker/src/test/java/org/apache/rocketmq/broker/BrokerControllerTest.java b/broker/src/test/java/org/apache/rocketmq/broker/BrokerControllerTest.java
index 90ef210..797e0d8 100644
--- a/broker/src/test/java/org/apache/rocketmq/broker/BrokerControllerTest.java
+++ b/broker/src/test/java/org/apache/rocketmq/broker/BrokerControllerTest.java
@@ -37,16 +37,14 @@ public class BrokerControllerTest {
      */
     @Test
     public void testBrokerRestart() throws Exception {
-        for (int i = 0; i < 2; i++) {
-            BrokerController brokerController = new BrokerController(
-                new BrokerConfig(),
-                new NettyServerConfig(),
-                new NettyClientConfig(),
-                new MessageStoreConfig());
-            assertThat(brokerController.initialize());
-            brokerController.start();
-            brokerController.shutdown();
-        }
+        BrokerController brokerController = new BrokerController(
+            new BrokerConfig(),
+            new NettyServerConfig(),
+            new NettyClientConfig(),
+            new MessageStoreConfig());
+        assertThat(brokerController.initialize());
+        brokerController.start();
+        brokerController.shutdown();
     }
 
     @After

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/76464ba6/broker/src/test/java/org/apache/rocketmq/broker/filter/MessageStoreWithFilterTest.java
----------------------------------------------------------------------
diff --git a/broker/src/test/java/org/apache/rocketmq/broker/filter/MessageStoreWithFilterTest.java b/broker/src/test/java/org/apache/rocketmq/broker/filter/MessageStoreWithFilterTest.java
index d3c973a..7978942 100644
--- a/broker/src/test/java/org/apache/rocketmq/broker/filter/MessageStoreWithFilterTest.java
+++ b/broker/src/test/java/org/apache/rocketmq/broker/filter/MessageStoreWithFilterTest.java
@@ -33,6 +33,8 @@ import org.apache.rocketmq.store.MessageExtBrokerInner;
 import org.apache.rocketmq.store.PutMessageResult;
 import org.apache.rocketmq.store.config.MessageStoreConfig;
 import org.apache.rocketmq.store.stats.BrokerStatsManager;
+import org.junit.After;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.io.File;
@@ -63,6 +65,14 @@ public class MessageStoreWithFilterTest {
 
     private static SocketAddress StoreHost;
 
+    private DefaultMessageStore master;
+
+    private ConsumerFilterManager filterManager;
+
+    private int topicCount = 3;
+
+    private int msgPerTopic = 30;
+
     static {
         try {
             StoreHost = new InetSocketAddress(InetAddress.getLocalHost(), 8123);
@@ -76,6 +86,24 @@ public class MessageStoreWithFilterTest {
         }
     }
 
+    @Before
+    public void init() {
+        filterManager = ConsumerFilterManagerTest.gen(topicCount, msgPerTopic);
+        try {
+            master = gen(filterManager);
+        } catch (Exception e) {
+            e.printStackTrace();
+            assertThat(true).isFalse();
+        }
+    }
+
+    @After
+    public void destroy() {
+        master.shutdown();
+        master.destroy();
+        UtilAll.deleteFile(new File(storePath));
+    }
+
     public MessageExtBrokerInner buildMessage() {
         MessageExtBrokerInner msg = new MessageExtBrokerInner();
         msg.setTopic(topic);
@@ -202,177 +230,143 @@ public class MessageStoreWithFilterTest {
 
     @Test
     public void testGetMessage_withFilterBitMapAndConsumerChanged() {
-        int topicCount = 10, msgPerTopic = 10;
-        ConsumerFilterManager filterManager = ConsumerFilterManagerTest.gen(topicCount, msgPerTopic);
-
-        DefaultMessageStore master = null;
+        List<MessageExtBrokerInner> msgs = null;
         try {
-            master = gen(filterManager);
+            msgs = putMsg(master, topicCount, msgPerTopic);
         } catch (Exception e) {
             e.printStackTrace();
             assertThat(true).isFalse();
         }
 
+        // sleep to wait for consume queue has been constructed.
         try {
-            List<MessageExtBrokerInner> msgs = null;
-            try {
-                msgs = putMsg(master, topicCount, msgPerTopic);
-            } catch (Exception e) {
-                e.printStackTrace();
-                assertThat(true).isFalse();
-            }
-
-            // sleep to wait for consume queue has been constructed.
-            try {
-                Thread.sleep(1000);
-            } catch (InterruptedException e) {
-                e.printStackTrace();
-                assertThat(true).isFalse();
-            }
+            Thread.sleep(200);
+        } catch (InterruptedException e) {
+            e.printStackTrace();
+            assertThat(true).isFalse();
+        }
 
-            // reset consumer;
-            String topic = "topic" + 0;
-            String resetGroup = "CID_" + 2;
-            String normalGroup = "CID_" + 3;
+        // reset consumer;
+        String topic = "topic" + 0;
+        String resetGroup = "CID_" + 2;
+        String normalGroup = "CID_" + 3;
 
-            {
-                // reset CID_2@topic0 to get all messages.
-                SubscriptionData resetSubData = new SubscriptionData();
-                resetSubData.setExpressionType(ExpressionType.SQL92);
-                resetSubData.setTopic(topic);
-                resetSubData.setClassFilterMode(false);
-                resetSubData.setSubString("a is not null OR a is null");
+        {
+            // reset CID_2@topic0 to get all messages.
+            SubscriptionData resetSubData = new SubscriptionData();
+            resetSubData.setExpressionType(ExpressionType.SQL92);
+            resetSubData.setTopic(topic);
+            resetSubData.setClassFilterMode(false);
+            resetSubData.setSubString("a is not null OR a is null");
 
-                ConsumerFilterData resetFilterData = ConsumerFilterManager.build(topic,
-                    resetGroup, resetSubData.getSubString(), resetSubData.getExpressionType(),
-                    System.currentTimeMillis());
+            ConsumerFilterData resetFilterData = ConsumerFilterManager.build(topic,
+                resetGroup, resetSubData.getSubString(), resetSubData.getExpressionType(),
+                System.currentTimeMillis());
 
-                GetMessageResult resetGetResult = master.getMessage(resetGroup, topic, queueId, 0, 1000,
-                    new ExpressionMessageFilter(resetSubData, resetFilterData, filterManager));
+            GetMessageResult resetGetResult = master.getMessage(resetGroup, topic, queueId, 0, 1000,
+                new ExpressionMessageFilter(resetSubData, resetFilterData, filterManager));
 
-                try {
-                    assertThat(resetGetResult).isNotNull();
+            try {
+                assertThat(resetGetResult).isNotNull();
 
-                    List<MessageExtBrokerInner> filteredMsgs = filtered(msgs, resetFilterData);
+                List<MessageExtBrokerInner> filteredMsgs = filtered(msgs, resetFilterData);
 
-                    assertThat(resetGetResult.getMessageBufferList().size()).isEqualTo(filteredMsgs.size());
-                } finally {
-                    resetGetResult.release();
-                }
+                assertThat(resetGetResult.getMessageBufferList().size()).isEqualTo(filteredMsgs.size());
+            } finally {
+                resetGetResult.release();
             }
+        }
 
-            {
-                ConsumerFilterData normalFilterData = filterManager.get(topic, normalGroup);
-                assertThat(normalFilterData).isNotNull();
-                assertThat(normalFilterData.getBornTime()).isLessThan(System.currentTimeMillis());
+        {
+            ConsumerFilterData normalFilterData = filterManager.get(topic, normalGroup);
+            assertThat(normalFilterData).isNotNull();
+            assertThat(normalFilterData.getBornTime()).isLessThan(System.currentTimeMillis());
 
-                SubscriptionData normalSubData = new SubscriptionData();
-                normalSubData.setExpressionType(normalFilterData.getExpressionType());
-                normalSubData.setTopic(topic);
-                normalSubData.setClassFilterMode(false);
-                normalSubData.setSubString(normalFilterData.getExpression());
+            SubscriptionData normalSubData = new SubscriptionData();
+            normalSubData.setExpressionType(normalFilterData.getExpressionType());
+            normalSubData.setTopic(topic);
+            normalSubData.setClassFilterMode(false);
+            normalSubData.setSubString(normalFilterData.getExpression());
 
-                List<MessageExtBrokerInner> filteredMsgs = filtered(msgs, normalFilterData);
+            List<MessageExtBrokerInner> filteredMsgs = filtered(msgs, normalFilterData);
 
-                GetMessageResult normalGetResult = master.getMessage(normalGroup, topic, queueId, 0, 1000,
-                    new ExpressionMessageFilter(normalSubData, normalFilterData, filterManager));
+            GetMessageResult normalGetResult = master.getMessage(normalGroup, topic, queueId, 0, 1000,
+                new ExpressionMessageFilter(normalSubData, normalFilterData, filterManager));
 
-                try {
-                    assertThat(normalGetResult).isNotNull();
-                    assertThat(normalGetResult.getMessageBufferList().size()).isEqualTo(filteredMsgs.size());
-                } finally {
-                    normalGetResult.release();
-                }
+            try {
+                assertThat(normalGetResult).isNotNull();
+                assertThat(normalGetResult.getMessageBufferList().size()).isEqualTo(filteredMsgs.size());
+            } finally {
+                normalGetResult.release();
             }
-        } finally {
-            master.shutdown();
-            master.destroy();
-            UtilAll.deleteFile(new File(storePath));
         }
     }
 
     @Test
     public void testGetMessage_withFilterBitMap() {
-        int topicCount = 10, msgPerTopic = 500;
-        ConsumerFilterManager filterManager = ConsumerFilterManagerTest.gen(topicCount, msgPerTopic);
-
-        DefaultMessageStore master = null;
+        List<MessageExtBrokerInner> msgs = null;
         try {
-            master = gen(filterManager);
+            msgs = putMsg(master, topicCount, msgPerTopic);
+            // sleep to wait for consume queue has been constructed.
+            Thread.sleep(200);
         } catch (Exception e) {
             e.printStackTrace();
             assertThat(true).isFalse();
         }
 
-        try {
-            List<MessageExtBrokerInner> msgs = null;
-            try {
-                msgs = putMsg(master, topicCount, msgPerTopic);
-                // sleep to wait for consume queue has been constructed.
-                Thread.sleep(1000);
-            } catch (Exception e) {
-                e.printStackTrace();
-                assertThat(true).isFalse();
-            }
+        for (int i = 0; i < topicCount; i++) {
+            String realTopic = topic + i;
 
-            for (int i = 0; i < topicCount; i++) {
-                String realTopic = topic + i;
-
-                for (int j = 0; j < msgPerTopic; j++) {
-                    String group = "CID_" + j;
-
-                    ConsumerFilterData filterData = filterManager.get(realTopic, group);
-                    assertThat(filterData).isNotNull();
-
-                    List<MessageExtBrokerInner> filteredMsgs = filtered(msgs, filterData);
-
-                    SubscriptionData subscriptionData = new SubscriptionData();
-                    subscriptionData.setExpressionType(filterData.getExpressionType());
-                    subscriptionData.setTopic(filterData.getTopic());
-                    subscriptionData.setClassFilterMode(false);
-                    subscriptionData.setSubString(filterData.getExpression());
-
-                    GetMessageResult getMessageResult = master.getMessage(group, realTopic, queueId, 0, 10000,
-                        new ExpressionMessageFilter(subscriptionData, filterData, filterManager));
-                    String assertMsg = group + "-" + realTopic;
-                    try {
-                        assertThat(getMessageResult).isNotNull();
-                        assertThat(GetMessageStatus.FOUND).isEqualTo(getMessageResult.getStatus());
-                        assertThat(getMessageResult.getMessageBufferList()).isNotNull().isNotEmpty();
-                        assertThat(getMessageResult.getMessageBufferList().size()).isEqualTo(filteredMsgs.size());
-
-                        for (ByteBuffer buffer : getMessageResult.getMessageBufferList()) {
-                            MessageExt messageExt = MessageDecoder.decode(buffer.slice(), false);
-                            assertThat(messageExt).isNotNull();
-
-                            Object evlRet = null;
-                            try {
-                                evlRet = filterData.getCompiledExpression().evaluate(new MessageEvaluationContext(messageExt.getProperties()));
-                            } catch (Exception e) {
-                                e.printStackTrace();
-                                assertThat(true).isFalse();
-                            }
+            for (int j = 0; j < msgPerTopic; j++) {
+                String group = "CID_" + j;
 
-                            assertThat(evlRet).isNotNull().isEqualTo(Boolean.TRUE);
+                ConsumerFilterData filterData = filterManager.get(realTopic, group);
+                assertThat(filterData).isNotNull();
 
-                            // check
-                            boolean find = false;
-                            for (MessageExtBrokerInner messageExtBrokerInner : filteredMsgs) {
-                                if (messageExtBrokerInner.getMsgId().equals(messageExt.getMsgId())) {
-                                    find = true;
-                                }
+                List<MessageExtBrokerInner> filteredMsgs = filtered(msgs, filterData);
+
+                SubscriptionData subscriptionData = new SubscriptionData();
+                subscriptionData.setExpressionType(filterData.getExpressionType());
+                subscriptionData.setTopic(filterData.getTopic());
+                subscriptionData.setClassFilterMode(false);
+                subscriptionData.setSubString(filterData.getExpression());
+
+                GetMessageResult getMessageResult = master.getMessage(group, realTopic, queueId, 0, 10000,
+                    new ExpressionMessageFilter(subscriptionData, filterData, filterManager));
+                String assertMsg = group + "-" + realTopic;
+                try {
+                    assertThat(getMessageResult).isNotNull();
+                    assertThat(GetMessageStatus.FOUND).isEqualTo(getMessageResult.getStatus());
+                    assertThat(getMessageResult.getMessageBufferList()).isNotNull().isNotEmpty();
+                    assertThat(getMessageResult.getMessageBufferList().size()).isEqualTo(filteredMsgs.size());
+
+                    for (ByteBuffer buffer : getMessageResult.getMessageBufferList()) {
+                        MessageExt messageExt = MessageDecoder.decode(buffer.slice(), false);
+                        assertThat(messageExt).isNotNull();
+
+                        Object evlRet = null;
+                        try {
+                            evlRet = filterData.getCompiledExpression().evaluate(new MessageEvaluationContext(messageExt.getProperties()));
+                        } catch (Exception e) {
+                            e.printStackTrace();
+                            assertThat(true).isFalse();
+                        }
+
+                        assertThat(evlRet).isNotNull().isEqualTo(Boolean.TRUE);
+
+                        // check
+                        boolean find = false;
+                        for (MessageExtBrokerInner messageExtBrokerInner : filteredMsgs) {
+                            if (messageExtBrokerInner.getMsgId().equals(messageExt.getMsgId())) {
+                                find = true;
                             }
-                            assertThat(find).isTrue();
                         }
-                    } finally {
-                        getMessageResult.release();
+                        assertThat(find).isTrue();
                     }
+                } finally {
+                    getMessageResult.release();
                 }
             }
-        } finally {
-            master.shutdown();
-            master.destroy();
-            UtilAll.deleteFile(new File(storePath));
         }
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/76464ba6/broker/src/test/resources/logback-test.xml
----------------------------------------------------------------------
diff --git a/broker/src/test/resources/logback-test.xml b/broker/src/test/resources/logback-test.xml
index 908373e..1978b73 100644
--- a/broker/src/test/resources/logback-test.xml
+++ b/broker/src/test/resources/logback-test.xml
@@ -19,7 +19,6 @@
 <configuration>
 
     <appender name="DefaultAppender" class="ch.qos.logback.core.ConsoleAppender">
-        <append>true</append>
         <encoder>
             <pattern>%d{yyy-MM-dd HH\:mm\:ss,GMT+8} %p %t - %m%n</pattern>
             <charset class="java.nio.charset.Charset">UTF-8</charset>

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/76464ba6/client/src/main/java/org/apache/rocketmq/client/log/ClientLogger.java
----------------------------------------------------------------------
diff --git a/client/src/main/java/org/apache/rocketmq/client/log/ClientLogger.java b/client/src/main/java/org/apache/rocketmq/client/log/ClientLogger.java
index 356cda3..e84a069 100644
--- a/client/src/main/java/org/apache/rocketmq/client/log/ClientLogger.java
+++ b/client/src/main/java/org/apache/rocketmq/client/log/ClientLogger.java
@@ -16,14 +16,14 @@
  */
 package org.apache.rocketmq.client.log;
 
-import java.lang.reflect.Method;
-import java.net.URL;
-
 import org.apache.rocketmq.common.constant.LoggerName;
 import org.slf4j.ILoggerFactory;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import java.lang.reflect.Method;
+import java.net.URL;
+
 public class ClientLogger {
     public static final String CLIENT_LOG_ROOT = "rocketmq.client.logRoot";
     public static final String CLIENT_LOG_MAXINDEX = "rocketmq.client.logFileMaxIndex";
@@ -31,25 +31,21 @@ public class ClientLogger {
 
     private static Logger log;
 
-    private static Class logClass = null;
-
     private static Logger createLogger(final String loggerName) {
-        String logConfigFilePath =
-            System.getProperty("rocketmq.client.log.configFile",
-                System.getenv("ROCKETMQ_CLIENT_LOG_CONFIGFILE"));
+        String logConfigFilePath = System.getProperty("rocketmq.client.log.configFile", System.getenv("ROCKETMQ_CLIENT_LOG_CONFIGFILE"));
         Boolean isloadconfig =
-            Boolean.parseBoolean(System.getProperty("rocketmq.client.log.loadconfig", "true"));
+                Boolean.parseBoolean(System.getProperty("rocketmq.client.log.loadconfig", "true"));
 
         final String log4JResourceFile =
-            System.getProperty("rocketmq.client.log4j.resource.fileName", "log4j_rocketmq_client.xml");
+                System.getProperty("rocketmq.client.log4j.resource.fileName", "log4j_rocketmq_client.xml");
 
         final String logbackResourceFile =
-            System.getProperty("rocketmq.client.logback.resource.fileName", "logback_rocketmq_client.xml");
+                System.getProperty("rocketmq.client.logback.resource.fileName", "logback_rocketmq_client.xml");
 
         final String log4J2ResourceFile =
-            System.getProperty("rocketmq.client.log4j2.resource.fileName", "log4j2_rocketmq_client.xml");
+                System.getProperty("rocketmq.client.log4j2.resource.fileName", "log4j2_rocketmq_client.xml");
 
-        String clientLogRoot = System.getProperty(CLIENT_LOG_ROOT, "${user.home}/logs/rocketmqlogs");
+        String clientLogRoot = System.getProperty(CLIENT_LOG_ROOT, System.getProperty("user.home") + "/logs/rocketmqlogs");
         System.setProperty("client.logRoot", clientLogRoot);
         String clientLogLevel = System.getProperty(CLIENT_LOG_LEVEL, "INFO");
         System.setProperty("client.logLevel", clientLogLevel);
@@ -85,11 +81,11 @@ public class ClientLogger {
                     if (null == logConfigFilePath) {
                         URL url = ClientLogger.class.getClassLoader().getResource(logbackResourceFile);
                         Method doConfigure =
-                            joranConfiguratoroObj.getClass().getMethod("doConfigure", URL.class);
+                                joranConfiguratoroObj.getClass().getMethod("doConfigure", URL.class);
                         doConfigure.invoke(joranConfiguratoroObj, url);
                     } else {
                         Method doConfigure =
-                            joranConfiguratoroObj.getClass().getMethod("doConfigure", String.class);
+                                joranConfiguratoroObj.getClass().getMethod("doConfigure", String.class);
                         doConfigure.invoke(joranConfiguratoroObj, logConfigFilePath);
                     }
 
@@ -102,7 +98,7 @@ public class ClientLogger {
                         initialize.invoke(joranConfigurator, "log4j2", logConfigFilePath);
                     }
                 }
-                logClass = classType;
+                //logClass = classType;
             } catch (Exception e) {
                 System.err.println(e);
             }

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/76464ba6/client/src/test/java/org/apache/rocketmq/client/consumer/rebalance/AllocateMessageQueueConsitentHashTest.java
----------------------------------------------------------------------
diff --git a/client/src/test/java/org/apache/rocketmq/client/consumer/rebalance/AllocateMessageQueueConsitentHashTest.java b/client/src/test/java/org/apache/rocketmq/client/consumer/rebalance/AllocateMessageQueueConsitentHashTest.java
index 8d091e5..3a581e1 100644
--- a/client/src/test/java/org/apache/rocketmq/client/consumer/rebalance/AllocateMessageQueueConsitentHashTest.java
+++ b/client/src/test/java/org/apache/rocketmq/client/consumer/rebalance/AllocateMessageQueueConsitentHashTest.java
@@ -92,9 +92,9 @@ public class AllocateMessageQueueConsitentHashTest {
 
     @Test
     public void testRun100RandomCase() {
-        for (int i = 0; i < 100; i++) {
-            int consumerSize = new Random().nextInt(200) + 1;//1-200
-            int queueSize = new Random().nextInt(100) + 1;//1-100
+        for (int i = 0; i < 10; i++) {
+            int consumerSize = new Random().nextInt(20) + 1;//1-20
+            int queueSize = new Random().nextInt(20) + 1;//1-20
             testAllocate(queueSize, consumerSize);
             try {
                 Thread.sleep(1);

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/76464ba6/client/src/test/java/org/apache/rocketmq/client/log/ClientLogTest.java
----------------------------------------------------------------------
diff --git a/client/src/test/java/org/apache/rocketmq/client/log/ClientLogTest.java b/client/src/test/java/org/apache/rocketmq/client/log/ClientLogTest.java
deleted file mode 100644
index d7b619f..0000000
--- a/client/src/test/java/org/apache/rocketmq/client/log/ClientLogTest.java
+++ /dev/null
@@ -1,72 +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.rocketmq.client.log;
-
-import org.junit.Assert;
-import org.junit.Test;
-
-import java.io.*;
-import java.lang.reflect.Field;
-import java.util.Date;
-
-public class ClientLogTest {
-
-    public static final String CLIENT_LOG_ROOT = "rocketmq.client.logRoot";
-    public static final String LOG_DIR;
-
-    static {
-        LOG_DIR = System.getProperty(CLIENT_LOG_ROOT, "${user.home}/logs/rocketmqlogs");
-    }
-
-    // FIXME: Workarond for concret implementation for slf4j, is there any better solution for all slf4j implementations in one class ? 2017/8/1
-    @Test
-    public void testLog4j2() throws IOException, NoSuchFieldException, IllegalAccessException {
-        ClientLogger.getLog();
-        long seek = 0;
-        boolean result = false;
-        File file = new File(LOG_DIR + File.separator + "rocketmq_client.log");
-        if (file.exists()) {
-            seek = file.length();
-        }
-        Field logClassField = ClientLogger.class.getDeclaredField("logClass");
-        logClassField.setAccessible(true);
-        Class logClass = (Class) logClassField.get(ClientLogger.class);
-        Assert.assertEquals("org.apache.logging.slf4j.Log4jLoggerFactory", logClass.getName());
-        for (int i = 0; i < 10; i++) {
-            ClientLogger.getLog().info("testcase testLog4j2 " + new Date());
-        }
-
-        RandomAccessFile randomAccessFile = new RandomAccessFile(file, "r");
-        randomAccessFile.seek(seek);
-        String line = randomAccessFile.readLine();
-        int idx = 1;
-        while (line != null) {
-            if (line.contains("testLog4j2")) {
-                result = true;
-                break;
-            }
-            line = randomAccessFile.readLine();
-            idx++;
-            if (idx > 20) {
-                break;
-            }
-        }
-        randomAccessFile.close();
-        Assert.assertTrue(result);
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/76464ba6/client/src/test/java/org/apache/rocketmq/client/log/ClientLoggerTest.java
----------------------------------------------------------------------
diff --git a/client/src/test/java/org/apache/rocketmq/client/log/ClientLoggerTest.java b/client/src/test/java/org/apache/rocketmq/client/log/ClientLoggerTest.java
new file mode 100644
index 0000000..0559e0d
--- /dev/null
+++ b/client/src/test/java/org/apache/rocketmq/client/log/ClientLoggerTest.java
@@ -0,0 +1,51 @@
+/*
+ * 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.rocketmq.client.log;
+
+import org.apache.rocketmq.common.UtilAll;
+import org.junit.After;
+import org.junit.Test;
+import org.slf4j.Logger;
+
+import java.io.File;
+
+import static org.junit.Assert.assertEquals;
+
+public class ClientLoggerTest {
+
+    public static final String CLIENT_LOG_ROOT = "rocketmq.client.logRoot";
+    public static final String LOG_DIR;
+
+    static {
+        LOG_DIR = System.getProperty(CLIENT_LOG_ROOT, System.getProperty("user.home") + "/logs/rocketmqlogs");
+    }
+
+
+    @After
+    public void cleanFiles() {
+        UtilAll.deleteFile(new File(LOG_DIR));
+    }
+
+    // FIXME: Workaround for concrete implementation for slf4j, is there any better solution for all slf4j implementations in one class ? 2017/8/1
+    @Test
+    public void testLog4j() throws Exception {
+        Logger logger = ClientLogger.getLog();
+
+        assertEquals("org.apache.logging.slf4j.Log4jLogger", logger.getClass().getName());
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/76464ba6/filter/src/test/java/org/apache/rocketmq/filter/ExpressionTest.java
----------------------------------------------------------------------
diff --git a/filter/src/test/java/org/apache/rocketmq/filter/ExpressionTest.java b/filter/src/test/java/org/apache/rocketmq/filter/ExpressionTest.java
index 0ee81c9..7fb606a 100644
--- a/filter/src/test/java/org/apache/rocketmq/filter/ExpressionTest.java
+++ b/filter/src/test/java/org/apache/rocketmq/filter/ExpressionTest.java
@@ -47,7 +47,7 @@ public class ExpressionTest {
     private static String stringHasString = "TAGS is not null and TAGS='''''tag'''''";
 
     @Test
-    public void testEvaluate_stringHasString() {
+    public void testEvaluate_stringHasString() throws Exception {
         Expression expr = genExp(stringHasString);
 
         EvaluationContext context = genContext(
@@ -58,7 +58,7 @@ public class ExpressionTest {
     }
 
     @Test
-    public void testEvaluate_now() {
+    public void testEvaluate_now() throws Exception {
         EvaluationContext context = genContext(
             KeyValue.c("a", System.currentTimeMillis())
         );
@@ -72,8 +72,8 @@ public class ExpressionTest {
         eval(expression, context, Boolean.TRUE);
     }
 
-    @Test
-    public void testEvaluate_stringCompare() {
+    @Test(expected = RuntimeException.class)
+    public void testEvaluate_stringCompare() throws Exception {
         Expression expression = genExp("a between up and low");
 
         EvaluationContext context = genContext(
@@ -147,7 +147,7 @@ public class ExpressionTest {
     }
 
     @Test
-    public void testEvaluate_exponent() {
+    public void testEvaluate_exponent() throws Exception {
         Expression expression = genExp("a > 3.1E10");
 
         EvaluationContext context = genContext(
@@ -158,7 +158,7 @@ public class ExpressionTest {
     }
 
     @Test
-    public void testEvaluate_floatNumber() {
+    public void testEvaluate_floatNumber() throws Exception {
         Expression expression = genExp("a > 3.14");
 
         EvaluationContext context = genContext(
@@ -169,7 +169,7 @@ public class ExpressionTest {
     }
 
     @Test
-    public void testEvaluate_twoVariable() {
+    public void testEvaluate_twoVariable() throws Exception {
         Expression expression = genExp("a > b");
 
         EvaluationContext context = genContext(
@@ -178,8 +178,12 @@ public class ExpressionTest {
         );
 
         eval(expression, context, Boolean.FALSE);
+    }
 
-        context = genContext(
+    @Test
+    public void testEvaluate_twoVariableGt() throws Exception {
+        Expression expression = genExp("a > b");
+        EvaluationContext context = genContext(
             KeyValue.c("b", String.valueOf(10)),
             KeyValue.c("a", String.valueOf(20))
         );
@@ -188,7 +192,7 @@ public class ExpressionTest {
     }
 
     @Test
-    public void testEvaluate_nullOr() {
+    public void testEvaluate_nullOr() throws Exception {
         Expression expression = genExp(nullOrExpression);
 
         EvaluationContext context = genContext(
@@ -210,7 +214,7 @@ public class ExpressionTest {
     }
 
     @Test
-    public void testEvaluate_boolean() {
+    public void testEvaluate_boolean() throws Exception {
         Expression expression = genExp(booleanExpression);
 
         EvaluationContext context = genContext(
@@ -229,7 +233,7 @@ public class ExpressionTest {
     }
 
     @Test
-    public void testEvaluate_equal() {
+    public void testEvaluate_equal() throws Exception {
         Expression expression = genExp(equalExpression);
 
         EvaluationContext context = genContext(
@@ -245,7 +249,7 @@ public class ExpressionTest {
     }
 
     @Test
-    public void testEvaluate_andTrue() {
+    public void testEvaluate_andTrue() throws Exception {
         Expression expression = genExp(andExpression);
 
         EvaluationContext context = genContext(
@@ -278,7 +282,7 @@ public class ExpressionTest {
     }
 
     @Test
-    public void testEvaluate_andFalse() {
+    public void testEvaluate_andFalse() throws Exception {
         Expression expression = genExp(andExpression);
 
         EvaluationContext context = genContext(
@@ -302,7 +306,7 @@ public class ExpressionTest {
     }
 
     @Test
-    public void testEvaluate_orTrue() {
+    public void testEvaluate_orTrue() throws Exception {
         Expression expression = genExp(orExpression);
 
         // first
@@ -337,7 +341,7 @@ public class ExpressionTest {
     }
 
     @Test
-    public void testEvaluate_orFalse() {
+    public void testEvaluate_orFalse() throws Exception {
         Expression expression = genExp(orExpression);
         // forth
         EvaluationContext context = genContext(
@@ -350,7 +354,7 @@ public class ExpressionTest {
     }
 
     @Test
-    public void testEvaluate_inTrue() {
+    public void testEvaluate_inTrue() throws Exception {
         Expression expression = genExp(inExpression);
 
         EvaluationContext context = genContext(
@@ -370,7 +374,7 @@ public class ExpressionTest {
     }
 
     @Test
-    public void testEvaluate_inFalse() {
+    public void testEvaluate_inFalse() throws Exception {
         Expression expression = genExp(inExpression);
 
         EvaluationContext context = genContext(
@@ -380,7 +384,7 @@ public class ExpressionTest {
     }
 
     @Test
-    public void testEvaluate_notInTrue() {
+    public void testEvaluate_notInTrue() throws Exception {
         Expression expression = genExp(notInExpression);
 
         EvaluationContext context = genContext(
@@ -390,7 +394,7 @@ public class ExpressionTest {
     }
 
     @Test
-    public void testEvaluate_notInFalse() {
+    public void testEvaluate_notInFalse() throws Exception {
         Expression expression = genExp(notInExpression);
 
         EvaluationContext context = genContext(
@@ -410,7 +414,7 @@ public class ExpressionTest {
     }
 
     @Test
-    public void testEvaluate_betweenTrue() {
+    public void testEvaluate_betweenTrue() throws Exception {
         Expression expression = genExp(betweenExpression);
 
         EvaluationContext context = genContext(
@@ -430,7 +434,7 @@ public class ExpressionTest {
     }
 
     @Test
-    public void testEvaluate_betweenFalse() {
+    public void testEvaluate_betweenFalse() throws Exception {
         Expression expression = genExp(betweenExpression);
 
         EvaluationContext context = genContext(
@@ -445,7 +449,7 @@ public class ExpressionTest {
     }
 
     @Test
-    public void testEvaluate_notBetweenTrue() {
+    public void testEvaluate_notBetweenTrue() throws Exception {
         Expression expression = genExp(notBetweenExpression);
 
         EvaluationContext context = genContext(
@@ -460,7 +464,7 @@ public class ExpressionTest {
     }
 
     @Test
-    public void testEvaluate_notBetweenFalse() {
+    public void testEvaluate_notBetweenFalse() throws Exception {
         Expression expression = genExp(notBetweenExpression);
 
         EvaluationContext context = genContext(
@@ -480,7 +484,7 @@ public class ExpressionTest {
     }
 
     @Test
-    public void testEvaluate_isNullTrue() {
+    public void testEvaluate_isNullTrue() throws Exception {
         Expression expression = genExp(isNullExpression);
 
         EvaluationContext context = genContext(
@@ -490,7 +494,7 @@ public class ExpressionTest {
     }
 
     @Test
-    public void testEvaluate_isNullFalse() {
+    public void testEvaluate_isNullFalse() throws Exception {
         Expression expression = genExp(isNullExpression);
 
         EvaluationContext context = genContext(
@@ -500,7 +504,7 @@ public class ExpressionTest {
     }
 
     @Test
-    public void testEvaluate_isNotNullTrue() {
+    public void testEvaluate_isNotNullTrue() throws Exception {
         Expression expression = genExp(isNotNullExpression);
 
         EvaluationContext context = genContext(
@@ -510,7 +514,7 @@ public class ExpressionTest {
     }
 
     @Test
-    public void testEvaluate_isNotNullFalse() {
+    public void testEvaluate_isNotNullFalse() throws Exception {
         Expression expression = genExp(isNotNullExpression);
 
         EvaluationContext context = genContext(
@@ -519,14 +523,8 @@ public class ExpressionTest {
         eval(expression, context, Boolean.FALSE);
     }
 
-    protected void eval(Expression expression, EvaluationContext context, Boolean result) {
-        Object ret = null;
-        try {
-            ret = expression.evaluate(context);
-        } catch (Throwable e) {
-            e.printStackTrace();
-        }
-
+    protected void eval(Expression expression, EvaluationContext context, Boolean result) throws Exception {
+        Object ret = expression.evaluate(context);
         if (ret == null || !(ret instanceof Boolean)) {
             assertThat(result).isFalse();
         } else {

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/76464ba6/namesrv/src/test/java/org/apache/rocketmq/namesrv/NamesrvControllerTest.java
----------------------------------------------------------------------
diff --git a/namesrv/src/test/java/org/apache/rocketmq/namesrv/NamesrvControllerTest.java b/namesrv/src/test/java/org/apache/rocketmq/namesrv/NamesrvControllerTest.java
deleted file mode 100644
index 3db0422..0000000
--- a/namesrv/src/test/java/org/apache/rocketmq/namesrv/NamesrvControllerTest.java
+++ /dev/null
@@ -1,46 +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.rocketmq.namesrv;
-
-import org.apache.rocketmq.common.namesrv.NamesrvConfig;
-import org.apache.rocketmq.remoting.netty.NettyServerConfig;
-import org.junit.Test;
-
-import static org.assertj.core.api.Assertions.assertThat;
-
-public class NamesrvControllerTest {
-    private final static int RESTARTNUM = 2;
-
-    /**
-     * Tests if the controller can be properly stopped and started.
-     *
-     * @throws Exception If fails.
-     */
-    @Test
-    public void testRestart() throws Exception {
-        for (int i = 0; i < RESTARTNUM; i++) {
-            NamesrvController namesrvController = new NamesrvController(
-                new NamesrvConfig(),
-                new NettyServerConfig()
-            );
-            boolean initResult = namesrvController.initialize();
-            assertThat(initResult).isEqualTo(true);
-            namesrvController.start();
-            namesrvController.shutdown();
-        }
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/76464ba6/namesrv/src/test/java/org/apache/rocketmq/namesrv/kvconfig/KVConfigManagerTest.java
----------------------------------------------------------------------
diff --git a/namesrv/src/test/java/org/apache/rocketmq/namesrv/kvconfig/KVConfigManagerTest.java b/namesrv/src/test/java/org/apache/rocketmq/namesrv/kvconfig/KVConfigManagerTest.java
index 8efa536..b74d66b 100644
--- a/namesrv/src/test/java/org/apache/rocketmq/namesrv/kvconfig/KVConfigManagerTest.java
+++ b/namesrv/src/test/java/org/apache/rocketmq/namesrv/kvconfig/KVConfigManagerTest.java
@@ -34,7 +34,6 @@ public class KVConfigManagerTest extends NameServerInstanceTest {
 
     @Test
     public void testPutKVConfig() {
-        kvConfigManager.load();
         kvConfigManager.putKVConfig(NamesrvUtil.NAMESPACE_ORDER_TOPIC_CONFIG, "UnitTest", "test");
         byte[] kvConfig = kvConfigManager.getKVListByNamespace(NamesrvUtil.NAMESPACE_ORDER_TOPIC_CONFIG);
         assertThat(kvConfig).isNotNull();

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/76464ba6/store/src/test/java/org/apache/rocketmq/store/DefaultMessageStoreTest.java
----------------------------------------------------------------------
diff --git a/store/src/test/java/org/apache/rocketmq/store/DefaultMessageStoreTest.java b/store/src/test/java/org/apache/rocketmq/store/DefaultMessageStoreTest.java
index 28d7478..6e37b70 100644
--- a/store/src/test/java/org/apache/rocketmq/store/DefaultMessageStoreTest.java
+++ b/store/src/test/java/org/apache/rocketmq/store/DefaultMessageStoreTest.java
@@ -43,15 +43,24 @@ public class DefaultMessageStoreTest {
     private SocketAddress BornHost;
     private SocketAddress StoreHost;
     private byte[] MessageBody;
+    private MessageStore messageStore;
 
     @Before
     public void init() throws Exception {
         StoreHost = new InetSocketAddress(InetAddress.getLocalHost(), 8123);
         BornHost = new InetSocketAddress(InetAddress.getByName("127.0.0.1"), 0);
+
+        messageStore = buildMessageStore();
+        boolean load = messageStore.load();
+        assertTrue(load);
+        messageStore.start();
     }
 
     @After
     public void destory() {
+        messageStore.shutdown();
+        messageStore.destroy();
+
         MessageStoreConfig messageStoreConfig = new MessageStoreConfig();
         File file = new File(messageStoreConfig.getStorePathRootDir());
         UtilAll.deleteFile(file);
@@ -63,7 +72,7 @@ public class DefaultMessageStoreTest {
         messageStoreConfig.setMapedFileSizeConsumeQueue(1024 * 1024 * 10);
         messageStoreConfig.setMaxHashSlotNum(10000);
         messageStoreConfig.setMaxIndexNum(100 * 100);
-        messageStoreConfig.setFlushDiskType(FlushDiskType.ASYNC_FLUSH);
+        messageStoreConfig.setFlushDiskType(FlushDiskType.SYNC_FLUSH);
         return new DefaultMessageStore(messageStoreConfig, new BrokerStatsManager("simpleTest"), new MyMessageArrivingListener(), new BrokerConfig());
     }
 
@@ -72,12 +81,16 @@ public class DefaultMessageStoreTest {
         long totalMsgs = 100;
         QUEUE_TOTAL = 1;
         MessageBody = StoreMessage.getBytes();
-        MessageStore master = buildMessageStore();
-        boolean load = master.load();
-        assertTrue(load);
+        for (long i = 0; i < totalMsgs; i++) {
+            messageStore.putMessage(buildMessage());
+        }
 
-        master.start();
-        verifyThatMasterIsFunctional(totalMsgs, master);
+        for (long i = 0; i < totalMsgs; i++) {
+            GetMessageResult result = messageStore.getMessage("GROUP_A", "TOPIC_A", 0, i, 1024 * 1024, null);
+            assertThat(result).isNotNull();
+            result.release();
+        }
+        verifyThatMasterIsFunctional(totalMsgs, messageStore);
     }
 
     public MessageExtBrokerInner buildMessage() {
@@ -97,54 +110,46 @@ public class DefaultMessageStoreTest {
 
     @Test
     public void testGroupCommit() throws Exception {
-        long totalMsgs = 100;
+        long totalMsgs = 10;
         QUEUE_TOTAL = 1;
         MessageBody = StoreMessage.getBytes();
-        MessageStoreConfig messageStoreConfig = new MessageStoreConfig();
-        messageStoreConfig.setMapedFileSizeCommitLog(1024 * 8);
-        messageStoreConfig.setFlushDiskType(FlushDiskType.SYNC_FLUSH);
-        MessageStore master = new DefaultMessageStore(messageStoreConfig, null, new MyMessageArrivingListener(), new BrokerConfig());
-        boolean load = master.load();
-        assertTrue(load);
+        for (long i = 0; i < totalMsgs; i++) {
+            messageStore.putMessage(buildMessage());
+        }
 
-        master.start();
-        verifyThatMasterIsFunctional(totalMsgs, master);
+        for (long i = 0; i < totalMsgs; i++) {
+            GetMessageResult result = messageStore.getMessage("GROUP_A", "TOPIC_A", 0, i, 1024 * 1024, null);
+            assertThat(result).isNotNull();
+            result.release();
+        }
+        verifyThatMasterIsFunctional(totalMsgs, messageStore);
     }
 
     private void verifyThatMasterIsFunctional(long totalMsgs, MessageStore master) {
-        try {
-            for (long i = 0; i < totalMsgs; i++) {
-                master.putMessage(buildMessage());
-            }
-
-            for (long i = 0; i < totalMsgs; i++) {
-                GetMessageResult result = master.getMessage("GROUP_A", "TOPIC_A", 0, i, 1024 * 1024, null);
-                assertThat(result).isNotNull();
-                result.release();
-
-            }
-        } finally {
-            master.shutdown();
-            master.destroy();
+        for (long i = 0; i < totalMsgs; i++) {
+            master.putMessage(buildMessage());
+        }
+
+        for (long i = 0; i < totalMsgs; i++) {
+            GetMessageResult result = master.getMessage("GROUP_A", "TOPIC_A", 0, i, 1024 * 1024, null);
+            assertThat(result).isNotNull();
+            result.release();
+
         }
     }
 
     @Test
     public void testPullSize() throws Exception {
-        MessageStore messageStore = buildMessageStore();
-        boolean load = messageStore.load();
-        assertTrue(load);
-        messageStore.start();
         String topic = "pullSizeTopic";
 
         for (int i = 0; i < 32; i++) {
             MessageExtBrokerInner messageExtBrokerInner = buildMessage();
             messageExtBrokerInner.setTopic(topic);
             messageExtBrokerInner.setQueueId(0);
-            PutMessageResult putMessageResult = messageStore.putMessage(messageExtBrokerInner);
+            messageStore.putMessage(messageExtBrokerInner);
         }
         //wait for consume queue build
-        Thread.sleep(100);
+        Thread.sleep(10);
         String group = "simple";
         GetMessageResult getMessageResult32 = messageStore.getMessage(group, topic, 0, 0, 32, null);
         assertThat(getMessageResult32.getMessageBufferList().size()).isEqualTo(32);
@@ -154,8 +159,6 @@ public class DefaultMessageStoreTest {
 
         GetMessageResult getMessageResult45 = messageStore.getMessage(group, topic, 0, 0, 10, null);
         assertThat(getMessageResult45.getMessageBufferList().size()).isEqualTo(10);
-
-        messageStore.shutdown();
     }
 
     private class MyMessageArrivingListener implements MessageArrivingListener {