You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rocketmq.apache.org by aa...@apache.org on 2022/08/03 05:24:36 UTC

[rocketmq-clients] branch java_dev updated (9d176f6 -> 896d753)

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

aaronai pushed a change to branch java_dev
in repository https://gitbox.apache.org/repos/asf/rocketmq-clients.git


    omit 9d176f6  [maven-release-plugin] prepare for next development iteration
    omit 62413f9  [maven-release-plugin] prepare release rocketmq-client-java-5.0.0
     add ac0667f  Ajust bazel options
     add cc3cccf  Polish NOTICE (#124)
     add 21d60f4  Release java client 5.0.0 (#125)
     add 034d51f  Revert "Release java client 5.0.0 (#125)"
     add db03197  [maven-release-plugin] prepare release rocketmq-client-java-5.0.0
     add 6fcff32  [maven-release-plugin] prepare for next development iteration
     add 64eb7b9  Test GitHub Action Secrets (#123)
     add 14956ec  Add misspell check action (#126)
     add 6395d04  Fix typos (#128)
     add e2a2fb5  Support codecov (#129)
     add 923cb40  Remove coverage from readme
     new 4c4a1a0  Delete redundant test of cpp
     new c3b99b0  WIP
     new 60e25dc  WIP
     new 896d753  Add remote cache

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (9d176f6)
            \
             N -- N -- N   refs/heads/java_dev (896d753)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

The 4 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .github/workflows/cpp_build.yml                    |  27 +++-
 .github/workflows/cpp_coverage.yml                 |  23 +++
 .github/workflows/java_coverage.yml                |  31 +++++
 .../{license-checker.yaml => license_checker.yaml} |   3 +-
 .github/workflows/misspell_check.yaml              |  18 +++
 NOTICE                                             |   8 --
 cpp/.bazelrc                                       |   9 +-
 cpp/examples/ExampleProducer.cpp                   |   3 +-
 cpp/proto/apache/rocketmq/v2/definition.proto      |   2 +-
 cpp/source/base/tests/AssignmentTest.cpp           |   5 +-
 cpp/source/base/tests/BUILD.bazel                  |  70 +++++-----
 cpp/source/base/tests/ConfigurationTest.cpp        |  54 -------
 cpp/source/base/tests/MessageBuilderTest.cpp       |  56 --------
 cpp/source/base/tests/MessageQueueTest.cpp         |  38 -----
 cpp/source/base/tests/MixAllTest.cpp               |  38 -----
 cpp/source/base/tests/RetryPolicyTest.cpp          |  38 -----
 cpp/source/concurrent/tests/BUILD.bazel            |  26 ----
 cpp/source/concurrent/tests/CountdownLatchTest.cpp |  72 ----------
 cpp/source/rocketmq/ProducerImpl.cpp               |   2 +-
 cpp/source/rocketmq/tests/BUILD.bazel              |  46 ------
 cpp/source/rocketmq/tests/ClientImplTest.cpp       |  36 -----
 cpp/source/rocketmq/tests/SendContextTest.cpp      |  33 -----
 cpp/source/rocketmq/tests/TimeTest.cpp             |  31 -----
 cpp/source/stats/tests/BUILD.bazel                 |  28 ----
 cpp/source/stats/tests/PublishStatsTest.cpp        | 155 ---------------------
 .../Protos/apache/rocketmq/v2/definition.proto     |   2 +-
 docs/design.md                                     |   4 +-
 docs/workflow.md                                   |   2 +-
 golang/protocol/v2/definition.pb.go                |   2 +-
 java/pom.xml                                       |  42 ++++++
 rust/proto/apache/rocketmq/v2/definition.proto     |   2 +-
 31 files changed, 194 insertions(+), 712 deletions(-)
 create mode 100644 .github/workflows/cpp_coverage.yml
 create mode 100644 .github/workflows/java_coverage.yml
 rename .github/workflows/{license-checker.yaml => license_checker.yaml} (93%)
 create mode 100644 .github/workflows/misspell_check.yaml
 delete mode 100644 cpp/source/base/tests/ConfigurationTest.cpp
 delete mode 100644 cpp/source/base/tests/MessageBuilderTest.cpp
 delete mode 100644 cpp/source/base/tests/MessageQueueTest.cpp
 delete mode 100644 cpp/source/base/tests/MixAllTest.cpp
 delete mode 100644 cpp/source/base/tests/RetryPolicyTest.cpp
 delete mode 100644 cpp/source/concurrent/tests/BUILD.bazel
 delete mode 100644 cpp/source/concurrent/tests/CountdownLatchTest.cpp
 delete mode 100644 cpp/source/rocketmq/tests/BUILD.bazel
 delete mode 100644 cpp/source/rocketmq/tests/ClientImplTest.cpp
 delete mode 100644 cpp/source/rocketmq/tests/SendContextTest.cpp
 delete mode 100644 cpp/source/rocketmq/tests/TimeTest.cpp
 delete mode 100644 cpp/source/stats/tests/BUILD.bazel
 delete mode 100644 cpp/source/stats/tests/PublishStatsTest.cpp


[rocketmq-clients] 03/04: WIP

Posted by aa...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

aaronai pushed a commit to branch java_dev
in repository https://gitbox.apache.org/repos/asf/rocketmq-clients.git

commit 60e25dc3569991929850401d9ebb45dc84102034
Author: Aaron Ai <aa...@apache.org>
AuthorDate: Wed Aug 3 13:08:33 2022 +0800

    WIP
---
 cpp/source/base/tests/AssignmentTest.cpp | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/cpp/source/base/tests/AssignmentTest.cpp b/cpp/source/base/tests/AssignmentTest.cpp
index c5e29aa..dcb3e58 100644
--- a/cpp/source/base/tests/AssignmentTest.cpp
+++ b/cpp/source/base/tests/AssignmentTest.cpp
@@ -32,9 +32,9 @@ public:
 };
 
 TEST_F(AssignmentTest, testSort) {
-  // std::vector<rmq::Assignment> assignments;
-  // std::sort(assignments.begin(), assignments.end(),
-  //           [](const rmq::Assignment& lhs, const rmq::Assignment& rhs) { return lhs < rhs; });
+  std::vector<rmq::Assignment> assignments;
+  std::sort(assignments.begin(), assignments.end(),
+            [](const rmq::Assignment& lhs, const rmq::Assignment& rhs) { return lhs < rhs; });
 }
 
 ROCKETMQ_NAMESPACE_END
\ No newline at end of file


[rocketmq-clients] 02/04: WIP

Posted by aa...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

aaronai pushed a commit to branch java_dev
in repository https://gitbox.apache.org/repos/asf/rocketmq-clients.git

commit c3b99b024abc9328c5cd7f3ed52552b70a71e52c
Author: Aaron Ai <aa...@apache.org>
AuthorDate: Wed Aug 3 11:58:23 2022 +0800

    WIP
---
 cpp/source/base/tests/AssignmentTest.cpp | 40 +++++++++++++++++++++++
 cpp/source/base/tests/BUILD.bazel        | 54 ++++++++++++++++++++++++++++++++
 2 files changed, 94 insertions(+)

diff --git a/cpp/source/base/tests/AssignmentTest.cpp b/cpp/source/base/tests/AssignmentTest.cpp
new file mode 100644
index 0000000..c5e29aa
--- /dev/null
+++ b/cpp/source/base/tests/AssignmentTest.cpp
@@ -0,0 +1,40 @@
+/*
+ * 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.
+ */
+ 
+#include "gtest/gtest.h"
+#include <algorithm>
+#include "rocketmq/RocketMQ.h"
+#include "Protocol.h"
+
+ROCKETMQ_NAMESPACE_BEGIN
+
+class AssignmentTest : public testing::Test {
+public:
+  void SetUp() override {
+  }
+
+  void TearDown() override {
+  }
+};
+
+TEST_F(AssignmentTest, testSort) {
+  // std::vector<rmq::Assignment> assignments;
+  // std::sort(assignments.begin(), assignments.end(),
+  //           [](const rmq::Assignment& lhs, const rmq::Assignment& rhs) { return lhs < rhs; });
+}
+
+ROCKETMQ_NAMESPACE_END
\ No newline at end of file
diff --git a/cpp/source/base/tests/BUILD.bazel b/cpp/source/base/tests/BUILD.bazel
new file mode 100644
index 0000000..6eacec9
--- /dev/null
+++ b/cpp/source/base/tests/BUILD.bazel
@@ -0,0 +1,54 @@
+load("@rules_cc//cc:defs.bzl", "cc_test")
+
+base_deps = [
+    "//source/base:base_library",
+    "@com_google_googletest//:gtest_main",
+]
+
+# cc_test(
+#     name = "message_builder_test",
+#     srcs = [
+#         "MessageBuilderTest.cpp",
+#     ],
+#     deps = base_deps,
+# )
+
+cc_test(
+    name = "assignment_test",
+    srcs = [
+        "AssignmentTest.cpp",
+    ],
+    deps = base_deps,
+)
+
+# cc_test(
+#     name = "message_queue_test",
+#     srcs = [
+#         "MessageQueueTest.cpp",
+#     ],
+#     deps = base_deps,
+# )
+
+# cc_test(
+#     name = "configuration_test",
+#     srcs = [
+#         "ConfigurationTest.cpp",
+#     ],
+#     deps = base_deps,
+# )
+
+# cc_test(
+#     name = "mix_all_test",
+#     srcs = [
+#         "MixAllTest.cpp",
+#     ],
+#     deps = base_deps,
+# )
+
+# cc_test(
+#     name = "retry_policy_test",
+#     srcs = [
+#         "RetryPolicyTest.cpp",
+#     ],
+#     deps = base_deps,
+# )
\ No newline at end of file


[rocketmq-clients] 04/04: Add remote cache

Posted by aa...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

aaronai pushed a commit to branch java_dev
in repository https://gitbox.apache.org/repos/asf/rocketmq-clients.git

commit 896d75308bd534044279f695e1ea4c43fc897f00
Author: Aaron Ai <aa...@apache.org>
AuthorDate: Wed Aug 3 13:24:20 2022 +0800

    Add remote cache
---
 .github/workflows/cpp_coverage.yml       | 4 ++--
 cpp/source/base/tests/AssignmentTest.cpp | 7 ++++---
 2 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/.github/workflows/cpp_coverage.yml b/.github/workflows/cpp_coverage.yml
index 7dab30f..de13042 100644
--- a/.github/workflows/cpp_coverage.yml
+++ b/.github/workflows/cpp_coverage.yml
@@ -4,7 +4,7 @@ on:
     types: [opened, reopened, synchronize]
   push:
     branches:
-      - master
+      - java_dev
 # mainly refer to: https://github.com/merkrafter/Merkompiler/blob/development/.github/workflows/quality_assurance.yml
 jobs:
   calculate-coverage:
@@ -13,7 +13,7 @@ jobs:
       - uses: actions/checkout@v2
       - name: Generate coverage report
         working-directory: ./cpp
-        run: bazel coverage  //...
+        run: bazel coverage -config=remote --remote_header=x-buildbuddy-api-key=${{ secrets.BUILD_BUDDY_API_KEY }} //...
       - name: Upload to Codecov
         uses: codecov/codecov-action@v2.0.2
         with:
diff --git a/cpp/source/base/tests/AssignmentTest.cpp b/cpp/source/base/tests/AssignmentTest.cpp
index dcb3e58..dc3e67d 100644
--- a/cpp/source/base/tests/AssignmentTest.cpp
+++ b/cpp/source/base/tests/AssignmentTest.cpp
@@ -14,11 +14,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
- 
-#include "gtest/gtest.h"
+
 #include <algorithm>
-#include "rocketmq/RocketMQ.h"
+
 #include "Protocol.h"
+#include "gtest/gtest.h"
+#include "rocketmq/RocketMQ.h"
 
 ROCKETMQ_NAMESPACE_BEGIN
 


[rocketmq-clients] 01/04: Delete redundant test of cpp

Posted by aa...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

aaronai pushed a commit to branch java_dev
in repository https://gitbox.apache.org/repos/asf/rocketmq-clients.git

commit 4c4a1a0f233ab75ce9f1d893817c1dc7a46454c1
Author: Aaron Ai <aa...@apache.org>
AuthorDate: Wed Aug 3 11:21:01 2022 +0800

    Delete redundant test of cpp
---
 .../{java_coverage.yml => cpp_coverage.yml}        |  19 +--
 .github/workflows/java_coverage.yml                |   1 +
 cpp/source/base/tests/AssignmentTest.cpp           |  40 ------
 cpp/source/base/tests/BUILD.bazel                  |  54 -------
 cpp/source/base/tests/ConfigurationTest.cpp        |  54 -------
 cpp/source/base/tests/MessageBuilderTest.cpp       |  56 --------
 cpp/source/base/tests/MessageQueueTest.cpp         |  38 -----
 cpp/source/base/tests/MixAllTest.cpp               |  38 -----
 cpp/source/base/tests/RetryPolicyTest.cpp          |  38 -----
 cpp/source/concurrent/tests/BUILD.bazel            |  26 ----
 cpp/source/concurrent/tests/CountdownLatchTest.cpp |  72 ----------
 cpp/source/rocketmq/tests/BUILD.bazel              |  46 ------
 cpp/source/rocketmq/tests/ClientImplTest.cpp       |  36 -----
 cpp/source/rocketmq/tests/SendContextTest.cpp      |  33 -----
 cpp/source/rocketmq/tests/TimeTest.cpp             |  31 -----
 cpp/source/stats/tests/BUILD.bazel                 |  28 ----
 cpp/source/stats/tests/PublishStatsTest.cpp        | 155 ---------------------
 17 files changed, 7 insertions(+), 758 deletions(-)

diff --git a/.github/workflows/java_coverage.yml b/.github/workflows/cpp_coverage.yml
similarity index 56%
copy from .github/workflows/java_coverage.yml
copy to .github/workflows/cpp_coverage.yml
index 35c647e..7dab30f 100644
--- a/.github/workflows/java_coverage.yml
+++ b/.github/workflows/cpp_coverage.yml
@@ -1,30 +1,23 @@
-name: Java Coverage
+name: CPP Coverage
 on:
   pull_request:
     types: [opened, reopened, synchronize]
-    paths:
-      - "java/**"
   push:
     branches:
       - master
-    paths:
-      - "java/**"
 # mainly refer to: https://github.com/merkrafter/Merkompiler/blob/development/.github/workflows/quality_assurance.yml
 jobs:
   calculate-coverage:
     runs-on: ubuntu-latest
     steps:
-      - uses: actions/checkout@master
-      - name: Set up JDK 11
-        uses: actions/setup-java@v2
-        with:
-          java-version: "11"
-          distribution: "adopt"
+      - uses: actions/checkout@v2
       - name: Generate coverage report
-        run: mvn test --file ./java/pom.xml
+        working-directory: ./cpp
+        run: bazel coverage  //...
       - name: Upload to Codecov
         uses: codecov/codecov-action@v2.0.2
         with:
-          file: ./java/client/target/site/jacoco/jacoco.xml
+          file: ./cpp/bazel-out/_coverage/_coverage_report.dat
+          flags: cpp
           fail_ci_if_error: true
           verbose: true
diff --git a/.github/workflows/java_coverage.yml b/.github/workflows/java_coverage.yml
index 35c647e..3fb8e5e 100644
--- a/.github/workflows/java_coverage.yml
+++ b/.github/workflows/java_coverage.yml
@@ -26,5 +26,6 @@ jobs:
         uses: codecov/codecov-action@v2.0.2
         with:
           file: ./java/client/target/site/jacoco/jacoco.xml
+          flags: java
           fail_ci_if_error: true
           verbose: true
diff --git a/cpp/source/base/tests/AssignmentTest.cpp b/cpp/source/base/tests/AssignmentTest.cpp
deleted file mode 100644
index 118e12e..0000000
--- a/cpp/source/base/tests/AssignmentTest.cpp
+++ /dev/null
@@ -1,40 +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.
- */
- 
-#include "gtest/gtest.h"
-#include <algorithm>
-
-#include "Protocol.h"
-
-ROCKETMQ_NAMESPACE_BEGIN
-
-class AssignmentTest : public testing::Test {
-public:
-  void SetUp() override {
-  }
-
-  void TearDown() override {
-  }
-};
-
-TEST_F(AssignmentTest, testSort) {
-  std::vector<rmq::Assignment> assignments;
-  std::sort(assignments.begin(), assignments.end(),
-            [](const rmq::Assignment& lhs, const rmq::Assignment& rhs) { return lhs < rhs; });
-}
-
-ROCKETMQ_NAMESPACE_END
\ No newline at end of file
diff --git a/cpp/source/base/tests/BUILD.bazel b/cpp/source/base/tests/BUILD.bazel
deleted file mode 100644
index 4037b9d..0000000
--- a/cpp/source/base/tests/BUILD.bazel
+++ /dev/null
@@ -1,54 +0,0 @@
-load("@rules_cc//cc:defs.bzl", "cc_test")
-
-base_deps = [
-    "//source/base:base_library",
-    "@com_google_googletest//:gtest_main",
-]
-
-cc_test(
-    name = "message_builder_test",
-    srcs = [
-        "MessageBuilderTest.cpp",
-    ],
-    deps = base_deps,
-)
-
-cc_test(
-    name = "assignment_test",
-    srcs = [
-        "AssignmentTest.cpp",
-    ],
-    deps = base_deps,
-)
-
-cc_test(
-    name = "message_queue_test",
-    srcs = [
-        "MessageQueueTest.cpp",
-    ],
-    deps = base_deps,
-)
-
-cc_test(
-    name = "configuration_test",
-    srcs = [
-        "ConfigurationTest.cpp",
-    ],
-    deps = base_deps,
-)
-
-cc_test(
-    name = "mix_all_test",
-    srcs = [
-        "MixAllTest.cpp",
-    ],
-    deps = base_deps,
-)
-
-cc_test(
-    name = "retry_policy_test",
-    srcs = [
-        "RetryPolicyTest.cpp",
-    ],
-    deps = base_deps,
-)
\ No newline at end of file
diff --git a/cpp/source/base/tests/ConfigurationTest.cpp b/cpp/source/base/tests/ConfigurationTest.cpp
deleted file mode 100644
index 9174e39..0000000
--- a/cpp/source/base/tests/ConfigurationTest.cpp
+++ /dev/null
@@ -1,54 +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.
- */
-
-#include <chrono>
-#include <memory>
-
-#include "gtest/gtest.h"
-#include "rocketmq/Configuration.h"
-
-ROCKETMQ_NAMESPACE_BEGIN
-
-class ConfigurationTest : public testing::Test {
-public:
-protected:
-  std::string               endpoints_{"8.8.8.8:80;8.8.4.4:80"};
-  std::chrono::milliseconds request_timeout_{std::chrono::seconds(1)};
-};
-
-TEST_F(ConfigurationTest, testEndpoints) {
-  auto configuration = Configuration::newBuilder().withEndpoints(endpoints_).build();
-  ASSERT_EQ(endpoints_, configuration.endpoints());
-}
-
-TEST_F(ConfigurationTest, testCredentialsProvider) {
-  std::string access_key           = "ak";
-  std::string access_secret        = "as";
-  auto        credentials_provider = std::make_shared<StaticCredentialsProvider>(access_key, access_secret);
-  auto        configuration        = Configuration::newBuilder().withCredentialsProvider(credentials_provider).build();
-  auto        credentials          = configuration.credentialsProvider()->getCredentials();
-
-  ASSERT_EQ(access_key, credentials.accessKey());
-  ASSERT_EQ(access_secret, credentials.accessSecret());
-}
-
-TEST_F(ConfigurationTest, testRequestTimeout) {
-  auto configuration = Configuration::newBuilder().withRequestTimeout(request_timeout_).build();
-  ASSERT_EQ(request_timeout_, configuration.requestTimeout());
-}
-
-ROCKETMQ_NAMESPACE_END
\ No newline at end of file
diff --git a/cpp/source/base/tests/MessageBuilderTest.cpp b/cpp/source/base/tests/MessageBuilderTest.cpp
deleted file mode 100644
index 9ad4d58..0000000
--- a/cpp/source/base/tests/MessageBuilderTest.cpp
+++ /dev/null
@@ -1,56 +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.
- */
-#include <vector>
-
-#include "MessageExt.h"
-#include "gtest/gtest.h"
-#include "rocketmq/Message.h"
-
-ROCKETMQ_NAMESPACE_BEGIN
-
-class MessageBuilderTest : public testing::Test {
-protected:
-  std::string topic_{"TestTopic"};
-  std::string tag_{"TagA"};
-  std::vector<std::string> keys_{"k1", "k2"};
-  std::string body_{"sample body content"};
-  std::string group_{"message-group"};
-};
-
-TEST_F(MessageBuilderTest, testBuilder) {
-  MessageConstPtr message =
-      Message::newBuilder().withTopic(topic_).withTag(tag_).withKeys(keys_).withBody(body_).build();
-  ASSERT_EQ(topic_, message->topic());
-  ASSERT_EQ(tag_, message->tag());
-  ASSERT_TRUE(keys_ == message->keys());
-  ASSERT_EQ(body_, message->body());
-  ASSERT_EQ(false, message->traceContext().has_value());
-}
-
-TEST_F(MessageBuilderTest, testBuilder2) {
-  for (std::size_t i = 0; i < 128; i++) {
-    MessageConstPtr message =
-        Message::newBuilder().withTopic(topic_).withTag(tag_).withKeys(keys_).withBody(body_).build();
-    ASSERT_EQ(topic_, message->topic());
-    ASSERT_EQ(tag_, message->tag());
-    ASSERT_TRUE(keys_ == message->keys());
-    ASSERT_EQ(body_, message->body());
-    ASSERT_EQ(false, message->traceContext().has_value());
-  }
-}
-
-ROCKETMQ_NAMESPACE_END
\ No newline at end of file
diff --git a/cpp/source/base/tests/MessageQueueTest.cpp b/cpp/source/base/tests/MessageQueueTest.cpp
deleted file mode 100644
index 805934e..0000000
--- a/cpp/source/base/tests/MessageQueueTest.cpp
+++ /dev/null
@@ -1,38 +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.
- */
- 
-#include <apache/rocketmq/v2/definition.pb.h>
-#include <cstdint>
-
-#include "absl/container/flat_hash_map.h"
-#include "google/protobuf/map.h"
-#include "gtest/gtest.h"
-
-#include "Protocol.h"
-
-ROCKETMQ_NAMESPACE_BEGIN
-
-class MessageQueueTest : public testing::Test {
-public:
-  void SetUp() override {
-  }
-
-  void TearDown() override {
-  }
-};
-
-ROCKETMQ_NAMESPACE_END
diff --git a/cpp/source/base/tests/MixAllTest.cpp b/cpp/source/base/tests/MixAllTest.cpp
deleted file mode 100644
index 53b019a..0000000
--- a/cpp/source/base/tests/MixAllTest.cpp
+++ /dev/null
@@ -1,38 +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.
- */
-#include <system_error>
-
-#include "MixAll.h"
-#include "absl/strings/str_split.h"
-#include "gtest/gtest.h"
-
-ROCKETMQ_NAMESPACE_BEGIN
-
-TEST(MixAllTest, testOsName) {
-  const char* os_name = MixAll::osName();
-  std::cout << os_name << std::endl;
-}
-
-TEST(MixAllTest, testValidate) {
-  auto message = Message::newBuilder().withTopic("").build();
-  std::error_code ec;
-  MixAll::validate(*message, ec);
-  ASSERT_EQ(true, (bool)ec);
-  ASSERT_TRUE(absl::StrContains(ec.message(), "illegal"));
-}
-
-ROCKETMQ_NAMESPACE_END
\ No newline at end of file
diff --git a/cpp/source/base/tests/RetryPolicyTest.cpp b/cpp/source/base/tests/RetryPolicyTest.cpp
deleted file mode 100644
index 1e3c7bf..0000000
--- a/cpp/source/base/tests/RetryPolicyTest.cpp
+++ /dev/null
@@ -1,38 +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.
- */
-#include "RetryPolicy.h"
-#include "gtest/gtest.h"
-
-ROCKETMQ_NAMESPACE_BEGIN
-
-TEST(RetryPolicyTest, testBackoff) {
-  RetryPolicy policy;
-  policy.max_attempt = 3;
-  policy.strategy = BackoffStrategy::Customized;
-  policy.initial = absl::Milliseconds(0);
-  policy.max = absl::Milliseconds(0);
-  policy.multiplier = 0.0f;
-  policy.next = {absl::Milliseconds(10), absl::Milliseconds(100), absl::Milliseconds(500)};
-
-  ASSERT_EQ(policy.backoff(1), 10);
-  ASSERT_EQ(policy.backoff(2), 100);
-  ASSERT_EQ(policy.backoff(3), 500);
-  ASSERT_EQ(policy.backoff(4), 500);
-  ASSERT_EQ(policy.backoff(10000), 500);
-}
-
-ROCKETMQ_NAMESPACE_END
\ No newline at end of file
diff --git a/cpp/source/concurrent/tests/BUILD.bazel b/cpp/source/concurrent/tests/BUILD.bazel
deleted file mode 100644
index c464ca4..0000000
--- a/cpp/source/concurrent/tests/BUILD.bazel
+++ /dev/null
@@ -1,26 +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.
-#
-cc_test(
-    name = "countdown_latch_test",
-    deps = [
-        "//source/concurrent:countdown_latch_library",
-        "@com_google_googletest//:gtest_main",
-    ],
-    srcs = [
-        "CountdownLatchTest.cpp"
-    ],
-)
\ No newline at end of file
diff --git a/cpp/source/concurrent/tests/CountdownLatchTest.cpp b/cpp/source/concurrent/tests/CountdownLatchTest.cpp
deleted file mode 100644
index e0d0c4f..0000000
--- a/cpp/source/concurrent/tests/CountdownLatchTest.cpp
+++ /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.
- */
-#include <chrono>
-#include <cstddef>
-#include <mutex>
-#include <thread>
-
-#include "CountdownLatch.h"
-#include "gtest/gtest.h"
-#include "rocketmq/RocketMQ.h"
-
-ROCKETMQ_NAMESPACE_BEGIN
-
-class CountdownLatchTest : public testing::Test {
-public:
-  void SetUp() override {
-    countdown_latch_ = absl::make_unique<CountdownLatch>(permit_);
-  }
-
-  void TearDown() override {
-  }
-
-protected:
-  const std::size_t permit_{2};
-  std::unique_ptr<CountdownLatch> countdown_latch_;
-  absl::Mutex mtx_;
-};
-
-TEST_F(CountdownLatchTest, testAwait) {
-  int count = 0;
-
-  auto lambda = [&]() {
-    std::this_thread::sleep_for(std::chrono::milliseconds(100));
-    {
-      absl::MutexLock lk(&mtx_);
-      count++;
-    }
-    countdown_latch_->countdown();
-  };
-
-  std::vector<std::thread> threads;
-  for (std::size_t i = 0; i < permit_; i++) {
-    auto t = std::thread(lambda);
-    threads.push_back(std::move(t));
-  }
-
-  countdown_latch_->await();
-
-  ASSERT_EQ(count, permit_);
-
-  for (auto& thread : threads) {
-    if (thread.joinable()) {
-      thread.join();
-    }
-  }
-}
-
-ROCKETMQ_NAMESPACE_END
\ No newline at end of file
diff --git a/cpp/source/rocketmq/tests/BUILD.bazel b/cpp/source/rocketmq/tests/BUILD.bazel
deleted file mode 100644
index 25303d7..0000000
--- a/cpp/source/rocketmq/tests/BUILD.bazel
+++ /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.
-#
-load("@rules_cc//cc:defs.bzl", "cc_test")
-
-base_deps = [
-    "//source/rocketmq:rocketmq_library",
-    "@com_google_googletest//:gtest_main",
-]
-
-cc_test(
-    name = "time_test",
-    srcs = [
-        "TimeTest.cpp",
-    ],
-    deps = base_deps,
-)
-
-cc_test(
-    name = "send_context_test",
-    srcs = [
-        "SendContextTest.cpp",
-    ],
-    deps = base_deps,
-)
-
-cc_test(
-    name = "client_impl_test",
-    srcs = [
-        "ClientImplTest.cpp",
-    ],
-    deps = base_deps,
-)
\ No newline at end of file
diff --git a/cpp/source/rocketmq/tests/ClientImplTest.cpp b/cpp/source/rocketmq/tests/ClientImplTest.cpp
deleted file mode 100644
index 3975e6b..0000000
--- a/cpp/source/rocketmq/tests/ClientImplTest.cpp
+++ /dev/null
@@ -1,36 +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.
- */
-#include <cstddef>
-#include <unordered_set>
-
-#include "ClientImpl.h"
-#include "gtest/gtest.h"
-#include "rocketmq/RocketMQ.h"
-
-ROCKETMQ_NAMESPACE_BEGIN
-
-TEST(ClientImplTest, testClientId) {
-  std::unordered_set<std::string> client_ids;
-  for (std::size_t i = 0; i < 128; i++) {
-    auto&& client_id = clientId();
-    std::cout << client_id << std::endl;
-    ASSERT_EQ(client_ids.find(client_id), client_ids.end());
-    client_ids.insert(std::move(client_id));
-  }
-}
-
-ROCKETMQ_NAMESPACE_END
\ No newline at end of file
diff --git a/cpp/source/rocketmq/tests/SendContextTest.cpp b/cpp/source/rocketmq/tests/SendContextTest.cpp
deleted file mode 100644
index e03c8b7..0000000
--- a/cpp/source/rocketmq/tests/SendContextTest.cpp
+++ /dev/null
@@ -1,33 +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.
- */
-#include <memory>
-
-#include "SendContext.h"
-#include "gtest/gtest.h"
-
-ROCKETMQ_NAMESPACE_BEGIN
-
-TEST(SendContextTest, testBasics) {
-  auto message = Message::newBuilder().withBody("body").withTopic("topic").withGroup("group0").withTag("TagA").build();
-  auto callback = [](const std::error_code&, const SendReceipt&) {};
-  std::weak_ptr<ProducerImpl> producer;
-  std::vector<rmq::MessageQueue> message_queues;
-  auto send_context = std::make_shared<SendContext>(producer, std::move(message), callback, message_queues);
-  send_context.reset();
-}
-
-ROCKETMQ_NAMESPACE_END
\ No newline at end of file
diff --git a/cpp/source/rocketmq/tests/TimeTest.cpp b/cpp/source/rocketmq/tests/TimeTest.cpp
deleted file mode 100644
index 898aef0..0000000
--- a/cpp/source/rocketmq/tests/TimeTest.cpp
+++ /dev/null
@@ -1,31 +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.
- */
-
-#include "absl/time/time.h"
-#include "gtest/gtest.h"
-#include "rocketmq/RocketMQ.h"
-
-ROCKETMQ_NAMESPACE_BEGIN
-
-TEST(TimeTest, testTimeHelpers) {
-  auto duration = absl::Seconds(1) + absl::Nanoseconds(100);
-  auto seconds  = absl::ToInt64Seconds(duration);
-  ASSERT_EQ(1, seconds);
-  ASSERT_EQ(100, absl::ToInt64Nanoseconds(duration - absl::Seconds(seconds)));
-}
-
-ROCKETMQ_NAMESPACE_END
\ No newline at end of file
diff --git a/cpp/source/stats/tests/BUILD.bazel b/cpp/source/stats/tests/BUILD.bazel
deleted file mode 100644
index 10005d0..0000000
--- a/cpp/source/stats/tests/BUILD.bazel
+++ /dev/null
@@ -1,28 +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.
-#
-load("@rules_cc//cc:defs.bzl", "cc_test")
-
-cc_test(
-    name = "publish_stats_test",
-    srcs = [
-        "PublishStatsTest.cpp",
-    ],
-    deps = [
-        "//source/stats",
-        "@com_google_googletest//:gtest_main",
-    ],
-)
\ No newline at end of file
diff --git a/cpp/source/stats/tests/PublishStatsTest.cpp b/cpp/source/stats/tests/PublishStatsTest.cpp
deleted file mode 100644
index 7c4d997..0000000
--- a/cpp/source/stats/tests/PublishStatsTest.cpp
+++ /dev/null
@@ -1,155 +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.
- */
-
-#include <chrono>
-#include <iostream>
-#include <mutex>
-#include <thread>
-
-#include "PublishStats.h"
-#include "gtest/gtest.h"
-
-ROCKETMQ_NAMESPACE_BEGIN
-
-class Handler : public opencensus::stats::StatsExporter::Handler {
-public:
-  void ExportViewData(
-      const std::vector<std::pair<opencensus::stats::ViewDescriptor, opencensus::stats::ViewData>>& data) override {
-    std::cout << "================================================================================" << std::endl;
-    for (const auto& datum : data) {
-      const auto& view_data = datum.second;
-      const auto& descriptor = datum.first;
-      auto start_times = view_data.start_times();
-      auto columns = descriptor.columns();
-
-      switch (view_data.type()) {
-        case opencensus::stats::ViewData::Type::kInt64: {
-          auto data_map = view_data.int_data();
-          for (const auto& entry : data_map) {
-            absl::Time time = start_times[entry.first];
-            std::string line;
-            line.append(absl::FormatTime(time)).append(" ");
-            line.append(descriptor.name());
-            line.append("{");
-            for (std::size_t i = 0; i < columns.size(); i++) {
-              line.append(columns[i].name()).append("=").append(entry.first[i]);
-              if (i < columns.size() - 1) {
-                line.append(", ");
-              } else {
-                line.append("} ==> ");
-              }
-            }
-            line.append(std::to_string(entry.second));
-            println(line);
-          }
-          break;
-        }
-        case opencensus::stats::ViewData::Type::kDouble: {
-          exportDatum(datum.first, view_data.start_time(), view_data.end_time(), view_data.double_data());
-          break;
-        }
-        case opencensus::stats::ViewData::Type::kDistribution: {
-          for (const auto& entry : view_data.distribution_data()) {
-            std::string line(descriptor.name());
-            line.append("{");
-            for (std::size_t i = 0; i < columns.size(); i++) {
-              line.append(columns[i].name()).append("=").append(entry.first[i]);
-              if (i < columns.size() - 1) {
-                line.append(", ");
-              } else {
-                line.append("} ==> ");
-              }
-            }
-            line.append(entry.second.DebugString());
-            println(line);
-
-            println(absl::StrJoin(entry.second.bucket_boundaries().lower_boundaries(), ","));
-          }
-          break;
-        }
-      }
-    }
-  }
-
-  template <typename T>
-  void exportDatum(const opencensus::stats::ViewDescriptor& descriptor,
-                   absl::Time start_time,
-                   absl::Time end_time,
-                   const opencensus::stats::ViewData::DataMap<T>& data) {
-    if (data.empty()) {
-      // std::cout << "No data for " << descriptor.name() << std::endl;
-      return;
-    }
-
-    for (const auto& row : data) {
-      for (std::size_t column = 0; column < descriptor.columns().size(); column++) {
-        std::cout << descriptor.name() << "[" << descriptor.columns()[column].name() << "=" << row.first[column] << "]"
-                  << DataToString(row.second) << std::endl;
-      }
-    }
-  }
-
-  std::mutex console_mtx;
-  void println(const std::string& line) {
-    std::lock_guard<std::mutex> lk(console_mtx);
-    std::cout << line << std::endl;
-  }
-
-  // Functions to format data for different aggregation types.
-  std::string DataToString(double data) {
-    return absl::StrCat(": ", data, "\n");
-  }
-  std::string DataToString(int64_t data) {
-    return absl::StrCat(": ", data, "\n");
-  }
-  std::string DataToString(const opencensus::stats::Distribution& data) {
-    std::string output = "\n";
-    std::vector<std::string> lines = absl::StrSplit(data.DebugString(), '\n');
-    // Add indent.
-    for (const auto& line : lines) {
-      absl::StrAppend(&output, "    ", line, "\n");
-    }
-    return output;
-  }
-};
-
-TEST(StatsTest, testBasics) {
-  std::string t1("T1");
-  std::string t2("T2");
-  PublishStats metrics;
-  opencensus::stats::StatsExporter::SetInterval(absl::Seconds(5));
-  opencensus::stats::StatsExporter::RegisterPushHandler(absl::make_unique<Handler>());
-  std::atomic_bool stopped{false};
-  auto generator = [&]() {
-    while (!stopped) {
-      for (std::size_t i = 0; i < 10; i++) {
-        opencensus::stats::Record({{metrics.latency(), i * 10}},
-                                  {{Tag::topicTag(), t1}, {Tag::clientIdTag(), "client-0"}});
-      }
-      std::this_thread::sleep_for(std::chrono::seconds(1));
-    }
-  };
-  std::thread feeder(generator);
-
-  std::this_thread::sleep_for(std::chrono::seconds(10));
-  stopped.store(true);
-  if (feeder.joinable()) {
-    feeder.join();
-  }
-}
-
-ROCKETMQ_NAMESPACE_END