diff options
Diffstat (limited to 'test/initial_event_tests')
9 files changed, 59 insertions, 22 deletions
diff --git a/test/initial_event_tests/initial_event_test_availability_checker.cpp b/test/initial_event_tests/initial_event_test_availability_checker.cpp index 6a2eab9..4fc3085 100644 --- a/test/initial_event_tests/initial_event_test_availability_checker.cpp +++ b/test/initial_event_tests/initial_event_test_availability_checker.cpp @@ -152,10 +152,13 @@ int main(int argc, char** argv) client_number = std::stoi(std::string(argv[1]), nullptr); - if (argc >= 3 && std::string("SAME_SERVICE_ID") == std::string(argv[2])) { - use_same_service_id = true; - } else { - use_same_service_id = false; + if (argc >= 2) { + for (int i = 2; i < argc; i++) { + if (std::string("SAME_SERVICE_ID") == std::string(argv[i])) { + use_same_service_id = true; + std::cout << "Availability checker: Using same service ID" << std::endl; + } + } } return RUN_ALL_TESTS(); } diff --git a/test/initial_event_tests/initial_event_test_client.cpp b/test/initial_event_tests/initial_event_test_client.cpp index a26e7b0..bc9d46a 100644 --- a/test/initial_event_tests/initial_event_test_client.cpp +++ b/test/initial_event_tests/initial_event_test_client.cpp @@ -35,7 +35,8 @@ public: std::array<initial_event_test::service_info, 7> _service_infos, bool _subscribe_on_available, std::uint32_t _events_to_subscribe, bool _initial_event_strict_checking, - bool _dont_exit, bool _subscribe_only_one) : + bool _dont_exit, bool _subscribe_only_one, + vsomeip::reliability_type_e _reliability_type) : client_number_(_client_number), service_infos_(_service_infos), service_offered_tcp_and_udp_(_service_offered_tcp_and_udp), @@ -48,7 +49,8 @@ public: dont_exit_(_dont_exit), subscribe_only_one_(_subscribe_only_one), stop_thread_(&initial_event_test_client::wait_for_stop, this), - wait_for_signal_handler_registration_(true) + wait_for_signal_handler_registration_(true), + reliability_type_(_reliability_type) { if (!app_->init()) { ADD_FAILURE() << "Couldn't initialize application"; @@ -80,7 +82,8 @@ public: for (std::uint32_t j = 0; j < events_to_subscribe_; j++ ) { app_->request_event(i.service_id, i.instance_id, static_cast<vsomeip::event_t>(i.event_id + j), - its_eventgroups, vsomeip::event_type_e::ET_FIELD); + its_eventgroups, vsomeip::event_type_e::ET_FIELD, + reliability_type_); } other_services_available_[std::make_pair(i.service_id, i.instance_id)] = false; @@ -364,9 +367,7 @@ public: } void handle_signal(int _signum) { - VSOMEIP_DEBUG << "[" << std::setw(4) << std::setfill('0') << std::hex - << client_number_ << "] Catched signal, going down (" - << std::dec <<_signum << ")"; + (void)_signum; std::lock_guard<std::mutex> its_lock(stop_mutex_); wait_for_stop_ = false; stop_condition_.notify_one(); @@ -422,6 +423,7 @@ private: std::mutex signal_mutex_; std::condition_variable signal_condition_; std::thread signal_thread_; + vsomeip::reliability_type_e reliability_type_; }; static int client_number; @@ -432,6 +434,8 @@ static std::uint32_t subscribe_multiple_events; static bool initial_event_strict_checking; static bool dont_exit; static bool subscribe_only_one; +vsomeip::reliability_type_e reliability_type = vsomeip::reliability_type_e::RT_UNKNOWN; + extern "C" void signal_handler(int signum) { the_client->handle_signal(signum); @@ -445,12 +449,14 @@ TEST(someip_initial_event_test, wait_for_initial_events_of_all_services) initial_event_test::service_infos_same_service_id, subscribe_on_available, subscribe_multiple_events, initial_event_strict_checking, dont_exit, - subscribe_only_one); + subscribe_only_one, + reliability_type); } else { initial_event_test_client its_sample(client_number, service_offered_tcp_and_udp, initial_event_test::service_infos, subscribe_on_available, subscribe_multiple_events, initial_event_strict_checking, dont_exit, - subscribe_only_one); + subscribe_only_one, + reliability_type); } } @@ -494,6 +500,7 @@ int main(int argc, char** argv) subscribe_on_available = false; } else if (std::string("SAME_SERVICE_ID") == std::string(argv[i])) { use_same_service_id = true; + std::cout << "Using same service ID" << std::endl; } else if (std::string("MULTIPLE_EVENTS") == std::string(argv[i])) { subscribe_multiple_events = 5; } else if (std::string("STRICT_CHECKING") == std::string(argv[i])) { @@ -502,6 +509,15 @@ int main(int argc, char** argv) dont_exit = true; } else if (std::string("SUBSCRIBE_ONLY_ONE") == std::string(argv[i])) { subscribe_only_one = true; + } else if (std::string("TCP")== std::string(argv[i])) { + reliability_type = vsomeip::reliability_type_e::RT_RELIABLE; + std::cout << "Using reliability type RT_RELIABLE" << std::endl; + } else if (std::string("UDP")== std::string(argv[i])) { + reliability_type = vsomeip::reliability_type_e::RT_UNRELIABLE; + std::cout << "Using reliability type RT_UNRELIABLE" << std::endl; + } else if (std::string("TCP_AND_UDP")== std::string(argv[i])) { + reliability_type = vsomeip::reliability_type_e::RT_BOTH; + std::cout << "Using reliability type RT_BOTH" << std::endl; } } } diff --git a/test/initial_event_tests/initial_event_test_diff_client_ids_diff_ports_master_udp.json b/test/initial_event_tests/initial_event_test_diff_client_ids_diff_ports_master_udp.json index a5bdb5f..eedfde4 100644 --- a/test/initial_event_tests/initial_event_test_diff_client_ids_diff_ports_master_udp.json +++ b/test/initial_event_tests/initial_event_test_diff_client_ids_diff_ports_master_udp.json @@ -1,5 +1,5 @@ { - "unicast":"10.0.3.1", + "unicast":"XXX.XXX.XXX.XXX", "logging": { "level":"warning", diff --git a/test/initial_event_tests/initial_event_test_diff_client_ids_diff_ports_slave_udp.json b/test/initial_event_tests/initial_event_test_diff_client_ids_diff_ports_slave_udp.json index caf4e12..4c47091 100644 --- a/test/initial_event_tests/initial_event_test_diff_client_ids_diff_ports_slave_udp.json +++ b/test/initial_event_tests/initial_event_test_diff_client_ids_diff_ports_slave_udp.json @@ -1,5 +1,5 @@ { - "unicast":"10.0.3.2", + "unicast":"XXX.XXX.XXX.XXX", "diagnosis" : "0x63", "logging": { diff --git a/test/initial_event_tests/initial_event_test_diff_client_ids_same_ports_master_udp.json b/test/initial_event_tests/initial_event_test_diff_client_ids_same_ports_master_udp.json index 5d15fbf..d0e4e8f 100644 --- a/test/initial_event_tests/initial_event_test_diff_client_ids_same_ports_master_udp.json +++ b/test/initial_event_tests/initial_event_test_diff_client_ids_same_ports_master_udp.json @@ -1,5 +1,5 @@ { - "unicast":"10.0.3.1", + "unicast":"XXX.XXX.XXX.XXX", "logging": { "level":"warning", diff --git a/test/initial_event_tests/initial_event_test_diff_client_ids_same_ports_slave_udp.json b/test/initial_event_tests/initial_event_test_diff_client_ids_same_ports_slave_udp.json index 3c6a682..22a12c7 100644 --- a/test/initial_event_tests/initial_event_test_diff_client_ids_same_ports_slave_udp.json +++ b/test/initial_event_tests/initial_event_test_diff_client_ids_same_ports_slave_udp.json @@ -1,5 +1,5 @@ { - "unicast":"10.0.3.2", + "unicast":"XXX.XXX.XXX.XXX", "diagnosis" : "0x63", "logging": { diff --git a/test/initial_event_tests/initial_event_test_master_starter.sh b/test/initial_event_tests/initial_event_test_master_starter.sh index c78d3e8..8848f62 100755 --- a/test/initial_event_tests/initial_event_test_master_starter.sh +++ b/test/initial_event_tests/initial_event_test_master_starter.sh @@ -95,7 +95,9 @@ REMAINING_OPTIONS=${REMAINING_OPTIONS#SUBSCRIBE_ONLY_ONE} # wait until the services on the remote node were started as well +echo "WAITING FOR SERVICE AVAILABILITY" wait $PID_AVAILABILITY_CHECKER +echo "ALL SERVICES ARE AVAILABLE NOW" sleep 2 @@ -105,6 +107,7 @@ do CLIENT_PIDS+=($!) done + # Wait until all clients are finished for job in ${CLIENT_PIDS[*]} do diff --git a/test/initial_event_tests/initial_event_test_service.cpp b/test/initial_event_tests/initial_event_test_service.cpp index 3b96174..f075ed6 100644 --- a/test/initial_event_tests/initial_event_test_service.cpp +++ b/test/initial_event_tests/initial_event_test_service.cpp @@ -23,12 +23,13 @@ class initial_event_test_service { public: initial_event_test_service(struct initial_event_test::service_info _service_info, - std::uint32_t _events_to_offer) : + std::uint32_t _events_to_offer, vsomeip::reliability_type_e _reliability_type) : service_info_(_service_info), app_(vsomeip::runtime::get()->create_application()), wait_until_registered_(true), events_to_offer_(_events_to_offer), - offer_thread_(std::bind(&initial_event_test_service::run, this)) { + offer_thread_(std::bind(&initial_event_test_service::run, this)), + reliability_type_(_reliability_type) { if (!app_->init()) { ADD_FAILURE() << "Couldn't initialize application"; return; @@ -45,7 +46,7 @@ public: static_cast<vsomeip::event_t>(service_info_.event_id + i), its_eventgroups, vsomeip::event_type_e::ET_FIELD, std::chrono::milliseconds::zero(), false, true, nullptr, - vsomeip::reliability_type_e::RT_UNKNOWN); + reliability_type_); } // set value to field @@ -104,20 +105,24 @@ private: std::mutex mutex_; std::condition_variable condition_; std::thread offer_thread_; + vsomeip::reliability_type_e reliability_type_; }; static unsigned long service_number; static bool use_same_service_id; static std::uint32_t offer_multiple_events; +vsomeip::reliability_type_e reliability_type = vsomeip::reliability_type_e::RT_UNKNOWN; TEST(someip_initial_event_test, set_field_once) { if(use_same_service_id) { initial_event_test_service its_sample( - initial_event_test::service_infos_same_service_id[service_number], offer_multiple_events); + initial_event_test::service_infos_same_service_id[service_number], offer_multiple_events, + reliability_type); } else { initial_event_test_service its_sample( - initial_event_test::service_infos[service_number], offer_multiple_events); + initial_event_test::service_infos[service_number], offer_multiple_events, + reliability_type); } } @@ -143,8 +148,18 @@ int main(int argc, char** argv) for (int i = 2; i < argc; i++) { if (std::string("SAME_SERVICE_ID") == std::string(argv[i])) { use_same_service_id = true; + std::cout << "Using same service ID" << std::endl; } else if (std::string("MULTIPLE_EVENTS") == std::string(argv[i])) { offer_multiple_events = 5; + } else if (std::string("TCP")== std::string(argv[i])) { + reliability_type = vsomeip::reliability_type_e::RT_RELIABLE; + std::cout << "Using reliability type RT_RELIABLE" << std::endl; + } else if (std::string("UDP")== std::string(argv[i])) { + reliability_type = vsomeip::reliability_type_e::RT_UNRELIABLE; + std::cout << "Using reliability type RT_UNRELIABLE" << std::endl; + } else if (std::string("TCP_AND_UDP")== std::string(argv[i])) { + reliability_type = vsomeip::reliability_type_e::RT_BOTH; + std::cout << "Using reliability type RT_BOTH" << std::endl; } } } diff --git a/test/initial_event_tests/initial_event_test_slave_starter.sh b/test/initial_event_tests/initial_event_test_slave_starter.sh index 083119f..e240f5a 100755 --- a/test/initial_event_tests/initial_event_test_slave_starter.sh +++ b/test/initial_event_tests/initial_event_test_slave_starter.sh @@ -13,7 +13,7 @@ if [ $# -lt 1 ] then echo "Please pass a json file to this script." - echo "For example: $0 UDP initial_event_test_diff_client_ids_diff_ports_slave.json" + echo "For example: $0 initial_event_test_diff_client_ids_diff_ports_slave.json UDP" echo "To use the same service id but different instances on the node pass SAME_SERVICE_ID as third parameter" echo "To ensure the first client only subscribes to one event pass SUBSCRIBE_ONLY_ONE as third/fourth parameter" exit 1 |