-
Notifications
You must be signed in to change notification settings - Fork 392
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
Integration test with RouDi and new API elements #378
Comments
@elfenpiff @elBoberido is the RouDi environment the way to go, or are there other options in the meantime? |
@budrus for that scenario I would not use the roudi environment and explore other options like for instance: https://robotframework.org The reason is an actual bug: In the waitset there was once the semaphore configured as a non inter process semaphore which lead to green tests since they were all started in the same process but as soon as I started an interprocess example nothing worked since the trigger was not send. And maybe we have even more inter process bugs which we are not aware and they are not showing up when we run everything in one process. You have to keep in mind that the roudi environment does not everything which a normal roudi does.
I think the roudi environment is the perfect tool for our classical integration tests but if we would like to have a full blown API/system test we should mock/adjust nothing and work with the real stuff. |
Sounds like a nice job to explore something new. We should give https://robotframework.org/ a try |
@budrus yes, the RouDiEnvironment is the easiest way to test the new API. Keep in mind that each thread has its own PoshRuntime. |
In this case we need additional tests. Like the robot framework which automates our examples as tests.
There is no problem to do this, since the application do not need to map the shared memory to the same address like roudi.
Yes, but this is a small part of the tests. No need to use a more complicated framework for tests which are not affected by this.
Agreed |
@elBoberido I agree with you that there should be no problem. But in the end I would argue only because we do not see any problem here doesn't mean there isn't any. Also what about the future, maybe we creating one when we finalize the shared memory split. I agree that a simple API test can be performed by the RouDiEnvironment but if we would like to test the public API also in a way that it behaves exactly like it should be in every detail we cannot use the RouDiEnvironment. Maybe this is something for iceoryx v2.0. |
The Robot Framework offers the possibility to start/stop processes and examine their results This could be a starting point for it to create integration tests. In this case we could even reuse the existing examples to achieve that. But we need then to extend the examples for covering the full existing API which make the examples more complex. |
Or have "special examples" that execute one functionality, do a print or whatever is needed for the examination and then do the next thing. What is your feeling @dkroenke using RouDi env or the Robot Framework? |
My opinion is that the Integrationtests should stick as much as possible to the usecase of the end-user, who doesn't use the RouDi Env. Regarding the Robot-Framework it seems that the support for C/C++ seems to be limited. It can start/stop processes and evaluate the return values but this is not enough for our needs. |
Example from #421 can be taken up as candidate for integrationtesting |
Signed-off-by: Dietrich Krönke <[email protected]>
Signed-off-by: Dietrich Krönke <[email protected]>
Signed-off-by: Dietrich Krönke <[email protected]>
Signed-off-by: Dietrich Krönke <[email protected]>
Signed-off-by: Dietrich Krönke <[email protected]>
Signed-off-by: Dietrich Krönke <[email protected]>
Signed-off-by: Dietrich Krönke <[email protected]>
Signed-off-by: Dietrich Krönke <[email protected]>
Signed-off-by: Dietrich Krönke <[email protected]>
Signed-off-by: Dietrich Krönke <[email protected]>
Signed-off-by: Dietrich Krönke <[email protected]>
Signed-off-by: Dietrich Krönke <[email protected]>
Signed-off-by: Dietrich Krönke <[email protected]>
Signed-off-by: Dietrich Krönke <[email protected]>
Signed-off-by: Dietrich Krönke <[email protected]>
Signed-off-by: Dietrich Krönke <[email protected]>
Signed-off-by: Dietrich Krönke <[email protected]>
Signed-off-by: Dietrich Krönke <[email protected]>
Signed-off-by: Dietrich Krönke <[email protected]>
Signed-off-by: Dietrich Krönke <[email protected]>
Signed-off-by: Dietrich Krönke <[email protected]>
Signed-off-by: Dietrich Krönke <[email protected]>
Signed-off-by: Dietrich Krönke <[email protected]>
Signed-off-by: Dietrich Krönke <[email protected]>
Signed-off-by: Dietrich Krönke <[email protected]>
Signed-off-by: Dietrich Krönke <[email protected]>
…tps://github.com/ApexAI/iceoryx into iox-eclipse-iceoryx#378-integrationtests-new-api
Signed-off-by: Dietrich Krönke <[email protected]>
Signed-off-by: Dietrich Krönke <[email protected]>
…amples Signed-off-by: Dietrich Krönke <[email protected]>
Signed-off-by: Dietrich Krönke <[email protected]>
Brief feature description
After implementing and testing all the new building blocks and public API classes, a top level integration test where they are used together with the RouDI daemon shall be done
Detailed information
For this the RouDi environment can be used
Collect the things to test here:
All public API classes and all there functionlity is verified
The management of shared memory resources like ports shall be tested. These resources are created and shall be destroyed when creating/destroying public API objects
The text was updated successfully, but these errors were encountered: