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 <aaro...@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