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();
+}