Skip to content

Conversation

@SuperJappie08
Copy link

Description

Enables the API launch tests of the composition package (in some workable form)

Fixes #747

Is this user-facing behavior change?

No

Did you use Generative AI?

No

Additional Information

I do not use a generated substitution anymore, since it was unclear which binary path would have matched:

  • API_COMPOSITION_EXECUTABLE
  • API_COMPOSITION_CLI_EXECUTABLE

Signed-off-by: SuperJappie08 <[email protected]>
@SuperJappie08
Copy link
Author

SuperJappie08 commented Oct 23, 2025

I must add that the tests seem a bit flaky locally; maybe waiting for a process start event or delay before loading the components could help.

Another option is to migrate to launch_ros component actions (ComposableNodeContainer and LoadComposableNodes)

Copy link
Collaborator

@fujitatomoya fujitatomoya left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@SuperJappie08 thanks for trying to fix this.

obviously this is missing as you pointed out.

i am not sure about this fix. instead API_COMPOSITION_EXECUTABLE should be added to CMakeLists.txt just like the others such as MANUAL_COMPOSITION_EXECUTABLE?

@SuperJappie08
Copy link
Author

@fujitatomoya, I tried that, but it was unclear to me which executables those fields should be. (because of the reason given below and the --delay argument)

I tried my current solution (using ros2component) in those fields.
However, ExecuteProcess wants space-separated arguments for the command.
So that would mean it would turn into [*'@API_COMPOSITION_EXECUTABLE@'.split(), ...], which did not feel correct.

I could change it to be like that if that would be better.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[composition] API tests are not finished

2 participants