5 #ifndef DDS_OCTOPUS_TESTIMPL_H 6 #define DDS_OCTOPUS_TESTIMPL_H 13 #include <condition_variable> 17 #include <boost/bind.hpp> 18 #include <boost/property_tree/json_parser.hpp> 20 #define BEGIN_OCTOPUS_MSG_MAP(name) \ 21 std::string _name() const \ 26 void _onCustomCmd(const std::string& _command, const std::string& _condition, uint64_t _senderId) \ 28 boost::property_tree::ptree root; \ 29 std::stringstream ss; \ 31 boost::property_tree::read_json(ss, root); \ 32 for (const auto& node : root) \ 34 if (node.first == dds_octopus::SOctopusProtocol_Log::class_name()) \ 36 dds_octopus::SOctopusProtocol_Log log; \ 37 log.init(node.second); \ 38 std::cout << "Task: " << log.m_sVal << std::endl; \ 42 #define OCTOPUS_MSG_HANDLER(func, cmd) \ 43 else if (node.first == cmd::class_name()) \ 46 var.init(node.second); \ 47 func(var, _senderId); \ 51 #define END_OCTOPUS_MSG_MAP \ 91 auto start_time = std::chrono::high_resolution_clock::now();
93 T* pThis = static_cast<T*>(
this);
94 std::cout <<
"================================\n";
95 std::cout <<
"Test case: " << pThis->_name() <<
"\n";
100 if (std::cv_status::timeout ==
101 m_waitCondition.wait_until(lock, start_time + std::chrono::seconds(_timeoutInSec)))
104 std::cout <<
"RESULT: FAILED. Timeout (" << _timeoutInSec <<
" sec) reached\n";
111 std::cout <<
"RESULT: OK\n";
114 std::cout <<
"RESULT: FAILED\n";
117 auto execTime = std::chrono::high_resolution_clock::now() - start_time;
118 std::chrono::milliseconds execTimeMs = std::chrono::duration_cast<std::chrono::milliseconds>(execTime);
119 std::cout <<
"Execution time: " << std::chrono::duration<double>(execTimeMs).count() <<
" s\n";
120 std::cout <<
"================================" << std::endl;
128 std::cerr <<
"Error: " << _errorMsg << std::endl;
131 void onCustomCmd(
const std::string& _command,
const std::string& _condition, uint64_t _senderId)
133 T* pThis = static_cast<T*>(
this);
134 pThis->_onCustomCmd(_command, _condition, _senderId);
std::mutex m_waitMutex
Definition: OctopusTestImpl.h:140
Definition: OctopusTestImpl.h:62
ETestStatus execute(const size_t _timeoutInSec)
Definition: OctopusTestImpl.h:89
COctopusTestImpl(const SOptions_t &_options)
Definition: OctopusTestImpl.h:70
dds::intercom_api::CCustomCmd m_customCmd
Definition: OctopusTestImpl.h:139
Definition: Intercom.h:93
std::condition_variable m_waitCondition
Definition: OctopusTestImpl.h:141
ETestStatus
Definition: OctopusTestImpl.h:59
void init()
Definition: OctopusTestImpl.h:81
void start(const std::string &_sessionID="")
Start DDS service, i.e. receiving and sending messages.
Definition: Intercom.cpp:37
~COctopusTestImpl()
Definition: OctopusTestImpl.h:76
Definition: dds-octopus/src/Options.h:23
EErrorCode
Error codes for intercom API.
Definition: IntercomErrorCodes.h:17
dds::intercom_api::CIntercomService m_intercomService
Definition: OctopusTestImpl.h:138
ETestStatus m_status
Definition: OctopusTestImpl.h:142
Definition: AgentConnectionManager.h:13
Definition: Intercom.h:39
void subscribeOnError(errorSignal_t::slot_function_type _subscriber)
Subscribe on error messages from DDS intercom service.
Definition: Intercom.cpp:25
void subscribe(signal_t::slot_function_type _subscriber)
Definition: Intercom.cpp:102
SOptions_t m_options
Definition: OctopusTestImpl.h:143
void onServiceError(const dds::intercom_api::EErrorCode _errorCode, const std::string &_errorMsg)
Definition: OctopusTestImpl.h:126
Definition: OctopusTestImpl.h:63
Definition: OctopusTestImpl.h:67
void onCustomCmd(const std::string &_command, const std::string &_condition, uint64_t _senderId)
Definition: OctopusTestImpl.h:131
Definition: OctopusTestImpl.h:61