-
Notifications
You must be signed in to change notification settings - Fork 781
vSomeIP 3.6.0 Release #991
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
vvcarvalho-csw
wants to merge
32
commits into
COVESA:master
Choose a base branch
from
vvcarvalho-csw:master
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Subtracting 1 makes no sense as std::string_view::size() does not include any null-terminator byte, so we are effectivity truncating the last char in the message. I can only guess that the current platforms all have an old version of DLT without SIZED_CSTRING, since no one complained about this. Ref: https://github.com/COVESA/dlt-daemon/blob/master/include/dlt/dlt_user_macros.h#L350
There is no meaningful use of is_closed() at all, and cei_state_e::CLOSED was redundantly set
Remove redundant/pointless size checks Rework/simplify logic Add references where sensible
Add wrappers for service availability Add a couple of availability tests
In this test, the client builds increasingly-large messages filled with a specific byte, and the server then checks the message. It unfortunately does so byte-by-byte, which is dogslow without compiler optimizations CI often takes > 700s in this particular test While at it, remove nonsense sleeps, minor typo fixes
create_local_server does setup, and caller (rmc, rms) will anyhow hold another mutex
Fix suspend_resume test The test ran correctly, but the trace '[TEST] STR simulation: exit' was not visible in the log file. The only possible cause is that the notification to terminate the runner thread was not received. This change repeats the notification until it is acknowledged.
Preparatory step in refactoring routing manager states. The routing_state_e is not really a state, but rather an event that informs the routing manager of a lifecycle-related event. The end goal is to correct this. As a preliminary step, it will be removed from routing_manager_client that currently ignores it.
Prior to this commit, there is only support to forward to DLTs, and special handling for Android. Implement handling for generic logging With DLTs, as before, messages appear as a trace With Android/console/file logging, messages appear as a hex dump While at it, enable tracing for all of the tests; it makes sense, because this is also the configuration used in a real ECU COVESA#726
It is deprecated, unused, and not worth the maintenance cost Furthermore, it's even dangerous, as ICON_NAD was accidentally using the compile option
vSomeIP assign client command comprehends the following fields: Desired client id (if != 0xFFFF); Application name size; Application name; If an application is called test, the sent size will be 4 (null character not included). Currently, when parsing the assign_client command, the name is stripped of its last character, this might lead to a possible race condition if two applications name differ by the last character e.g., client1 and client2.
The -O is being appended to build options thus making vsomeipd and libvsomeip (another commit and repository) force optimisation level while projects/build systems should decide on these settings. Other compiler settings should be checked but for now focus on optimisation level directly.
Support current versions of cmake and boost
Change return type of get_sec_client. The former signature was not thread-safe. Granting any access to internal memory, when the content of this memory could change (set_sec_client_port), is not thread safe. At the moment the memory is guarded by the higher order protocol (a port is only set during the init phase) for which reason this is not a practical problem at the moment. But changing the port only during the "init" is at least a theoretically problem, as the port is temporarily freed on a reconnect and could be "stolen".
Add a common testing framework for VSOMEIP, including process management, interprocess synchronisation, and scenario orchestration utilities. Introduced a new common framework with reusable utilities: Process management (process.hpp/cpp): Launch and control external processes for test orchestration. Note that this deprecates the existing common/process_manager.hpp, which is retained for backwards compatibility. Interprocess synchronisation (interprocess.hpp): Shared memory barriers and bounded channels for multi-process test coordination. Scenario runner (scenario.hpp): Define and synchronise ordered test steps across processes. VSOMEIP app builder (vsomeip_app.hpp/cpp): Simplifies setup of test/service applications. Policy helpers (policy.hpp/cpp): Utilities for loading and manipulating VSOMEIP security policies. Test timer (test_timer.hpp): Minor improvements and namespace update. Added documentation (README.md) explaining the framework, usage patterns, and example test cases. Integrated a minimal cross-platform process library (TinyProcessLib) for process spawning. Updated existing network and memory tests to use common::test_timer_t and improved lambda captures.
67c9443 introduced a superfluous semi colon.
Namely, an uninitialized variable caught by valgrind Also a tiny compilation failure, while at it
Some of it slipped back in with 74c3b90
In most cases this is not necessary, as the receiver_->stop() will lead to a deletion. But if a reconnect is attempted, during stop the receiver_ can be restarted. To ensure that the socket_manager breaks the circle (as io_context would usually do), also the acceptor handlers should be cleared on io_stop.
Cosmetic logs on unset payload Log RM state on boot Matching ON_OFFER and ON_STOP_OFFER Extra logs on Stop Offer Other cosmetic logs
Detect the timing of stop offers during STR suspend_resume_test_client.cpp updated to detect when unavailability is detected and measure the time until receiving the next availability to verify if the StopOffer was sent during suspend or resume. We cannot read the messages directly in the test, but considering that the network is down for at least 2 seconds, if the time between unavailable and available is less than 2 seconds, it can be considered that the StopOffer was sent during Resume (all tests performed showed that whenever the StopOffer is sent during resume, the time between unavailable and available is almost instantaneous, with the highest observed value being 300ms). This change can be important to detect problems introduced in the suspend process in the future. Note: With the current state of the suspend process, considering that sending StopOffers is asynchronous and we don't have full control over the Suspend process, the test sporadically fails because in some STRs the server endpoints end up being closed before the StopOffer is sent.
cc7247e forgot most of them.. bad regex!
No functional change, ANY_EVENT was wrongly provided for argument _remove Fix argument _remove Remove misleading comment dummy call
Sync delay resume with net changes In the log, in the ticket, sd_route_set_ and if_state_running_ have been set to true but 2.7ms afterwards vsomeipd printed: Network not running,. It could be the known issue with the missing synchronization. Here we are doing a dirty fix.
Consistency accross all logging There are no functional changes, pure logging. For log consistency prefix rmi:: is used across routing_manager_impl class. Note: some logs remain untouched purposely has some tests might be looking to exact messages (e.g vSomeIP Security: (..))
This change fixes a memory leak in the initial_event_test_service due to it improperly handling the kill signal from the test script. It also addresses some minor code smells.
libvsomeip (without "3" suffix) is the compatibility lib, built only with VSOMEIP_COMPAT_NAME - except in the Android build, where it was built by default Unfortunately that means a lot of Android HALs are linking against it by default, so deploy a libvsomeip as a dummy lib to keep breakage minimal
Reset flags is_sending_ and was_not_connected on connect_cbk Adds proper state flag reset during connection error recovery to ensure clean reconnection. These flags ensure: Clean state reset on connection failures Proper queue resumption after reconnection Synchronization between endpoint state and actual network connectivity
Current sequence: client sends SUBSCRIBE server receives SUBSCRIBE, accepts, sends SUB_ACK server inserts subscription client receives SUB_ACK (and somehow instructs server) server sends notification Because 3) and 4)+5) are independent events, they can happen in the opposite order, exactly because the subscription insertion happens after the SUBSCRIPTION_ACK is sent. A fake_socket test shows it Fix the order, add an explicit (but unfortunately probablistic) test
It survived the purge in 98b3beb, somehow
misc: delete forgotten compat file routing: ensure sub ack is sent after sub insert Reset flags on connect_cbk zuul: remove clang-tidy build: keep libvsomeip for Android Fix initial event tests rmi: Consistency across logging delayed-resume, sync with net change service-discovery, fix parameter tests: enable tracing for all tests doc and fix memory_test suspend_resume_test_initial - Detect StopOffers Minor logging changes Clear accept handlers on io_stop misc: cleanup ANDROID+USE_DLT tests: fix application_test_availability remove superfluous semicolon common utilities for network tests Change return type of get_sec_client Support recent versions (cmake, boost) Remove hardcoded CXX FLAGS for optimisation level Deserialize full name on assign_client command misc: drop vsomeip2 compatibility Change maintain 3.5 to 3.6 log tracing: add support for forwarding to logs restrict routing state to routing_manager_impl ci-test failure suspend_resume_test_initial emi: remove pointless mutex tests: speedup huge_payload tests: minor fake_socket test enhancements rmi: small rework of on_message endpoint: cleanup is_closed+cei_state_e::CLOSED Fix logging of SIZED_CSTRING
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
No description provided.