-
Notifications
You must be signed in to change notification settings - Fork 453
Closed
Labels
enhancementNew featureNew featurefeature requestFeature request under evaluationFeature request under evaluationtestA module/integration/stress/etc test for a componentA module/integration/stress/etc test for a componenttoolingAll iceoryx related tooling (scripts etc.)All iceoryx related tooling (scripts etc.)
Description
Brief feature description
The issue #542 showed that we - despite a good test coverage and a abstraction - we still have resource leaks. Therefore, we require a testing platform/framework similar to the Windows, MacOS platform files in iceoryx utils.
It should be realized in the following way:
- Nowhere in the code (posix wrappers) we use posix calls or other resource handling calls directly (like malloc, free ...)
- In this platform we provide all used posix calls with an
iox_prefix. Like it is already done with the semaphore where we use onlyiox_sem_openin the code. - The platform will forward all arguments to the actual posix implementation but will additionally track the required resources. For instance when
iox_sem_open("mySemaphore")is called it will track that there exist amySemaphorein the system and wheniox_sem_close(mySemaphoreHandle)is called it will release it. - In all test targets (module-, integration- and componenttests), restricted purely to linux, we only use the newly created
iceoryx_utils/platform/testingplatform. When we never call the posix calls directly and forward the arguments to the actual posix calls we have gained unit tests:- which behave exactly the way like the production code, since the actual posix calls are called
- we can trace resource leaks
- we can trace accessing invalid resources
- we can verify arguments and that all the posix calls are accessed correctly (therefore we could store the provided arguments somewhere and make them accessible).
@dkroenke @elBoberido what do you think?
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
enhancementNew featureNew featurefeature requestFeature request under evaluationFeature request under evaluationtestA module/integration/stress/etc test for a componentA module/integration/stress/etc test for a componenttoolingAll iceoryx related tooling (scripts etc.)All iceoryx related tooling (scripts etc.)