Skip to content
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

Unit tests don't run when default discovery is set to RTPS #414

Closed
jwillemsen opened this issue Jan 19, 2017 · 6 comments
Closed

Unit tests don't run when default discovery is set to RTPS #414

jwillemsen opened this issue Jan 19, 2017 · 6 comments

Comments

@jwillemsen
Copy link
Member

We are using RTPS by default for discovery and we did this through the ace/config.h file as below. We now notice that the OpenDDS unit tests don't run anymore, for example the ReadCondition test fails as below. Would be much easier if a user can set RTPS as default discovery but also that the unit tests work at that moment.

#define DDS_DEFAULT_DISCOVERY_METHOD Discovery::DEFAULT_RTPS

./run_test.pl 
DCPSInfoRepo  -o repo.ior -NOBITS -DCPSPendingTimeout 3 
InfoRepo PID: 6363
(6363|139668423190336) ERROR: DCPSInfoRepo::init: Unable to set the ORB in InfoRepoDiscovery.
Unexpected initialization Error: Unable to set the ORB in InfoRepoDiscovery.                                                                                                                  
@mitza-oci
Copy link
Member

My suggested approach would be to use a -Config flag so that the test scripts are aware of this. In $DDS_ROOT/bin/PerlDDS/Run_Test.pm, setup_discovery() would check this flag and not start DCPSInfoRepo. This is already part of what's done for Safety Profile which has no DCPSInfoRepo.

@jwillemsen
Copy link
Member Author

At the moment we default to RTPS we get another challenge, running multiple OpenDDS tests run on multiple VMs on the same network, these systems could interfere with each other. With DDS4CCM we solved this in the past by giving each system an unique domain id and set this as environment variable which is used by the tests to make sure they don't get data from other systems.

@mitza-oci
Copy link
Member

Set the environment variable OPENDDS_RTPS_DEFAULT_D0 to a different value on each host. That is how we have builds running on about 20 hosts in the OCI build farm.

@jwillemsen
Copy link
Member Author

@mitza-oci Thanks, added that to our buildtools scripts

@jwillemsen
Copy link
Member Author

Also it would be helpful to have a MPC feature to disable the InfoRepo completely at compilation, reduces footprint and dependencies

@jwillemsen
Copy link
Member Author

And hopefully at some point we can make the default to not use the inforepo but rtps as default

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants