diff options
Diffstat (limited to 'test/subscribe_notify_one_tests/subscribe_notify_one_test_service.cpp')
-rw-r--r-- | test/subscribe_notify_one_tests/subscribe_notify_one_test_service.cpp | 30 |
1 files changed, 23 insertions, 7 deletions
diff --git a/test/subscribe_notify_one_tests/subscribe_notify_one_test_service.cpp b/test/subscribe_notify_one_tests/subscribe_notify_one_test_service.cpp index 923ba1c..4008a6d 100644 --- a/test/subscribe_notify_one_tests/subscribe_notify_one_test_service.cpp +++ b/test/subscribe_notify_one_tests/subscribe_notify_one_test_service.cpp @@ -24,7 +24,7 @@ class subscribe_notify_one_test_service { public: - subscribe_notify_one_test_service(struct subscribe_notify_one_test::service_info _service_info) : + subscribe_notify_one_test_service(struct subscribe_notify_one_test::service_info _service_info, vsomeip::reliability_type_e _reliability_type) : service_info_(_service_info), app_(vsomeip::runtime::get()->create_application()), wait_until_registered_(true), @@ -36,7 +36,8 @@ public: wait_for_notify_(true), notify_thread_(std::bind(&subscribe_notify_one_test_service::notify_one, this)), subscription_state_handler_called_(0), - subscription_error_occured_(false) { + subscription_error_occured_(false), + reliability_type_(_reliability_type) { if (!app_->init()) { ADD_FAILURE() << "Couldn't initialize application"; return; @@ -51,7 +52,7 @@ public: app_->offer_event(service_info_.service_id, service_info_.instance_id, service_info_.event_id, its_eventgroups, vsomeip::event_type_e::ET_SELECTIVE_EVENT, std::chrono::milliseconds::zero(), false, true, nullptr, - vsomeip::reliability_type_e::RT_UNKNOWN); + reliability_type_); app_->register_message_handler(service_info_.service_id, service_info_.instance_id, service_info_.method_id, @@ -94,7 +95,7 @@ public: std::set<vsomeip::eventgroup_t> its_eventgroups; its_eventgroups.insert(i.eventgroup_id); - app_->request_event(i.service_id, i.instance_id, i.event_id, its_eventgroups, vsomeip::event_type_e::ET_SELECTIVE_EVENT); + app_->request_event(i.service_id, i.instance_id, i.event_id, its_eventgroups, vsomeip::event_type_e::ET_SELECTIVE_EVENT, reliability_type_); other_services_available_[std::make_pair(i.service_id, i.instance_id)] = false; other_services_received_notification_[std::make_pair(i.service_id, i.method_id)] = 0; @@ -455,27 +456,42 @@ private: std::atomic<bool> subscription_error_occured_; std::mutex subscribers_mutex_; + vsomeip::reliability_type_e reliability_type_; }; static unsigned long service_number; +vsomeip::reliability_type_e reliability_type = vsomeip::reliability_type_e::RT_UNKNOWN; + TEST(someip_subscribe_notify_one_test, send_ten_notifications_to_service) { subscribe_notify_one_test_service its_sample( - subscribe_notify_one_test::service_infos[service_number]); + subscribe_notify_one_test::service_infos[service_number], + reliability_type); } #ifndef _WIN32 int main(int argc, char** argv) { ::testing::InitGoogleTest(&argc, argv); - if(argc < 2) { - std::cerr << "Please specify a service number and subscription type, like: " << argv[0] << " 2 UDP" << std::endl; + if(argc < 3) { + std::cerr << "Please specify a service number and event reliability type, like: " << argv[0] << " 2 UDP" << std::endl; std::cerr << "Valid service numbers are in the range of [1,6]" << std::endl; + std::cerr << "Valid service reliability types are [UDP, TCP, TCP_AND_UDP]" << std::endl; + return 1; } service_number = std::stoul(std::string(argv[1]), nullptr); + + if (std::string("TCP")== std::string(argv[2])) { + reliability_type = vsomeip::reliability_type_e::RT_RELIABLE; + } else if (std::string("UDP")== std::string(argv[2])) { + reliability_type = vsomeip::reliability_type_e::RT_UNRELIABLE; + } else if (std::string("TCP_AND_UDP")== std::string(argv[2])) { + reliability_type = vsomeip::reliability_type_e::RT_BOTH; + } + return RUN_ALL_TESTS(); } #endif |