5 #ifndef DDS_OCTOPUS_TESTIMPL_H 6 #define DDS_OCTOPUS_TESTIMPL_H 13 #include <condition_variable> 17 #include <boost/property_tree/json_parser.hpp> 19 #define BEGIN_OCTOPUS_MSG_MAP(name) \ 20 std::string _name() const \ 25 void _onCustomCmd(const std::string& _command, const std::string& _condition, uint64_t _senderId) \ 27 boost::property_tree::ptree root; \ 28 std::stringstream ss; \ 30 boost::property_tree::read_json(ss, root); \ 31 for (const auto& node : root) \ 33 if (node.first == dds_octopus::SOctopusProtocol_Log::class_name()) \ 35 dds_octopus::SOctopusProtocol_Log log; \ 36 log.init(node.second); \ 37 std::cout << "Task: " << log.m_sVal << std::endl; \ 41 #define OCTOPUS_MSG_HANDLER(func, cmd) \ 42 else if (node.first == cmd::class_name()) \ 45 var.init(node.second); \ 46 func(var, _senderId); \ 50 #define END_OCTOPUS_MSG_MAP \ 90 auto start_time = std::chrono::high_resolution_clock::now();
92 T* pThis = static_cast<T*>(
this);
93 std::cout <<
"================================\n";
94 std::cout <<
"Test case: " << pThis->_name() <<
"\n";
99 if (std::cv_status::timeout ==
100 m_waitCondition.wait_until(lock, start_time + std::chrono::seconds(_timeoutInSec)))
103 std::cout <<
"RESULT: FAILED. Timeout (" << _timeoutInSec <<
" sec) reached\n";
110 std::cout <<
"RESULT: OK\n";
113 std::cout <<
"RESULT: FAILED\n";
116 auto execTime = std::chrono::high_resolution_clock::now() - start_time;
117 std::chrono::milliseconds execTimeMs = std::chrono::duration_cast<std::chrono::milliseconds>(execTime);
118 std::cout <<
"Execution time: " << std::chrono::duration<double>(execTimeMs).count() <<
" s\n";
119 std::cout <<
"================================" << std::endl;
127 std::cerr <<
"Error: " << _errorMsg << std::endl;
130 void onCustomCmd(
const std::string& _command,
const std::string& _condition, uint64_t _senderId)
132 T* pThis = static_cast<T*>(
this);
133 pThis->_onCustomCmd(_command, _condition, _senderId);
std::mutex m_waitMutex
Definition: OctopusTestImpl.h:139
Definition: OctopusTestImpl.h:61
ETestStatus execute(const size_t _timeoutInSec)
Definition: OctopusTestImpl.h:88
COctopusTestImpl(const SOptions_t &_options)
Definition: OctopusTestImpl.h:69
dds::intercom_api::CCustomCmd m_customCmd
Definition: OctopusTestImpl.h:138
Definition: Intercom.h:93
std::condition_variable m_waitCondition
Definition: OctopusTestImpl.h:140
ETestStatus
Definition: OctopusTestImpl.h:58
void init()
Definition: OctopusTestImpl.h:80
void start(const std::string &_sessionID="")
Start DDS service, i.e. receiving and sending messages.
Definition: Intercom.cpp:37
~COctopusTestImpl()
Definition: OctopusTestImpl.h:75
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:137
ETestStatus m_status
Definition: OctopusTestImpl.h:141
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:142
void onServiceError(const dds::intercom_api::EErrorCode _errorCode, const std::string &_errorMsg)
Definition: OctopusTestImpl.h:125
Definition: OctopusTestImpl.h:62
Definition: OctopusTestImpl.h:66
void onCustomCmd(const std::string &_command, const std::string &_condition, uint64_t _senderId)
Definition: OctopusTestImpl.h:130
Definition: OctopusTestImpl.h:60