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 \ 89 auto start_time = std::chrono::high_resolution_clock::now();
91 T* pThis =
static_cast<T*
>(
this);
92 std::cout <<
"================================\n";
93 std::cout <<
"Test case: " << pThis->_name() <<
"\n";
98 if (std::cv_status::timeout ==
99 m_waitCondition.wait_until(lock, start_time + std::chrono::seconds(_timeoutInSec)))
102 std::cout <<
"RESULT: FAILED. Timeout (" << _timeoutInSec <<
" sec) reached\n";
109 std::cout <<
"RESULT: OK\n";
112 std::cout <<
"RESULT: FAILED\n";
115 auto execTime = std::chrono::high_resolution_clock::now() - start_time;
116 std::chrono::milliseconds execTimeMs = std::chrono::duration_cast<std::chrono::milliseconds>(execTime);
117 std::cout <<
"Execution time: " << std::chrono::duration<double>(execTimeMs).count() <<
" s\n";
118 std::cout <<
"================================" << std::endl;
126 std::cerr <<
"Error: " << _errorMsg << std::endl;
129 void onCustomCmd(
const std::string& _command,
const std::string& _condition, uint64_t _senderId)
131 T* pThis =
static_cast<T*
>(
this);
132 pThis->_onCustomCmd(_command, _condition, _senderId);
std::mutex m_waitMutex
Definition: OctopusTestImpl.h:138
Definition: OctopusTestImpl.h:61
ETestStatus execute(const size_t _timeoutInSec)
Definition: OctopusTestImpl.h:87
COctopusTestImpl(const SOptions_t &_options)
Definition: OctopusTestImpl.h:69
dds::intercom_api::CCustomCmd m_customCmd
Definition: OctopusTestImpl.h:137
Definition: dds_intercom.h:77
std::condition_variable m_waitCondition
Definition: OctopusTestImpl.h:139
ETestStatus
Definition: OctopusTestImpl.h:58
void init()
Definition: OctopusTestImpl.h:79
void start(const std::string &_sessionID="")
Start DDS service, i.e. receiving and sending messages.
Definition: dds_intercom.cpp:25
~COctopusTestImpl()
Definition: OctopusTestImpl.h:74
Definition: dds-octopus/src/Options.h:23
EErrorCode
Error codes for intercom API.
Definition: dds_intercom_error_codes.h:17
dds::intercom_api::CIntercomService m_intercomService
Definition: OctopusTestImpl.h:136
ETestStatus m_status
Definition: OctopusTestImpl.h:140
Definition: dds-agent/src/AgentConnectionManager.h:18
Definition: dds_intercom.h:32
void subscribeOnError(errorSignal_t::slot_function_type _subscriber)
Subscribe on error messages from DDS intercom service.
Definition: dds_intercom.cpp:20
void subscribe(signal_t::slot_function_type _subscriber)
Definition: dds_intercom.cpp:86
SOptions_t m_options
Definition: OctopusTestImpl.h:141
void onServiceError(const dds::intercom_api::EErrorCode _errorCode, const std::string &_errorMsg)
Definition: OctopusTestImpl.h:124
Definition: OctopusTestImpl.h:62
Definition: OctopusTestImpl.h:66
void onCustomCmd(const std::string &_command, const std::string &_condition, uint64_t _senderId)
Definition: OctopusTestImpl.h:129
Definition: OctopusTestImpl.h:60