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

lizhanhui pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/rocketmq.git


The following commit(s) were added to refs/heads/develop by this push:
     new aae7b37d0 [ISSUE 4915] Identify flaky tests (#4919)
aae7b37d0 is described below

commit aae7b37d049f97c525d0f92fad57324800c9f681
Author: Zhanhui Li <[email protected]>
AuthorDate: Mon Aug 29 19:52:53 2022 +0800

    [ISSUE 4915] Identify flaky tests (#4919)
    
    * Rule out tests that are flaky. Aka they failed to pass 64 sequential  and 
concurrent runs
    
    * Change default log root directory for tests
    
    * Follow test encyclopedia
    
    * Fix test cases, allowing OS pick up available port to listen to
    
    * Add sha256
    
    * Use pull_request
---
 .github/workflows/bazel.yml                        |  2 +-
 WORKSPACE                                          |  4 +--
 client/BUILD.bazel                                 |  2 +-
 .../rocketmq/common/utils/CheckpointFileTest.java  |  2 +-
 test/BUILD.bazel                                   | 35 +++++++++++++++++-----
 .../rocketmq/test/grpc/v2/ClusterGrpcIT.java       |  2 +-
 .../apache/rocketmq/test/grpc/v2/GrpcBaseIT.java   | 23 +++++++++-----
 .../tools/command/server/ServerResponseMocker.java |  7 +++++
 8 files changed, 54 insertions(+), 23 deletions(-)

diff --git a/.github/workflows/bazel.yml b/.github/workflows/bazel.yml
index e251655e0..fccd6db63 100644
--- a/.github/workflows/bazel.yml
+++ b/.github/workflows/bazel.yml
@@ -1,6 +1,6 @@
 name: Build and Run Tests by Bazel
 on:
-  pull_request_target:
+  pull_request:
     types: [opened, reopened, synchronize]
   push:
     branches:
diff --git a/WORKSPACE b/WORKSPACE
index 735cf6f9a..9bc6419b6 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -109,11 +109,9 @@ load("@io_buildbuddy_buildbuddy_toolchain//:rules.bzl", 
"buildbuddy")
 
 buildbuddy(name = "buildbuddy_toolchain")
 
-load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
-
 http_archive(
     name = "rbe_default",
-    # sha256 = 
"c0d428774cbe70d477e1d07581d863f8dbff4ba6a66d20502d7118354a814bea",
+    sha256 = 
"bd55bd8b2ffa850b5683367e7ab0756d6f51088866b2a81e4c07b6e87d04d8c5",
     urls = 
["https://storage.googleapis.com/rbe-toolchain/bazel-configs/rbe-ubuntu1604/latest/rbe_default.tar";],
 )
 
diff --git a/client/BUILD.bazel b/client/BUILD.bazel
index c5c57cac0..8637a2316 100644
--- a/client/BUILD.bazel
+++ b/client/BUILD.bazel
@@ -59,7 +59,7 @@ GenTestRules(
     deps = [
         ":tests",
     ],
-    medium_tests = [
+    exclude_tests = [
         
"src/test/java/org/apache/rocketmq/client/consumer/DefaultLitePullConsumerTest",
     ],
 )
diff --git 
a/common/src/test/java/org/apache/rocketmq/common/utils/CheckpointFileTest.java 
b/common/src/test/java/org/apache/rocketmq/common/utils/CheckpointFileTest.java
index 13a5794af..3943455f7 100644
--- 
a/common/src/test/java/org/apache/rocketmq/common/utils/CheckpointFileTest.java
+++ 
b/common/src/test/java/org/apache/rocketmq/common/utils/CheckpointFileTest.java
@@ -32,7 +32,7 @@ import org.junit.Test;
 public class CheckpointFileTest {
 
     private static final String FILE_PATH =
-        Paths.get(System.getProperty("user.home"), "store-test", 
"epoch.ckpt").toString();
+        Paths.get(System.getProperty("java.io.tmpdir"), "store-test", 
"epoch.ckpt").toString();
 
     private List<EpochEntry> entryList;
     private CheckpointFile<EpochEntry> checkpoint;
diff --git a/test/BUILD.bazel b/test/BUILD.bazel
index cbece738d..a53dbeb0b 100644
--- a/test/BUILD.bazel
+++ b/test/BUILD.bazel
@@ -100,16 +100,35 @@ GenTestRules(
     deps = [
         ":tests",
     ],
+    default_test_size = "medium",
     exclude_tests = [
         "src/test/java/org/apache/rocketmq/test/grpc/v2/GrpcBaseIT",
-    ],
-    medium_tests = [
-        
"src/test/java/org/apache/rocketmq/test/base/dledger/DLedgerProduceAndConsumeIT",
-        
"src/test/java/org/apache/rocketmq/test/client/consumer/topic/MulConsumerMulTopicIT",
-        
"src/test/java/org/apache/rocketmq/test/client/producer/transaction/TransactionalMsgIT",
-        "src/test/java/org/apache/rocketmq/test/delay/NormalMsgDelayIT",
-        "src/test/java/org/apache/rocketmq/test/grpc/v2/ClusterGrpcIT",
-        "src/test/java/org/apache/rocketmq/test/grpc/v2/LocalGrpcIT",
         "src/test/java/org/apache/rocketmq/test/statictopic/StaticTopicIT",
+        
"src/test/java/org/apache/rocketmq/test/client/consumer/topic/MulConsumerMulTopicIT",
+        
"src/test/java/org/apache/rocketmq/test/client/consumer/tag/MulTagSubIT",
+        
"src/test/java/org/apache/rocketmq/test/client/consumer/tag/TagMessageWith1ConsumerIT",
+        
"src/test/java/org/apache/rocketmq/test/client/consumer/tag/TagMessageWithMulConsumerIT",
+        
"src/test/java/org/apache/rocketmq/test/client/consumer/topic/OneConsumerMulTopicIT",
+        
"src/test/java/org/apache/rocketmq/test/client/producer/order/OrderMsgDynamicRebalanceIT",
+        
"src/test/java/org/apache/rocketmq/test/client/producer/order/OrderMsgIT",
+        
"src/test/java/org/apache/rocketmq/test/client/producer/order/OrderMsgWithTagIT",
+        
"src/test/java/org/apache/rocketmq/test/client/consumer/cluster/DynamicAddAndCrashIT",
+        
"src/test/java/org/apache/rocketmq/test/client/consumer/cluster/DynamicAddConsumerIT",
+        
"src/test/java/org/apache/rocketmq/test/client/consumer/cluster/DynamicCrashConsumerIT",
+        
"src/test/java/org/apache/rocketmq/test/client/consumer/tag/TagMessageWithSameGroupConsumerIT",
+        
"src/test/java/org/apache/rocketmq/test/client/producer/async/AsyncSendWithMessageQueueIT",
+        
"src/test/java/org/apache/rocketmq/test/client/producer/async/AsyncSendWithMessageQueueSelectorIT",
+        
"src/test/java/org/apache/rocketmq/test/client/producer/async/AsyncSendWithOnlySendCallBackIT",
+        
"src/test/java/org/apache/rocketmq/test/client/producer/exception/msg/MessageUserPropIT",
+        
"src/test/java/org/apache/rocketmq/test/client/producer/oneway/OneWaySendIT",
+        
"src/test/java/org/apache/rocketmq/test/client/producer/oneway/OneWaySendWithMQIT",
+        "src/test/java/org/apache/rocketmq/test/tls/TLS_Mix_IT",
+        "src/test/java/org/apache/rocketmq/test/tls/TLS_Mix2_IT",
+        "src/test/java/org/apache/rocketmq/test/tls/TLS_IT",
+        "src/test/java/org/apache/rocketmq/test/offset/OffsetNotFoundIT",
+        
"src/test/java/org/apache/rocketmq/test/client/producer/querymsg/QueryMsgByIdIT",
+        
"src/test/java/org/apache/rocketmq/test/client/producer/oneway/OneWaySendWithSelectorIT",
+        
"src/test/java/org/apache/rocketmq/test/smoke/NormalMessageSendAndRecvIT",
+        
"src/test/java/org/apache/rocketmq/test/base/dledger/DLedgerProduceAndConsumeIT",
     ],
 )
diff --git 
a/test/src/test/java/org/apache/rocketmq/test/grpc/v2/ClusterGrpcIT.java 
b/test/src/test/java/org/apache/rocketmq/test/grpc/v2/ClusterGrpcIT.java
index 88f4e8ba2..43b32493e 100644
--- a/test/src/test/java/org/apache/rocketmq/test/grpc/v2/ClusterGrpcIT.java
+++ b/test/src/test/java/org/apache/rocketmq/test/grpc/v2/ClusterGrpcIT.java
@@ -49,7 +49,7 @@ public class ClusterGrpcIT extends GrpcBaseIT {
         messagingProcessor.start();
         grpcMessagingApplication = 
GrpcMessagingApplication.create(messagingProcessor);
         grpcMessagingApplication.start();
-        setUpServer(grpcMessagingApplication, 
ConfigurationManager.getProxyConfig().getGrpcServerPort(), true);
+        setUpServer(grpcMessagingApplication, 0, true);
 
         await().atMost(Duration.ofSeconds(40)).until(() -> {
             Map<String, BrokerData> brokerDataMap = 
MQAdminTestUtils.getCluster(nsAddr).getBrokerAddrTable();
diff --git 
a/test/src/test/java/org/apache/rocketmq/test/grpc/v2/GrpcBaseIT.java 
b/test/src/test/java/org/apache/rocketmq/test/grpc/v2/GrpcBaseIT.java
index df8b37838..d88b6b1c0 100644
--- a/test/src/test/java/org/apache/rocketmq/test/grpc/v2/GrpcBaseIT.java
+++ b/test/src/test/java/org/apache/rocketmq/test/grpc/v2/GrpcBaseIT.java
@@ -60,6 +60,7 @@ import com.google.protobuf.util.Durations;
 import com.google.protobuf.util.Timestamps;
 import io.grpc.Channel;
 import io.grpc.Metadata;
+import io.grpc.Server;
 import io.grpc.ServerInterceptors;
 import io.grpc.ServerServiceDefinition;
 import io.grpc.netty.shaded.io.grpc.netty.NettyChannelBuilder;
@@ -114,7 +115,11 @@ import static org.awaitility.Awaitility.await;
 
 public class GrpcBaseIT extends BaseConf {
 
-    protected final int port = 8082;
+    /**
+     * Let OS pick up an available port.
+     */
+    private int port = 0;
+
     /**
      * This rule manages automatic graceful shutdown for the registered 
servers and channels at the end of test.
      */
@@ -147,15 +152,11 @@ public class GrpcBaseIT extends BaseConf {
 
         ConfigurationManager.initEnv();
         ConfigurationManager.intConfig();
-        ConfigurationManager.getProxyConfig().setGrpcServerPort(port);
         ConfigurationManager.getProxyConfig().setNameSrvAddr(nsAddr);
         // Set LongPollingReserveTimeInMillis to 500ms to reserve more time 
for IT
         
ConfigurationManager.getProxyConfig().setLongPollingReserveTimeInMillis(500);
         
ConfigurationManager.getProxyConfig().setRocketMQClusterName(brokerController1.getBrokerConfig().getBrokerClusterName());
         
ConfigurationManager.getProxyConfig().setMinInvisibleTimeMillsForRecv(3);
-
-        blockingStub = 
createBlockingStub(createChannel(ConfigurationManager.getProxyConfig().getGrpcServerPort()));
-        stub = 
createStub(createChannel(ConfigurationManager.getProxyConfig().getGrpcServerPort()));
     }
 
     protected MessagingServiceGrpc.MessagingServiceStub createStub(Channel 
channel) {
@@ -194,13 +195,19 @@ public class GrpcBaseIT extends BaseConf {
         if (enableInterceptor) {
             serviceDefinition = ServerInterceptors.intercept(serverImpl, new 
ContextInterceptor(), new HeaderInterceptor());
         }
-        // Create a server, add service, start, and register for automatic 
graceful shutdown.
-        grpcCleanup.register(NettyServerBuilder.forPort(port)
+        Server server = NettyServerBuilder.forPort(port)
             .directExecutor()
             .addService(serviceDefinition)
             .useTransportSecurity(selfSignedCertificate.certificate(), 
selfSignedCertificate.privateKey())
             .build()
-            .start());
+            .start();
+        this.port = server.getPort();
+        // Create a server, add service, start, and register for automatic 
graceful shutdown.
+        grpcCleanup.register(server);
+
+        ConfigurationManager.getProxyConfig().setGrpcServerPort(this.port);
+        blockingStub = 
createBlockingStub(createChannel(ConfigurationManager.getProxyConfig().getGrpcServerPort()));
+        stub = 
createStub(createChannel(ConfigurationManager.getProxyConfig().getGrpcServerPort()));
     }
 
     protected Channel createChannel(int port) throws SSLException {
diff --git 
a/tools/src/test/java/org/apache/rocketmq/tools/command/server/ServerResponseMocker.java
 
b/tools/src/test/java/org/apache/rocketmq/tools/command/server/ServerResponseMocker.java
index b8dcaef2d..f1724c94d 100644
--- 
a/tools/src/test/java/org/apache/rocketmq/tools/command/server/ServerResponseMocker.java
+++ 
b/tools/src/test/java/org/apache/rocketmq/tools/command/server/ServerResponseMocker.java
@@ -29,6 +29,7 @@ import io.netty.channel.socket.SocketChannel;
 import io.netty.channel.socket.nio.NioServerSocketChannel;
 import io.netty.handler.timeout.IdleStateHandler;
 import io.netty.util.concurrent.Future;
+import org.apache.rocketmq.client.log.ClientLogger;
 import org.apache.rocketmq.remoting.netty.NettyDecoder;
 import org.apache.rocketmq.remoting.netty.NettyEncoder;
 import org.apache.rocketmq.remoting.protocol.RemotingCommand;
@@ -39,6 +40,7 @@ import org.junit.Before;
 import java.net.InetSocketAddress;
 import java.util.HashMap;
 import java.util.concurrent.ExecutionException;
+import org.junit.BeforeClass;
 
 /**
  * mock server response for command
@@ -49,6 +51,11 @@ public abstract class ServerResponseMocker {
 
     private final NioEventLoopGroup eventLoopGroup = new NioEventLoopGroup();
 
+    @BeforeClass
+    public static void setLogHome() {
+        System.setProperty(ClientLogger.CLIENT_LOG_ROOT, 
System.getProperty("java.io.tmpdir"));
+    }
+
     @Before
     public void before() {
         start();

Reply via email to