You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rocketmq.apache.org by di...@apache.org on 2019/08/19 13:59:12 UTC
[rocketmq-ons-cpp] branch master updated: Add C Test Case (#5)
This is an automated email from the ASF dual-hosted git repository.
dinglei pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/rocketmq-ons-cpp.git
The following commit(s) were added to refs/heads/master by this push:
new 9ec3e24 Add C Test Case (#5)
9ec3e24 is described below
commit 9ec3e24d49119f46cc29b905d792a6f196f54778
Author: dinglei <li...@163.com>
AuthorDate: Mon Aug 19 21:58:57 2019 +0800
Add C Test Case (#5)
---
CMakeLists.txt | 1 +
src/test/c/CMakeLists.txt | 12 +++++++++++
src/test/c/CProducerTest.cpp | 43 +++++++++++++++++++++++++++++++++++++
src/test/c/CPushConsumerTest.cpp | 46 ++++++++++++++++++++++++++++++++++++++++
src/test/c/TestCMain.cpp | 6 ++++++
5 files changed, 108 insertions(+)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index e51dec7..39c13ff 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -44,6 +44,7 @@ if (BUILD_TESTS)
enable_testing()
add_subdirectory(3rd_party/google_test)
add_subdirectory(src/test/cpp)
+ add_subdirectory(src/test/c)
endif ()
if (BUILD_DEMOS)
diff --git a/src/test/c/CMakeLists.txt b/src/test/c/CMakeLists.txt
new file mode 100644
index 0000000..78599e9
--- /dev/null
+++ b/src/test/c/CMakeLists.txt
@@ -0,0 +1,12 @@
+include_directories(${CMAKE_SOURCE_DIR}/src/test/cpp
+ ${CMAKE_SOURCE_DIR}/src/main/c/include)
+
+macro(add_gtest test_name test_source)
+ add_executable(${test_name} ${test_source} TestCMain.cpp)
+ target_link_libraries(${test_name} gtest ${LIBRARY_NAME})
+ add_test(NAME ${test_name} COMMAND ${test_name})
+ set_target_properties(${test_name} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/tests)
+endmacro()
+
+add_gtest(cproducer_test CProducerTest.cpp)
+add_gtest(cpushconsumer_test CPushConsumerTest.cpp)
diff --git a/src/test/c/CProducerTest.cpp b/src/test/c/CProducerTest.cpp
new file mode 100644
index 0000000..4bde86e
--- /dev/null
+++ b/src/test/c/CProducerTest.cpp
@@ -0,0 +1,43 @@
+#include <iostream>
+#include <chrono>
+#include <gtest/gtest.h>
+#include <memory>
+
+#include <mutex>
+#include <thread>
+#include <condition_variable>
+
+#include "CProducer.h"
+
+class CProducerTest : public testing::Test {
+protected:
+ void SetUp() override {
+ producer_ = CreateProducer("GID_opensource_unit_test");
+ SetProducerNameServerAddress(producer_, "47.100.33.127:9876");
+ SetProducerSessionCredentials(producer_, "AK", "SK", "LOCAL");
+ StartProducer(producer_);
+ }
+
+ void TearDown() override {
+ ShutdownProducer(producer_);
+ DestroyProducer(producer_);
+ producer_ = NULL;
+ }
+
+ CProducer *producer_;
+};
+
+TEST_F(CProducerTest, test_setUp) {
+ ASSERT_TRUE(nullptr != producer_);
+}
+
+TEST_F(CProducerTest, testSendMessage_Normal) {
+ CMessage *message = CreateMessage("t_opensource_unit_test");
+ SetMessageKeys(message, "This is Key");
+ SetMessageTags(message, "TAG");
+ SetMessageBody(message, "This is Message Body.");
+ CSendResult sendResult;
+ SendMessageSync(producer_, message, &sendResult);
+ std::cout<<"Send OK,MessageID:"<< sendResult.msgId<<std::endl;
+ ASSERT_TRUE(E_SEND_OK == sendResult.sendStatus);
+}
\ No newline at end of file
diff --git a/src/test/c/CPushConsumerTest.cpp b/src/test/c/CPushConsumerTest.cpp
new file mode 100644
index 0000000..9926785
--- /dev/null
+++ b/src/test/c/CPushConsumerTest.cpp
@@ -0,0 +1,46 @@
+#include <iostream>
+#include <chrono>
+#include <gtest/gtest.h>
+#include <memory>
+
+#include <mutex>
+#include <thread>
+#include <condition_variable>
+
+#include "CPushConsumer.h"
+
+int onMessages(CPushConsumer *consumer, CMessageExt *message) {
+ std::cout << "Receive Message:" << GetMessageId(message) << std::endl;
+ return E_CONSUME_SUCCESS;
+}
+
+class CPushConsumerTest : public testing::Test {
+protected:
+ void SetUp() override {
+ consumer_ = CreatePushConsumer("GID_opensource_unit_test");
+ SetPushConsumerNameServerAddress(consumer_, "47.100.33.127:9876");
+ SetPushConsumerSessionCredentials(consumer_, "AK", "SK", "LOCAL");
+ //StartPushConsumer(consumer_);
+ }
+
+ void TearDown() override {
+ //ShutdownPushConsumer(consumer_);
+ DestroyPushConsumer(consumer_);
+ consumer_ = NULL;
+ }
+
+ CPushConsumer *consumer_;
+};
+
+TEST_F(CPushConsumerTest, test_setUp) {
+ ASSERT_TRUE(nullptr != consumer_);
+}
+
+TEST_F(CPushConsumerTest, test_ConsumeMessage) {
+ Subscribe(consumer_, "t_opensource_unit_test", "*");
+ RegisterMessageCallback(consumer_,onMessages);
+ StartPushConsumer(consumer_);
+ std::this_thread::sleep_for(std::chrono::milliseconds(10 * 1000));
+ ASSERT_TRUE(nullptr != consumer_);
+}
+
diff --git a/src/test/c/TestCMain.cpp b/src/test/c/TestCMain.cpp
new file mode 100644
index 0000000..f81367c
--- /dev/null
+++ b/src/test/c/TestCMain.cpp
@@ -0,0 +1,6 @@
+#include <gtest/gtest.h>
+
+int main(int argc, char* argv[]) {
+ ::testing::InitGoogleTest(&argc, argv);
+ return RUN_ALL_TESTS();
+}