summaryrefslogtreecommitdiff
path: root/test/subscribe_notify_one_tests/subscribe_notify_one_test_service.cpp
diff options
context:
space:
mode:
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.cpp30
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