3131#include < gtest/gtest.h>
3232#include < condition_variable>
3333
34+ #include " test_utils.h"
35+
3436#include < ur_client_library/comm/pipeline.h>
3537#include < ur_client_library/comm/tcp_server.h>
3638#include < ur_client_library/comm/stream.h>
@@ -45,8 +47,7 @@ class PipelineTest : public ::testing::Test
4547protected:
4648 void SetUp ()
4749 {
48- server_.reset (new comm::TCPServer (60002 ));
49- server_->setConnectCallback (std::bind (&PipelineTest::connectionCallback, this , std::placeholders::_1));
50+ server_.reset (new TestableTcpServer (60002 ));
5051 server_->start ();
5152
5253 // Setup pipeline
@@ -68,28 +69,7 @@ class PipelineTest : public ::testing::Test
6869 server_.reset ();
6970 }
7071
71- void connectionCallback (const socket_t filedescriptor)
72- {
73- std::lock_guard<std::mutex> lk (connect_mutex_);
74- client_fd_ = filedescriptor;
75- connect_cv_.notify_one ();
76- connection_callback_ = true ;
77- }
78-
79- bool waitForConnectionCallback (int milliseconds = 100 )
80- {
81- std::unique_lock<std::mutex> lk (connect_mutex_);
82- if (connect_cv_.wait_for (lk, std::chrono::milliseconds (milliseconds)) == std::cv_status::no_timeout ||
83- connection_callback_ == true )
84- {
85- connection_callback_ = false ;
86- return true ;
87- }
88- return false ;
89- }
90-
91- std::unique_ptr<comm::TCPServer> server_;
92- socket_t client_fd_;
72+ std::unique_ptr<TestableTcpServer> server_;
9373
9474 std::unique_ptr<comm::URStream<rtde_interface::RTDEPackage>> stream_;
9575 std::unique_ptr<rtde_interface::RTDEParser> parser_;
@@ -151,13 +131,13 @@ TEST_F(PipelineTest, get_product_from_stopped_pipeline)
151131
152132TEST_F (PipelineTest, get_product_from_running_pipeline)
153133{
154- waitForConnectionCallback ();
134+ server_-> waitForConnectionCallback ();
155135 pipeline_->run ();
156136
157137 // RTDE package with timestamp
158138 uint8_t data_package[] = { 0x00 , 0x0c , 0x55 , 0x01 , 0x40 , 0xbb , 0xbf , 0xdb , 0xa5 , 0xe3 , 0x53 , 0xf7 };
159139 size_t written;
160- server_->write (client_fd_, data_package, sizeof (data_package), written);
140+ server_->write (data_package, sizeof (data_package), written);
161141
162142 std::unique_ptr<rtde_interface::RTDEPackage> urpackage;
163143 std::chrono::milliseconds timeout{ 500 };
@@ -178,13 +158,13 @@ TEST_F(PipelineTest, get_product_from_running_pipeline)
178158
179159TEST_F (PipelineTest, stop_pipeline)
180160{
181- waitForConnectionCallback ();
161+ server_-> waitForConnectionCallback ();
182162 pipeline_->run ();
183163
184164 // RTDE package with timestamp
185165 uint8_t data_package[] = { 0x00 , 0x0c , 0x55 , 0x01 , 0x40 , 0xbb , 0xbf , 0xdb , 0xa5 , 0xe3 , 0x53 , 0xf7 };
186166 size_t written;
187- server_->write (client_fd_, data_package, sizeof (data_package), written);
167+ server_->write (data_package, sizeof (data_package), written);
188168
189169 std::unique_ptr<rtde_interface::RTDEPackage> urpackage;
190170 std::chrono::milliseconds timeout{ 500 };
@@ -206,13 +186,13 @@ TEST_F(PipelineTest, consumer_pipeline)
206186 pipeline_.reset (
207187 new comm::Pipeline<rtde_interface::RTDEPackage>(*producer_.get (), &consumer, " RTDE_PIPELINE" , notifier_));
208188 pipeline_->init ();
209- waitForConnectionCallback ();
189+ server_-> waitForConnectionCallback ();
210190 pipeline_->run ();
211191
212192 // RTDE package with timestamp
213193 uint8_t data_package[] = { 0x00 , 0x0c , 0x55 , 0x01 , 0x40 , 0xbb , 0xbf , 0xdb , 0xa5 , 0xe3 , 0x53 , 0xf7 };
214194 size_t written;
215- server_->write (client_fd_, data_package, sizeof (data_package), written);
195+ server_->write (data_package, sizeof (data_package), written);
216196
217197 // Wait for data to be consumed
218198 int max_retries = 3 ;
@@ -223,7 +203,7 @@ TEST_F(PipelineTest, consumer_pipeline)
223203 {
224204 break ;
225205 }
226- server_->write (client_fd_, data_package, sizeof (data_package), written);
206+ server_->write (data_package, sizeof (data_package), written);
227207 count++;
228208 }
229209 EXPECT_LT (count, max_retries);
0 commit comments