ros2 / ros2/system_tests

Enable cross-vendor tests for unknown RMW implementations

Open
#429 0 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

backlog enhancement
Dominant language
C++
Stars
45
Forks
57
Avg merge
9h 19m
Merged PRs (30d)
2

Description

Feature request

Feature description

Some private or yet-to-be released RMW implementations may intend to interoperate with other RMW implementations. For example, DDS based implementations probably want to communicate with the other DDS implemenations. This is a ticket to enable them to use tests in this repo to determine whether that actually works.

See discussion on https://github.com/ros2/system_tests/pull/428

Implementation considerations

One option is to by default create tests for all RMW implementations and blacklist the ones which are known not to work. This enables accessing the cross-vendor tests by building this repo in a workspace with all RMW implementations they want to test compatibility with. It has a drawback in that this repo contains more than cross-vendor tests, so someone wanting to test an rmw implementation that is not expected to communicate with other vendors, such as iceoryx, would build and run many tests that are expected to fail.

Another option might be to create a package containing tools for generating a cross-vendor tests. This separates the test suite from the build of an individual package. test_communication could generate the cross-vendor test suite for the RMW implementations we use, and other RMW implementers could use the same tools to generate tests for the combinations they expect to work.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the discussion in system_tests pull request 428 and inspect the existing test_communication package and its test-generation flow. Determine how cross-vendor combinations are selected, then define a way for external or unknown RMW implementations to generate and run only the compatibility tests they need without unrelated expected failures.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
testing-qa
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.