Cynara : Add agent cancel waiting test 27/102427/1
authorZofia Abramowska <z.abramowska@samsung.com>
Mon, 4 Jul 2016 14:35:00 +0000 (16:35 +0200)
committerZofia Abramowska <z.abramowska@samsung.com>
Mon, 5 Dec 2016 17:14:01 +0000 (18:14 +0100)
Change-Id: I4382fa53f1631062cf6e3cdae9f6a69c0ef9b704

src/cynara-tests/common/cynara_test_agent.cpp
src/cynara-tests/common/cynara_test_agent.h
src/cynara-tests/test_cases_agent.cpp

index e2f408d..48a386c 100644 (file)
@@ -75,4 +75,11 @@ void Agent::putResponse(const AgentResponse &response, int expectedResult)
                          << "response = " << response);
 }
 
+void Agent::cancelWaiting(int expectedResult) {
+    int ret = cynara_agent_cancel_waiting(m_agent);
+    RUNNER_ASSERT_MSG(ret == expectedResult,
+                      "cynara_agent_cancel_waiting returned wrong value: "
+                         << ret << " != " << expectedResult << ".");
+}
+
 } // namespace CynaraTestAgent
index f224fa1..ae667a9 100644 (file)
@@ -32,6 +32,7 @@ public:
 
     void getRequest(AgentRequest &request, int expectedResult = CYNARA_API_SUCCESS);
     void putResponse(const AgentResponse &response, int expectedResult = CYNARA_API_SUCCESS);
+    void cancelWaiting(int expectedResult = CYNARA_API_SUCCESS);
 
 private:
     struct cynara_agent *m_agent;
index 6d90e67..dc3a675 100644 (file)
@@ -460,6 +460,23 @@ void tcag15_agent_disconnects_func()
     client.process(CYNARA_API_SUCCESS, Client::TimeoutExpectation::EXPECT_NO_TIMEOUT, 2);
 }
 
+void tcag16_agent_cancel_waiting_func()
+{
+    Agent agent;
+    AgentRequest request;
+
+    auto testTimeLimit = std::chrono::seconds(2);
+    auto cancelRequest = [&agent]() {
+        agent.cancelWaiting();
+    };
+    auto hangOnGetRequest = [&agent, &request]() {
+        agent.getRequest(request, CYNARA_API_INTERRUPTED);
+    };
+
+    Timeout::callAndWait(testTimeLimit, Timeout::ExpectMode::TIMEOUT,
+                         cancelRequest, hangOnGetRequest);
+}
+
 RUNNER_TEST_GROUP_INIT(cynara_agent_tests)
 
 RUN_CYNARA_TEST(tcag01_set_agent_type_policy_without_plugin)
@@ -477,3 +494,4 @@ RUN_CYNARA_TEST(tcag12_create_two_requests)
 RUN_CYNARA_TEST(tcag13_create_many_requests)
 RUN_CYNARA_TEST(tcag14_client_disconnects)
 RUN_CYNARA_TEST(tcag15_agent_disconnects)
+RUN_CYNARA_TEST(tcag16_agent_cancel_waiting)