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

Adds reference link to complete test of rrtest. #391

Closed
wants to merge 28 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
da91386
move humble requirements to root
Yadunund Mar 15, 2023
f0394d2
Update tier 3 os labels and remove source from jammy
Yadunund Mar 22, 2023
8d8faf6
Tmp fix for redirected links in sitemap that cause duplicate requirem…
Yadunund Mar 31, 2023
0a7ee76
Added an expectation for param delete
Yadunund Mar 31, 2023
74d326e
Fix prompt for service find
Yadunund Apr 2, 2023
62fe108
Update bag info with mcap
Yadunund Apr 2, 2023
48fde75
Added details for component cli tests
Yadunund Apr 2, 2023
ba3c16d
Add checks for ros1_bridge
Yadunund Apr 3, 2023
64b48b6
Added tests for service introspection
Yadunund Apr 4, 2023
b7089ff
Add check for asunc_param_client
Yadunund Apr 4, 2023
c8ed516
Fix duplicate py checks
Yadunund Apr 4, 2023
cd2457e
Add DISTRO_LABEL constant
Yadunund Apr 5, 2023
79007c7
Change the names of launch files to be _launch.py (#347)
clalancette May 4, 2023
04b014b
Use DISTRO const to retrieve docs
Yadunund May 4, 2023
010c183
Merge branch 'iron' of github.com:audrow/yatm into iron
Yadunund May 4, 2023
d63d28d
Update the service executables demon_nodes_py test to use async. (#348)
clalancette May 4, 2023
5528cb1
Add the holonomic parameter to turtlesim tests. (#350)
clalancette May 5, 2023
1b8493c
remove extra slash to output correct command (#353)
May 6, 2023
1ab7913
fix input (#352)
Yadunund May 6, 2023
a55b69d
Add linux label to realtime tests (#351)
Yadunund May 6, 2023
94f78bd
tag linux (#357)
Yadunund May 8, 2023
485c4ee
Fix up the multicast test to have a try and expect section. (#355)
clalancette May 8, 2023
7a11d1f
Add in a missing component container name in a test. (#354)
clalancette May 8, 2023
a4164cd
Specify frame ids for static transform publisher (#358)
Yadunund May 8, 2023
9b994f8
Replace executables with link to demos readme (#365)
Yadunund May 16, 2023
4030fa0
Change references to humble -> iron (#370)
clalancette May 17, 2023
b1abb8b
Modifies the console input to test out rqt (#374)
Voldivh May 17, 2023
3fe7efb
Adds enough stdin to accomplish the test and reference link
Voldivh Jun 2, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
216 changes: 216 additions & 0 deletions requirements/core.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,216 @@
requirements:
- name: ros2cli on a local machine
description: |
Test the basic functionality of the ros2cli package family
labels:
- ros2cli
- local
- core
links:
- name: Repo URL
url: https://github.com/ros2/ros2cli
checks:
- name: Help text
description: |
Long-form help text should be available when invoking `ros2 --help` as well as `ros2 <command> --help`
try:
- stdin: ros2 -h
- stdin: ros2 --help
- stdin: ros2 topic -h
- stdin: ros2 topic --help
expect:
- note: Long-form help is available.
- name: Tab completion
description: |
When using a supported shell (i.e. bash), tab completion should work for both the bare executable to list commands and for listing sub-commands, like `ros2 <tab>` or `ros2 <command> tab`
try:
- stdin: ros2 <tab><tab>
note: Lists the commands
- stdin: ros2 lau<tab>
note: Completes the word `launch`
- stdin: ros2 launch dem<tab>
note: Completes until `demo_nodes_`
- stdin: ros2 launch demo_nodes_c<tab>
note: Completes the package `demo_nodes_cpp`
- stdin: ros2 launch demo_nodes_cpp <tab><tab>
note: Lists launch files in `demo_nodes_cpp`
- stdin: ros2 launch demo_nodes_cpp ta<tab>
note: Suggests the launch files name `talker_listener`
- stdin: ros2 launch demo_nodes_cpp talker_listener<tab><tab>
note: Lists several launch files that start with `talker_listener`
- stdin: ros2 launch demo_nodes_cpp talker_listener_launch.p<tab>
note: Completes the launch files name `talker_listener_launch.py`
expect:
- stdin: ros2 launch demo_nodes_cpp talker_listener_launch.py
note: You eventually get to the full command
- name: Node discovery
description: |
With another node running, use `ros2 node list` to ensure that the expected node is listed. Then stop the node and ensure that the list operation no longer shows the node.
try:
- stdin: ros2 launch demo_nodes_cpp talker_listener_launch.py
terminal: 1
- stdin: ros2 node list
terminal: 2
expect:
- stdout: |
/listener
/talker
terminal: 2
- name: Topic discovery
description: |
With another node running, use `ros2 topic list` to ensure that the expected topics are listed. Then stop the node and ensure that the list operation no longer shows the node's topics.
try:
- stdin: ros2 launch demo_nodes_cpp talker_listener_launch.py
terminal: 1
- stdin: ros2 topic list
terminal: 2
expect:
- stdout: |
/chatter
/parameter_events
/rosout
terminal: 2
- name: Service discovery
description: |
With another node running, use `ros2 service list` to ensure that the expected services are listed. Then stop the node and ensure that the list operation no longer shows the node's services.
try:
- stdin: ros2 run demo_nodes_cpp add_two_ints_server
terminal: 1
- stdin: ros2 service list
terminal: 2
expect:
- stdout: |
/add_two_ints
/add_two_ints_server/describe_parameters
/add_two_ints_server/get_parameter_types
/add_two_ints_server/get_parameters
/add_two_ints_server/list_parameters
/add_two_ints_server/set_parameters
/add_two_ints_server/set_parameters_atomically
terminal: 2
- name: Parameter discovery
description: |
With another node running, use `ros2 param list` to ensure that the expected parameters are listed. Then stop the node and ensure that the list operation no longer shows the node's parameters.
try:
- stdin: ros2 run turtlesim turtlesim_node
terminal: 1
- stdin: ros2 param list
terminal: 2
expect:
- stdout: |
/turtlesim:
background_b
background_g
background_r
holonomic
qos_overrides./parameter_events.publisher.depth
qos_overrides./parameter_events.publisher.durability
qos_overrides./parameter_events.publisher.history
qos_overrides./parameter_events.publisher.reliability
use_sim_time
terminal: 2
- name: ros2cli network tests
description: |
Test the basic functionality of the ros2cli package family in an environment where nodes are running on other machines on the network.
labels:
- ros2cli
- core
links:
- name: Repo URL
url: https://github.com/ros2/ros2cli
checks:
- name: Node discovery
description: |
With another node running, use `ros2 node list` to ensure that the expected node is listed. Then stop the node and ensure that the list operation no longer shows the node.
- name: Topic discovery
description: |
With another node running, use `ros2 topic list` to ensure that the expected topics are listed. Then stop the node and ensure that the list operation no longer shows the node's topics.
- name: Service discovery
description: |
With another node running, use `ros2 service list` to ensure that the expected services are listed. Then stop the node and ensure that the list operation no longer shows the node's services.
- name: Parameter discovery
description: |
With another node running, use `ros2 param list` to ensure that the expected parameters are listed. Then stop the node and ensure that the list operation no longer shows the node's parameters.
- name: Rviz
description: |
This is a sanity check to ensure that the GUI tools aren't fundamentally broken.
labels:
- rviz
- visualization
- core
links:
- name: Repo URL
url: https://github.com/ros2/rviz
checks:
- name: Check Rviz
description: |
Launch using the `rviz2` command.

The rviz window should be generally usable and should be able to load some of the discovered visualizations.

Loading visualizations into the tree and using the mouse to navigate through the virtual workspace is sufficient for this test.
try:
- stdin: ros2 launch dummy_robot_bringup dummy_robot_bringup_launch.py
terminal: 1
- stdin: rviz2
terminal: 2
- note: In RViz, in the left pane, click 'Add'. A window will pop up. In that window, under 'rviz_default_plugins', select 'TF' and click 'OK'. Under 'Displays', in the 'Global Options' section, change the 'Fixed Frame' to '/world'.
- note: In RViz, in the left pane, click 'Add'. A window will pop up. In that window, under 'rviz_default_plugins', select 'LaserScan' and click 'OK'. Under 'Displays', in the 'LaserScan' section, change the 'Topic' to '/scan'.
expect:
- note: You should see the dummy robot's kinematic tree waving back and forth in the rviz window.
- note: You should see a laser scan emitting from the waving end of the dummy robot.
- note: Play around, move the camera, enable and disable things in the 'Displays' pane. RViz should be stable.
- name: RQT
description: |
This is a sanity check to ensure that the GUI tools aren't fundamentally broken.
labels:
- rqt
- visualization
- core
links:
- name: Repo URL
url: https://github.com/ros-visualization/rqt
checks:
- name: Check RQT
description: |
Launch using the `rqt` command.

The rqt window should be generally usable and should be able to populate some of the discovered plugins.
try:
- stdin: ros2 launch dummy_robot_bringup dummy_robot_bringup_launch.py
terminal: 1
- stdin: rqt
terminal: 2
- note: In the RQT window, select 'Plugins > Visualization > Plot' in the dropdown menu. In the window that opens, set the Topic to `/joint_states/position[0]`. You should see a Sine wave.
- note: With 'Plugins > Introspection > Node Graph' you should see a network of the nodes and topics that are being published and subscribed by the dummy robot.
- note: With 'Plugins > Logging > Bag' you should be able record a ROS Bag file.
- note: With 'Plugins > Topic > Topic Monitor' you should be able to check the `/joint_states` topic and view messages streaming in.
expect:
- note: Rqt runs smoothly and the plugins work as expected.
- name: Installation instructions
labels:
- installation
- core
description: |
Follow the official installation instructions for the platform. If instructions have not been published for the platform, use the instructions for Rolling Ridley.

For source build platforms, this includes the installation of dependencies and building the packages.
links:
- name: Installation instructions
url: https://docs.ros.org/en/iron/Installation.html
checks:
- name: Install works
- name: Local workspace overlay
labels:
- overlays
- core
description: |
Build a package in a local workspace which depends on packages supplied for the platform.

Run the tests for the package - all of them should pass.

For source platforms, this means building the candidate package in a separate workspace from the one used in the installation instructions.

TODO: Create a "dummy" package that ensures that we can target other packages using CMake, link against them, and run executables (tests) that are linked against libraries in the main workspace.
checks:
- name: Local workspace overlay works
Loading